《操作系统的设计与实现.ppt》由会员分享,可在线阅读,更多相关《操作系统的设计与实现.ppt(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、操作系操作系统课统课程程讲义讲义操作系统设计与实现操作系统设计与实现操作系统的实现操作系统的实现操作系操作系统课统课程程讲义讲义2内容提要内容提要v 代码结构组织与数据结构定义代码结构组织与数据结构定义v专题专题1操作系统的启动过程操作系统的启动过程v专题专题2操作系统的进程管理操作系统的进程管理v专题专题3操作系统的设备管理操作系统的设备管理v专题专题4操作系统的内存管理操作系统的内存管理v专题专题5操作系统的文件管理操作系统的文件管理内容提要内容提要操作系操作系统课统课程程讲义讲义3代码结构组织代码结构组织代代码结码结构与数据构与数据结结构构Minix系统代码结构系统代码结构头文件:头文件
2、:usr/include源代码:源代码:usr/src无法归类的公共头文件无法归类的公共头文件Posix标准头文件:标准头文件:sys/操作系统头文件:操作系统头文件:minix/IBM PC头文件:头文件:ibm/系统核心代码:系统核心代码:kernel/内存管理器代码:内存管理器代码:mm/文件系统代码:文件系统代码:fs/库例程代码:库例程代码:lib/init源代码:源代码:tools/命令代码:命令代码:commands/网络源代码:网络源代码:inet/测试工具源代码:测试工具源代码:test/操作系操作系统课统课程程讲义讲义4代码结构组织代码结构组织代代码结码结构与数据构与数据结
3、结构构磁盘磁盘任务任务终端终端任务任务时钟时钟任务任务系统系统任务任务以太网以太网任务任务内存内存管理器管理器文件文件系统系统网络网络服务器服务器InitInit进程进程用户用户进程进程用户用户进程进程用户用户进程进程用户用户进程进程进程管理进程管理系统核心代码系统核心代码kernel/独立代码模块独立代码模块mm、fs.源代码源代码头文件头文件系统配系统配置定义置定义编译环编译环境定义境定义硬件环硬件环境定义境定义数据类数据类型定义型定义DS、接、接口定义口定义常量与常量与宏定义宏定义全局变全局变量定义量定义操作系操作系统课统课程程讲义讲义5头文件的定义与组织头文件的定义与组织v头文件有哪些
4、功能?头文件有哪些功能?功能功能1:定义数据结构、定义函数接口:定义数据结构、定义函数接口功能功能2:宏定义,例如常量、错误代码:宏定义,例如常量、错误代码功能功能3:设定编译开关,控制运行过程:设定编译开关,控制运行过程功能功能4:设定硬件开关,适应硬件环境:设定硬件开关,适应硬件环境功能功能5:设定配置开关,限定功能范围:设定配置开关,限定功能范围v头文件的用法举例头文件的用法举例代代码结码结构与数据构与数据结结构构操作系操作系统课统课程程讲义讲义6软件的体系结构观点软件的体系结构观点代代码结码结构与数据构与数据结结构构硬件底层环境硬件底层环境编译器环境编译器环境操作系统环境操作系统环境现
5、实应用环境现实应用环境程序内部控制流程程序内部控制流程完整的软完整的软件系统设件系统设计必须涵计必须涵盖从底层盖从底层至顶层的至顶层的完整流程,完整流程,以体系结以体系结构的思想构的思想面对软件面对软件研发研发适应适应CPU、堆栈、寄存器、堆栈、寄存器、I/O设备等硬件差别设备等硬件差别适应不同编译器的函数声适应不同编译器的函数声明与变量定义规范明与变量定义规范适应不同适应不同OS的实现差别,的实现差别,控制运行环境控制运行环境依据不同的条件选择不同依据不同的条件选择不同的运行流程的运行流程依据不同的需求控制系统依据不同的需求控制系统的功能和性能的功能和性能操作系操作系统课统课程程讲义讲义7M
6、inix的公共头文件组织的公共头文件组织v适应底层硬件环境适应底层硬件环境如何区别如何区别CPU的差别?的差别?v适应编译环境适应编译环境如何遵循如何遵循ANSI、POSIX等标准,适应不同编译环境?等标准,适应不同编译环境?v控制运行流程控制运行流程如何设定内部开关,控制有效范围和运行流程?如何设定内部开关,控制有效范围和运行流程?v适应应用环境适应应用环境如何实现可移植性,同时提供用户配置接口?如何实现可移植性,同时提供用户配置接口?v实现基本功能实现基本功能为保持系统运行稳定和性能卓越而进行的定义与实现为保持系统运行稳定和性能卓越而进行的定义与实现代代码结码结构与数据构与数据结结构构操作
7、系操作系统课统课程程讲义讲义8与硬件环境相关的头文件与硬件环境相关的头文件v针对针对CPU和设备驱动的宏定义和设备驱动的宏定义include/minix/config.h(2600行)行)v针对键盘布局、硬盘分区的头文件针对键盘布局、硬盘分区的头文件include/minix/keymap.h、partition.hv针对针对IBM硬件平台的专有头文件硬件平台的专有头文件include/ibm/diskparm.h,partition.h代代码结码结构与数据构与数据结结构构操作系操作系统课统课程程讲义讲义9与编译环境相关的头文件与编译环境相关的头文件v遵循遵循ANSI规范的头文件规范的头文件i
8、nclude/ansi.h、stdlib.hv遵循遵循POSIX规范的头文件规范的头文件include/unistd.h、string.h、signal.h、fcntl.h、termios.hinclude/sys/types.h、ioctl.h、sigcontext.h、ptrace.h、stat.h、dir.h、wait.h代代码结码结构与数据构与数据结结构构操作系操作系统课统课程程讲义讲义10与与OS系统实现相关的头文件系统实现相关的头文件v基本数据类型与系统限制基本数据类型与系统限制include/limits.h,errno.hv系统实现所需头文件系统实现所需头文件include/a
9、.out.h可执行文件格式可执行文件格式v系统相关的数据类型和内部调用系统相关的数据类型和内部调用include/minix/const.h、type.h、syslib.h、callnr.h、com.h、boot.h代代码结码结构与数据构与数据结结构构操作系操作系统课统课程程讲义讲义11头文件的组织方法头文件的组织方法v分类保存头文件分类保存头文件include/:最基本的公共头文件(不依赖软硬件环境):最基本的公共头文件(不依赖软硬件环境)include/sys:遵循系统规范的头文件(:遵循系统规范的头文件(Posix规范)规范)include/minix:实现系统内部功能的头文件:实现系统
10、内部功能的头文件include/ibm:针对特定硬件平台的头文件:针对特定硬件平台的头文件v头文件分类组织思想的讨论与反思头文件分类组织思想的讨论与反思分目录保存头文件,保持系统结构清晰,便于引用分目录保存头文件,保持系统结构清晰,便于引用分类别定义头文件,便于代码维护和扩展分类别定义头文件,便于代码维护和扩展对复杂系统而言,头文件的组织和定义是第一个难题对复杂系统而言,头文件的组织和定义是第一个难题代代码结码结构与数据构与数据结结构构操作系操作系统课统课程程讲义讲义12头文件中的玄机探密头文件中的玄机探密v预编译选项的应用预编译选项的应用实现自定义的系统配置(分析与举例)实现自定义的系统配置
11、(分析与举例)与编译器相互结合,实现外部环境侦测(分析与举例)与编译器相互结合,实现外部环境侦测(分析与举例)实现功能的扩展与限制(分析与举例,实现功能的扩展与限制(分析与举例,termios.h)组合形成的复杂应用(组合形成的复杂应用(Minix中的中的Error code定义举例)定义举例)v头文件的实现规范头文件的实现规范防止重复引用的错误(分析与举例,防止重复引用的错误(分析与举例,const.h分析)分析)支持不同语言的结合(分析与举例)支持不同语言的结合(分析与举例)头文件的包含次序(分析与举例)头文件的包含次序(分析与举例)全局变量的定义与实现(全局变量的定义与实现(Table.
12、c分析)分析)代代码结码结构与数据构与数据结结构构操作系操作系统课统课程程讲义讲义13内容提要内容提要v代码结构组织与数据结构定义代码结构组织与数据结构定义v专题专题1操作系统的启动过程操作系统的启动过程v专题专题2操作系统的进程管理操作系统的进程管理v专题专题3操作系统的设备管理操作系统的设备管理v专题专题4操作系统的内存管理操作系统的内存管理v专题专题5操作系统的文件管理操作系统的文件管理内容提要内容提要操作系操作系统课统课程程讲义讲义14Minix的启动过程的启动过程操作系操作系统统的启的启动过动过程程ROM将引导扇区内容写入硬盘将引导扇区内容写入硬盘确定活动分区的引导扇区确定活动分区的
13、引导扇区将将Minix映象保存至内存映象保存至内存引导引导结束结束读磁盘读磁盘分区表分区表读引导扇读引导扇区内容区内容执行执行boot程序程序16位启动模式位启动模式(mpx88.s)32位启动模式位启动模式(mpx386.s)GDT与与IDT初始化初始化(cstart)Minix系统初始化系统初始化(main)Restart启动任务启动任务系统运行系统运行12系系统统引引导导过过程程系系统统启启动动过过程程操作系操作系统课统课程程讲义讲义15Minix的系统引导过程的系统引导过程v硬件启动的引导过程硬件启动的引导过程BIOS规范设定了对磁盘分区的要求,第一扇区为引导扇区规范设定了对磁盘分区的
14、要求,第一扇区为引导扇区操作系统遵循操作系统遵循BIOS规范,在引导扇区内保存系统引导程序规范,在引导扇区内保存系统引导程序BIOS程序自动寻找磁盘引导扇区,执行系统引导程序程序自动寻找磁盘引导扇区,执行系统引导程序系统引导程序读取引导选项,开始正常启动操作系统系统引导程序读取引导选项,开始正常启动操作系统v引导过程分析引导过程分析活跃分区、引导扇区、磁盘分区表的组织和使用活跃分区、引导扇区、磁盘分区表的组织和使用操作系统的安装过程:操作系统的安装过程:Minix中的中的Installboot程序程序操作系统的启动过程:操作系统的启动过程:Minix中的中的Boot程序程序引导过程的参数设置与
15、管理(举例:多系统引导是如何实现的?)引导过程的参数设置与管理(举例:多系统引导是如何实现的?)Minix:引导块为:引导块为1K,第二扇区保存引导选项,第二扇区保存引导选项Windows:Ntldr寻找寻找Boot.ini(遵循(遵循ARC规范),再确定引导内容规范),再确定引导内容操作系操作系统统的启的启动过动过程程操作系操作系统课统课程程讲义讲义16磁盘分区的组织与管理磁盘分区的组织与管理操作系操作系统统的启的启动过动过程程v未分区的磁盘未分区的磁盘第一扇区为引导扇区第一扇区为引导扇区由引导程序直接载入即可由引导程序直接载入即可v已分区磁盘已分区磁盘必须存在主分区,主分区必须存在主分区,
16、主分区的第一扇区保存的第一扇区保存MBRMBR中包含分区表,各个中包含分区表,各个分区第一扇区为引导扇区分区第一扇区为引导扇区从主分区一直读取到系统从主分区一直读取到系统所在分区的引导扇区所在分区的引导扇区Windows中的引导卷和系中的引导卷和系统卷区别统卷区别操作系操作系统课统课程程讲义讲义17Minix的系统初始化过程的系统初始化过程v操作系统与操作系统与CPU的兼容的兼容16位位/32位模式是位模式是CPU(微处理)的硬件规范(微处理)的硬件规范操作系统必须与操作系统必须与CPU的硬件规范兼容,因此针对的硬件规范兼容,因此针对16位位/32位存在不同的初始位存在不同的初始化过程,执行初
17、始化过程的程序被称为引导监控程序化过程,执行初始化过程的程序被称为引导监控程序初始化过程基本都是使用汇编语言,在适当的时候控制权转移高层程序初始化过程基本都是使用汇编语言,在适当的时候控制权转移高层程序Minix中的初始化代码:中的初始化代码:mpx.s(5800行)行)初始化过程都是首先按照初始化过程都是首先按照16位模式运行,在适当时候切换至位模式运行,在适当时候切换至32位模式位模式vMinix的系统初始化过程的系统初始化过程16位模式运行位模式运行切换至切换至32位(位(6051行)行)建立堆栈框架运行建立堆栈框架运行C程序程序定义存储器段(拷贝定义存储器段(拷贝CPU内表格)内表格)
18、CStart(初始化(初始化GDT和和IDT)填充寻址寄存器的初值(填充寻址寄存器的初值(6115行)行)激活激活GDT和和IDT执行高层系统初执行高层系统初始化(始化(6131行)行)Restart启动系统任务启动系统任务系统任务阻塞系统任务阻塞MM和和FS初始化初始化getty进程进程用户登陆用户登陆初始化过程的控制流程初始化过程的控制流程mpx88.smpx386.s(汇编(汇编CStart汇编汇编Main汇编汇编MM/FS用户)用户)操作系操作系统统的启的启动过动过程程操作系操作系统课统课程程讲义讲义18Minix的启动过程(的启动过程(Init进程)进程)操作系操作系统统的启的启动过
19、动过程程16位启动模式位启动模式(mpx88.s)32位模式入口位模式入口(6051行)行)建立堆栈、建立堆栈、定义存储器段和定义存储器段和处理器寄存器处理器寄存器执行执行CStart初始化寻址初始化寻址寄存器,并激活寄存器,并激活(6115行)行)执行系统初始化执行系统初始化(Main函数,函数,6131行)行)执行执行restart,开始系统任务开始系统任务(6822行)行)进程表中所有进程表中所有系统任务完成,系统任务完成,初始化初始化MM和和FS进程表中所有进程表中所有系统任务完成,系统任务完成,初始化初始化MM和和FS创建创建getty进程进程等待用户登陆等待用户登陆控控制制转转移移
20、控控制制转转移移控控制制转转移移控控制制转转移移控控制制转转移移控控制制转转移移控控制制转转移移操作系操作系统课统课程程讲义讲义19Minix系统初始化(系统初始化(Main)操作系操作系统统的启的启动过动过程程MAIN系统内存初始化系统内存初始化mem_init中断控制器初始化中断控制器初始化intr_init(1)进程表初始化进程表初始化6745行行restart运行运行系统任务初始化系统任务初始化6762行行v了解了解Main函数需要哪些知识函数需要哪些知识进程表、内存管理的数据结构进程表、内存管理的数据结构中断控制管理的结构与机制中断控制管理的结构与机制系统任务的类型、内容系统任务的类
21、型、内容进程表初始化的细节操作进程表初始化的细节操作系统任务启动的处理过程系统任务启动的处理过程v如何获取以上相关知识如何获取以上相关知识阅读头文件了解各类数据结构阅读头文件了解各类数据结构阅读被调用函数代码了解处理机制阅读被调用函数代码了解处理机制阅读处理代码了解初始化细节操作阅读处理代码了解初始化细节操作总结分析,理解系统初始化过程总结分析,理解系统初始化过程操作系操作系统课统课程程讲义讲义20进程、内存、系统任务结构定义进程、内存、系统任务结构定义vMinix中的进程结构中的进程结构kernelProc.h中定义,注意各个数据成员的含中定义,注意各个数据成员的含义。义。Proc与与Pro
22、c结构的重复定义结构的重复定义vMinix中的内存结构中的内存结构minixtype.h中定义,中定义,mem_map结构结构vMinix中的系统任务结构中的系统任务结构kerneltable.c中定义,注意中定义,注意Extern的用法的用法操作系操作系统统的启的启动过动过程程操作系操作系统课统课程程讲义讲义21内容提要内容提要v代码结构组织与数据结构定义代码结构组织与数据结构定义v专题专题1操作系统的启动过程操作系统的启动过程v专题专题2操作系统的进程管理操作系统的进程管理v专题专题3操作系统的设备管理操作系统的设备管理v专题专题4操作系统的内存管理操作系统的内存管理v专题专题5操作系统的
23、文件管理操作系统的文件管理内容提要内容提要操作系操作系统课统课程程讲义讲义22进程管理的基本原理回顾进程管理的基本原理回顾v进程的基本概念进程的基本概念进程与程序的差别、进程状态进程与程序的差别、进程状态v进程调度基本原理进程调度基本原理调度策略的评价标准:公平、有效、响应时间、周转时间、吞吐量调度策略的评价标准:公平、有效、响应时间、周转时间、吞吐量调度模型:时间片轮转、优先级、多重队列、最短作业优先、彩票调调度模型:时间片轮转、优先级、多重队列、最短作业优先、彩票调度、实时调度、两级调度度、实时调度、两级调度进程调度的设计思考:调度策略与调度机制分开进程调度的设计思考:调度策略与调度机制分
24、开v进程通信基本原理进程通信基本原理进程通信的三面内涵:信息传送、互斥、同步进程通信的三面内涵:信息传送、互斥、同步进程通信基本概念:竞争条件、临界区、互斥解决方案的四个条件进程通信基本概念:竞争条件、临界区、互斥解决方案的四个条件进程互斥的解决方法:忙等待、睡眠进程互斥的解决方法:忙等待、睡眠/唤醒、信号量、消息机制、管唤醒、信号量、消息机制、管程程进程同步的解决方法:信号量、消息机制进程同步的解决方法:信号量、消息机制操作系操作系统统的的进进程管理程管理操作系操作系统课统课程程讲义讲义23Minix中的进程调度中的进程调度v基本数据结构基本数据结构三级进程队列:三级进程队列:rdy_hea
25、dNQ、rdy_tailNQ(kernelproc.h)proc_ptr:全局变量,指向当前应该运行的进程:全局变量,指向当前应该运行的进程v调度相关函数(调度相关函数(kernelproc.c)选择合适的进程运行:选择合适的进程运行:pick_proc函数(函数(7176行)行)进程状态转化:变为就绪态和被阻塞,进程状态转化:变为就绪态和被阻塞,ready函数和函数和unready函数函数(7207行)行)用户进程的时间片轮转:用户进程的时间片轮转:sched函数(函数(7308行)行)v关于进程调度机制实现过程的思考关于进程调度机制实现过程的思考如何启动进程调度机制呢?如何启动进程调度机制
26、呢?如何实现进程状态的自动转化呢?如何实现进程状态的自动转化呢?如何保证如何保证OS运行的稳定呢?(关中断的锁变量)运行的稳定呢?(关中断的锁变量)操作系操作系统统的的进进程管理程管理操作系操作系统课统课程程讲义讲义24Minix中的进程通信中的进程通信v进程通信的基本知识进程通信的基本知识操作系统对中断(硬件中断和软件中断)的响应机制操作系统对中断(硬件中断和软件中断)的响应机制消息传递的运行机制(还记得消息机制的实现方法吗)消息传递的运行机制(还记得消息机制的实现方法吗)vMinix中断处理机制中断处理机制对对8259芯片的操作(注意保护模式与实模式的差别)芯片的操作(注意保护模式与实模式
27、的差别)对中断号、中断向量、中断描述表的操作对中断号、中断向量、中断描述表的操作对硬件中断、软件中断(系统调用)的操作对硬件中断、软件中断(系统调用)的操作vMinix进程通信机制进程通信机制对中断的响应(将中断转化为消息进行处理)对中断的响应(将中断转化为消息进行处理)进程间通信的处理(系统任务和服务器进程、用户进程与其他进程)进程间通信的处理(系统任务和服务器进程、用户进程与其他进程)通信机制的实现(控制流程)通信机制的实现(控制流程)操作系操作系统统的的进进程管理程管理操作系操作系统课统课程程讲义讲义25Minix中的进程通信中的进程通信vMinix进程通信原理进程通信原理基于会合机制的
28、消息传递,基于会合机制的消息传递,Senc与与Recv的同步的同步核心函数:核心函数:mini_send和和mini_rec函数(函数(7045行,仔细阅读)行,仔细阅读)最困难的理解:如何完成硬中断和软中断的消息传递最困难的理解:如何完成硬中断和软中断的消息传递vMinix硬件中断处理机制硬件中断处理机制8259芯片工作原理(图芯片工作原理(图2-33)硬件中断信号硬件中断信号8259响应响应中断信号处理中断信号处理硬件底层历程硬件底层历程Interrupt调用调用系统任务系统任务结合结合8259中断控制器、中断控制器、CPU保护模式、进程消息通信机制的复杂过程保护模式、进程消息通信机制的复
29、杂过程vMinix软件中断处理机制软件中断处理机制系统调用函数系统调用函数构造消息构造消息int SYS386_VECTOR指令指令_s_call调用调用sys_call调用调用系统任务系统任务结合库函数、进程消息通信、结合库函数、进程消息通信、CPU保护模式的复杂过程保护模式的复杂过程v对硬件中断和软件中断的理解和学习对硬件中断和软件中断的理解和学习OS中进程通信的最底层操作就是对硬件中断和软件中断的响应与处理。中进程通信的最底层操作就是对硬件中断和软件中断的响应与处理。复杂的中断嵌套情况真实体现了多进程并发的核心本质。复杂的中断嵌套情况真实体现了多进程并发的核心本质。操作系操作系统统的的进
30、进程管理程管理操作系操作系统课统课程程讲义讲义26Minix中的进程通信中的进程通信v中断处理硬件的基本工作原理中断处理硬件的基本工作原理主从中断控制器主从中断控制器中断捕获、发送、处理基本流程中断捕获、发送、处理基本流程v中断门描述符(中断门描述符(8字节结构)字节结构)说明了处理该中断所需的核心例说明了处理该中断所需的核心例程程中断处理软件的入口中断处理软件的入口v中断处理的基本过程中断处理的基本过程CStart中建立中断表中建立中断表Main中对中断控制器进行初始化中对中断控制器进行初始化捕获中断后执行相关历程捕获中断后执行相关历程操作系操作系统统的的进进程管理程管理操作系操作系统课统课
31、程程讲义讲义27Minix中的中断处理中的中断处理操作系操作系统统的的进进程管理程管理操作系操作系统课统课程程讲义讲义28Minix中的中断处理中的中断处理操作系操作系统统的的进进程管理程管理中断控制器中断控制器捕获中断信号捕获中断信号当前进程堆栈当前进程堆栈结尾创建新堆栈结尾创建新堆栈关键寄存器的关键寄存器的值压栈值压栈(注意位置)(注意位置)中断处理例程中断处理例程填充被中断填充被中断进程的堆栈内容进程的堆栈内容切换至核心栈,切换至核心栈,开始中断服务开始中断服务运行运行_restart如有中断嵌套,如有中断嵌套,则继续处理中断则继续处理中断中断嵌套处理完中断嵌套处理完成,运行当前成,运行
32、当前进程进程(_proc_ptr)继续运行当前继续运行当前就绪进程就绪进程CPU自自动动控控制制转转移移控控制制转转移移控控制制转转移移控控制制转转移移控控制制转转移移控控制制转转移移CPU自自动动操作系操作系统课统课程程讲义讲义29Minix中的中断处理中的中断处理v中断处理所使用的数据空间中断处理所使用的数据空间进程堆栈、进程堆栈、TSS(任务状态段,核心栈)(任务状态段,核心栈)中断处理例程使用进程堆栈(保存上下文、记录返回地址和信息)中断处理例程使用进程堆栈(保存上下文、记录返回地址和信息)中断服务例程将使用核心栈(完成中断服务,调用中断服务例程将使用核心栈(完成中断服务,调用Inte
33、rrupt,引起进程调度),引起进程调度)v中断结束时发生的各种情况中断结束时发生的各种情况在中断服务期间,可能引起进程调度,改变在中断服务期间,可能引起进程调度,改变_proc_ptr的值的值中断服务结束后,将首先检查是否存在中断嵌套情况(中断服务结束后,将首先检查是否存在中断嵌套情况(_k_reenter)标识)标识处理完所有中断后,将从核心栈跳回至进程堆栈,然后调用处理完所有中断后,将从核心栈跳回至进程堆栈,然后调用_restartv多进程并发的理解多进程并发的理解中断服务期间,可能引起进程调度,改变中断服务期间,可能引起进程调度,改变_proc_ptr的值的值中断服务结束后,中断服务结
34、束后,_restart将选择将选择_proc_ptr作为下一个运行的进程作为下一个运行的进程被中断的进程有可能继续存在于就绪队列中,但未必会立刻运行被中断的进程有可能继续存在于就绪队列中,但未必会立刻运行操作系操作系统统的的进进程管理程管理操作系操作系统课统课程程讲义讲义30Minix多进程并发的核心思想多进程并发的核心思想操作系操作系统统的的进进程管理程管理某进程正在运行某进程正在运行使用进程堆栈使用进程堆栈开始中断处理开始中断处理跳至核心堆栈跳至核心堆栈开始中断服务开始中断服务处理中断嵌套处理中断嵌套所有中断被处理所有中断被处理返回被中断进程,返回被中断进程,调用调用_Restart运行被
35、调度进程运行被调度进程捕获捕获中断中断在使用进程堆栈进行中断处理时,将暂在使用进程堆栈进行中断处理时,将暂时关中断以保证原子操作时关中断以保证原子操作进入核心栈后,将重新开中断,以响应中断嵌套进入核心栈后,将重新开中断,以响应中断嵌套的情况。中断服务程序可能引起进程调度,从而的情况。中断服务程序可能引起进程调度,从而影响中断处理完成后的进程运行顺序影响中断处理完成后的进程运行顺序如有中断嵌套情况,则保持在核心栈如有中断嵌套情况,则保持在核心栈内运行,直至处理完成所有中断内运行,直至处理完成所有中断如果发生了进程调度,那么中断处理如果发生了进程调度,那么中断处理结束后即将运行的将是另外一个进程结
36、束后即将运行的将是另外一个进程操作系操作系统课统课程程讲义讲义31内容提要内容提要v代码结构组织与数据结构定义代码结构组织与数据结构定义v专题专题1操作系统的启动过程操作系统的启动过程v专题专题2操作系统的进程管理操作系统的进程管理v专题专题3操作系统的设备管理操作系统的设备管理v专题专题4操作系统的内存管理操作系统的内存管理v专题专题5操作系统的文件管理操作系统的文件管理内容提要内容提要操作系操作系统课统课程程讲义讲义32Minix中的时钟设备管理中的时钟设备管理v时钟设备的服务目标时钟设备的服务目标维护日期时间维护日期时间基于时间片轮转对用户进程进行调度基于时间片轮转对用户进程进行调度对对
37、CPU的使用进行记帐的使用进行记帐定时器服务定时器服务闹钟(用户进程)、监视定时(系统任务)闹钟(用户进程)、监视定时(系统任务)直方图检视和统计信息搜集直方图检视和统计信息搜集vMinix时钟任务的设计原理时钟任务的设计原理两个系统任务:两个系统任务:Clock_Task和和Syn_Alarm_Task所涉及的各种方法:时间统计、定时器处理、时间片调度所涉及的各种方法:时间统计、定时器处理、时间片调度所使用的机制:基于消息的进程通信、硬件中断和软件中断处理所使用的机制:基于消息的进程通信、硬件中断和软件中断处理v时钟中断的处理时钟中断的处理硬件中断:硬件中断:8259捕获捕获底层驱动历程底层
38、驱动历程发送消息发送消息系统任务系统任务软件中断:软件中断:CPU指令指令sys_call调用调用发送消息发送消息系统任务系统任务v对时钟设备管理的原理掌握和实现过程理解对时钟设备管理的原理掌握和实现过程理解具备完整的中断、消息知识体系具备完整的中断、消息知识体系针对各种目标,了解处理过程和实现机制针对各种目标,了解处理过程和实现机制操作系操作系统统的的设备设备管理管理操作系操作系统课统课程程讲义讲义33Minix时钟设备基本原理时钟设备基本原理v时钟硬件设置时钟硬件设置可编程时钟,方波模式(可编程时钟,方波模式(60HZ)时间片设定:时间片设定:100微秒微秒v时钟服务实现方法时钟服务实现方
39、法系统时间维护:启动时间消耗滴答系统时间维护:启动时间消耗滴答定时器实现:虚拟时钟链表定时器实现:虚拟时钟链表v时钟服务的重要函数时钟服务的重要函数硬件中断处理:硬件中断处理:clock_handler软件中断处理:软件中断处理:do_*和和syn_alarm_taskv函数层次的理解和掌握函数层次的理解和掌握最底层:最底层:clock_handler(硬件中断)(硬件中断)中间层:中间层:clock_task和和syn_alarm_task(系统任务)(系统任务)最高层:最高层:do_*和其他功能函数(实现和其他功能函数(实现代码)代码)操作系操作系统统的的设备设备管理管理操作系操作系统课统
40、课程程讲义讲义34Minix中的时钟驱动实现中的时钟驱动实现v核心函数:核心函数:kernelclock.c(11000行)行)clock_task:循环等待消息的处理过程:循环等待消息的处理过程syn_clock_task:自阻塞机制的处理过程:自阻塞机制的处理过程各种功能函数的实现各种功能函数的实现v基于中断原理和进程通信原理的系统调用实现基于中断原理和进程通信原理的系统调用实现用户进程发出系统调用指令用户进程发出系统调用指令软件中断机制软件中断机制时钟滴答到达时间片数目时钟滴答到达时间片数目硬件中断机制硬件中断机制定时器与同步闹钟的使用定时器与同步闹钟的使用信号传送机制(信号传送机制(M
41、M中转)中转)操作系操作系统统的的设备设备管理管理操作系操作系统课统课程程讲义讲义35内容提要内容提要v代码结构组织与数据结构定义代码结构组织与数据结构定义v专题专题1操作系统的启动过程操作系统的启动过程v专题专题2操作系统的进程管理操作系统的进程管理v专题专题3操作系统的设备管理操作系统的设备管理v专题专题4操作系统的内存管理操作系统的内存管理v专题专题5操作系统的文件管理操作系统的文件管理内容提要内容提要操作系操作系统课统课程程讲义讲义36Minix中的内存服务器管理中的内存服务器管理v内存服务器的启动和初始化内存服务器的启动和初始化Boot引导程序将内存服务器的可执行文件放入正确的位置引
42、导程序将内存服务器的可执行文件放入正确的位置TaskTab中定义与内存服务器相关的表项中定义与内存服务器相关的表项Main函数中初始化进程表项,填充服务器进程队列函数中初始化进程表项,填充服务器进程队列restart所有系统任务和服务器进程,轮转到所有系统任务和服务器进程,轮转到MM进程时进行初始化进程时进行初始化v内存服务器的主要任务内存服务器的主要任务负责处理涉及到内存的重要系统调用负责处理涉及到内存的重要系统调用负责管理用户内存空间(分配与回收)负责管理用户内存空间(分配与回收)负责与内核(负责与内核(sys_task)通信,实现)通信,实现“决策机构决策机构”的分离的分离v内存服务器的具体实现内存服务器的具体实现独立的主程序独立的主程序运行在非核心空间运行在非核心空间处理多个系统调用(图处理多个系统调用(图4-34)管理进程表和空洞表管理进程表和空洞表v对对 内存服务器实现机制的了解内存服务器实现机制的了解清晰掌握内存空洞表的管理机制清晰掌握内存空洞表的管理机制结合进程表概念、进程通信、进程调度的基本知识,了解各种系统调用的操作细节结合进程表概念、进程通信、进程调度的基本知识,了解各种系统调用的操作细节操作系操作系统统的的设备设备管理管理操作系操作系统课统课程程讲义讲义37Thanks for your time!Questions&Answers全文全文结结束束