版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
OS_操作系统课件_chapter6第一页,共38页。内容提要代码结构组织与数据结构定义专题1——操作系统的启动过程专题2——操作系统的进程管理专题3——操作系统的设备管理专题4——操作系统的内存管理专题5——操作系统的文件管理内容提要2第二页,共38页。代码结构组织代码结构与数据结构Minix系统代码结构头文件:usr/include源代码:usr/src无法归类的公共头文件Posix标准头文件:sys/操作系统头文件:minix/IBMPC头文件:ibm/系统核心代码:kernel/内存管理器代码:mm/文件系统代码:fs/库例程代码:lib/init源代码:tools/命令代码:commands/网络源代码:inet/测试工具源代码:test/3第三页,共38页。代码结构组织代码结构与数据结构磁盘任务终端任务时钟任务系统任务以太网任务……内存管理器文件系统网络服务器……Init进程用户进程用户进程用户进程用户进程……进程管理系统核心代码kernel/独立代码模块mm、fs...源代码头文件系统配置定义编译环境定义硬件环境定义数据类型定义DS、接口定义常量与宏定义全局变量定义4第四页,共38页。头文件的定义与组织头文件有哪些功能?功能1:定义数据结构、定义函数接口功能2:宏定义,例如常量、错误代码功能3:设定编译开关,控制运行过程功能4:设定硬件开关,适应硬件环境功能5:设定配置开关,限定功能范围头文件的用法举例代码结构与数据结构5第五页,共38页。软件的体系结构观点代码结构与数据结构硬件底层环境编译器环境操作系统环境现实应用环境程序内部控制流程完整的软件系统设计必须涵盖从底层至顶层的完整流程,以体系结构的思想面对软件研发适应CPU、堆栈、寄存器、I/O设备等硬件差别适应不同编译器的函数声明与变量定义规范适应不同OS的实现差别,控制运行环境依据不同的条件选择不同的运行流程依据不同的需求控制系统的功能和性能6第六页,共38页。Minix的公共头文件组织适应底层硬件环境如何区别CPU的差别?适应编译环境如何遵循ANSI、POSIX等标准,适应不同编译环境?控制运行流程如何设定内部开关,控制有效范围和运行流程?适应应用环境如何实现可移植性,同时提供用户配置接口?实现基本功能为保持系统运行稳定和性能卓越而进行的定义与实现代码结构与数据结构7第七页,共38页。与硬件环境相关的头文件针对CPU和设备驱动的宏定义include/minix/config.h(2600行)针对键盘布局、硬盘分区的头文件include/minix/keymap.h、partition.h针对IBM硬件平台的专有头文件include/ibm/diskparm.h,partition.h代码结构与数据结构8第八页,共38页。与编译环境相关的头文件遵循ANSI规范的头文件include/ansi.h、stdlib.h遵循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代码结构与数据结构9第九页,共38页。与OS系统实现相关的头文件基本数据类型与系统限制include/limits.h,errno.h系统实现所需头文件include/a.out.h——可执行文件格式系统相关的数据类型和内部调用include/minix/const.h、type.h、syslib.h、callnr.h、com.h、boot.h代码结构与数据结构10第十页,共38页。头文件的组织方法分类保存头文件include/:最基本的公共头文件(不依赖软硬件环境)include/sys:遵循系统规范的头文件(Posix规范)include/minix:实现系统内部功能的头文件include/ibm:针对特定硬件平台的头文件头文件分类组织思想的讨论与反思分目录保存头文件,保持系统结构清晰,便于引用分类别定义头文件,便于代码维护和扩展对复杂系统而言,头文件的组织和定义是第一个难题代码结构与数据结构11第十一页,共38页。头文件中的玄机探密预编译选项的应用实现自定义的系统配置(分析与举例)与编译器相互结合,实现外部环境侦测(分析与举例)实现功能的扩展与限制(分析与举例,termios.h)组合形成的复杂应用(Minix中的Errorcode定义举例)头文件的实现规范防止重复引用的错误(分析与举例,const.h分析)支持不同语言的结合(分析与举例)头文件的包含次序(分析与举例)全局变量的定义与实现(Table.c分析)代码结构与数据结构12第十二页,共38页。内容提要代码结构组织与数据结构定义专题1——操作系统的启动过程专题2——操作系统的进程管理专题3——操作系统的设备管理专题4——操作系统的内存管理专题5——操作系统的文件管理内容提要13第十三页,共38页。Minix的启动过程操作系统的启动过程ROM将引导扇区内容写入硬盘确定活动分区的引导扇区将Minix映象保存至内存引导结束读磁盘分区表读引导扇区内容执行boot程序16位启动模式(mpx88.s)32位启动模式(mpx386.s)GDT与IDT初始化(cstart)Minix系统初始化(main)Restart启动任务系统运行12系统引导过程系统启动过程14第十四页,共38页。Minix的系统引导过程硬件启动的引导过程BIOS规范设定了对磁盘分区的要求,第一扇区为引导扇区操作系统遵循BIOS规范,在引导扇区内保存系统引导程序BIOS程序自动寻找磁盘引导扇区,执行系统引导程序系统引导程序读取引导选项,开始正常启动操作系统引导过程分析活跃分区、引导扇区、磁盘分区表的组织和使用操作系统的安装过程:Minix中的Installboot程序操作系统的启动过程:Minix中的Boot程序引导过程的参数设置与管理(举例:多系统引导是如何实现的?)Minix:引导块为1K,第二扇区保存引导选项Windows:Ntldr寻找Boot.ini(遵循ARC规范),再确定引导内容操作系统的启动过程15第十五页,共38页。磁盘分区的组织与管理操作系统的启动过程未分区的磁盘第一扇区为引导扇区由引导程序直接载入即可已分区磁盘必须存在主分区,主分区的第一扇区保存MBRMBR中包含分区表,各个分区第一扇区为引导扇区从主分区一直读取到系统所在分区的引导扇区Windows中的引导卷和系统卷区别16第十六页,共38页。Minix的系统初始化过程操作系统与CPU的兼容16位/32位模式是CPU(微处理)的硬件规范操作系统必须与CPU的硬件规范兼容,因此针对16位/32位存在不同的初始化过程,执行初始化过程的程序被称为引导监控程序初始化过程基本都是使用汇编语言,在适当的时候控制权转移高层程序Minix中的初始化代码:mpx.s(5800行)初始化过程都是首先按照16位模式运行,在适当时候切换至32位模式Minix的系统初始化过程16位模式运行——切换至32位(6051行)——建立堆栈框架运行C程序——定义存储器段(拷贝CPU内表格)——CStart(初始化GDT和IDT)——填充寻址寄存器的初值(6115行)——激活GDT和IDT——执行高层系统初始化(6131行)——Restart启动系统任务——系统任务阻塞——MM和FS初始化——getty进程——用户登陆初始化过程的控制流程mpx88.s——mpx386.s(汇编——CStart——汇编——Main——汇编——MM/FS——用户)操作系统的启动过程17第十七页,共38页。Minix的启动过程(Init进程)操作系统的启动过程16位启动模式(mpx88.s)32位模式入口(6051行)建立堆栈、定义存储器段和处理器寄存器执行CStart初始化寻址寄存器,并激活(6115行)执行系统初始化(Main函数,6131行)执行restart,开始系统任务(6822行)进程表中所有系统任务完成,初始化MM和FS进程表中所有系统任务完成,初始化MM和FS创建getty进程等待用户登陆控制转移控制转移控制转移控制转移控制转移控制转移控制转移18第十八页,共38页。Minix系统初始化(Main)操作系统的启动过程MAIN系统内存初始化mem_init中断控制器初始化intr_init(1)进程表初始化6745行restart运行系统任务初始化6762行了解Main函数需要哪些知识进程表、内存管理的数据结构中断控制管理的结构与机制系统任务的类型、内容进程表初始化的细节操作系统任务启动的处理过程如何获取以上相关知识阅读头文件了解各类数据结构阅读被调用函数代码了解处理机制阅读处理代码了解初始化细节操作总结分析,理解系统初始化过程19第十九页,共38页。进程、内存、系统任务结构定义Minix中的进程结构kernel\Proc.h中定义,注意各个数据成员的含义。Proc与Proc[]结构的重复定义Minix中的内存结构minix\type.h中定义,mem_map结构Minix中的系统任务结构kernel\table.c中定义,注意Extern的用法操作系统的启动过程20第二十页,共38页。内容提要代码结构组织与数据结构定义专题1——操作系统的启动过程专题2——操作系统的进程管理专题3——操作系统的设备管理专题4——操作系统的内存管理专题5——操作系统的文件管理内容提要21第二十一页,共38页。进程管理的基本原理回顾进程的基本概念进程与程序的差别、进程状态进程调度基本原理调度策略的评价标准:公平、有效、响应时间、周转时间、吞吐量调度模型:时间片轮转、优先级、多重队列、最短作业优先、彩票调度、实时调度、两级调度进程调度的设计思考:调度策略与调度机制分开进程通信基本原理进程通信的三面内涵:信息传送、互斥、同步进程通信基本概念:竞争条件、临界区、互斥解决方案的四个条件进程互斥的解决方法:忙等待、睡眠/唤醒、信号量、消息机制、管程进程同步的解决方法:信号量、消息机制操作系统的进程管理22第二十二页,共38页。Minix中的进程调度基本数据结构三级进程队列:rdy_head[NQ]、rdy_tail[NQ](kernel\proc.h)proc_ptr:全局变量,指向当前应该运行的进程调度相关函数(kernel\proc.c)选择合适的进程运行:pick_proc函数(7176行)进程状态转化:变为就绪态和被阻塞,ready函数和unready函数(7207行)用户进程的时间片轮转:sched函数(7308行)关于进程调度机制实现过程的思考如何启动进程调度机制呢?如何实现进程状态的自动转化呢?如何保证OS运行的稳定呢?(关中断的锁变量)操作系统的进程管理23第二十三页,共38页。Minix中的进程通信进程通信的基本知识操作系统对中断(硬件中断和软件中断)的响应机制消息传递的运行机制(还记得消息机制的实现方法吗)Minix中断处理机制对8259芯片的操作(注意保护模式与实模式的差别)对中断号、中断向量、中断描述表的操作对硬件中断、软件中断(系统调用)的操作Minix进程通信机制对中断的响应(将中断转化为消息进行处理)进程间通信的处理(系统任务和服务器进程、用户进程与其他进程)通信机制的实现(控制流程)操作系统的进程管理24第二十四页,共38页。Minix中的进程通信Minix进程通信原理基于会合机制的消息传递,Senc与Recv的同步核心函数:mini_send和mini_rec函数(7045行,仔细阅读)最困难的理解:如何完成硬中断和软中断的消息传递Minix硬件中断处理机制8259芯片工作原理(图2-33)硬件中断信号——8259响应——中断信号处理——硬件底层历程——Interrupt调用——系统任务结合8259中断控制器、CPU保护模式、进程消息通信机制的复杂过程Minix软件中断处理机制系统调用函数——构造消息——intSYS386_VECTOR指令——_s_call调用——sys_call调用——系统任务结合库函数、进程消息通信、CPU保护模式的复杂过程对硬件中断和软件中断的理解和学习OS中进程通信的最底层操作就是对硬件中断和软件中断的响应与处理。复杂的中断嵌套情况真实体现了多进程并发的核心本质。操作系统的进程管理25第二十五页,共38页。Minix中的进程通信中断处理硬件的基本工作原理主从中断控制器中断捕获、发送、处理基本流程中断门描述符(8字节结构)说明了处理该中断所需的核心例程中断处理软件的入口中断处理的基本过程CStart中建立中断表Main中对中断控制器进行初始化捕获中断后执行相关历程操作系统的进程管理26第二十六页,共38页。Minix中的中断处理操作系统的进程管理27第二十七页,共38页。Minix中的中断处理操作系统的进程管理中断控制器捕获中断信号当前进程堆栈结尾创建新堆栈关键寄存器的值压栈(注意位置)中断处理例程填充被中断进程的堆栈内容切换至核心栈,开始中断服务运行_restart如有中断嵌套,则继续处理中断中断嵌套处理完成,运行当前进程(_proc_ptr)继续运行当前就绪进程CPU自动控制转移控制转移控制转移控制转移控制转移控制转移CPU自动28第二十八页,共38页。Minix中的中断处理中断处理所使用的数据空间进程堆栈、TSS(任务状态段,核心栈)中断处理例程使用进程堆栈(保存上下文、记录返回地址和信息)中断服务例程将使用核心栈(完成中断服务,调用Interrupt,引起进程调度)中断结束时发生的各种情况在中断服务期间,可能引起进程调度,改变_proc_ptr的值中断服务结束后,将首先检查是否存在中断嵌套情况(_k_reenter)标识处理完所有中断后,将从核心栈跳回至进程堆栈,然后调用_restart多进程并发的理解中断服务期间,可能引起进程调度,改变_proc_ptr的值中断服务结束后,_restart将选择_proc_ptr作为下一个运行的进程被中断的进程有可能继续存在于就绪队列中,但未必会立刻运行操作系统的进程管理29第二十九页,共38页。Minix多进程并发的核心思想操作系统的进程管理某进程正在运行使用进程堆栈开始中断处理跳至核心堆栈开始中断服务处理中断嵌套所有中断被处理返回被中断进程,调用_Restart运行被调度进程捕获中断在使用进程堆栈进行中断处理时,将暂时关中断以保证原子操作进入核心栈后,将重新开中断,以响应中断嵌套的情况。中断服务程序可能引起进程调度,从而影响中断处理完成后的进程运行顺序如有中断嵌套情况,则保持在核心栈内运行,直至处理完成所有中断如果发生了进程调度,那么中断处理结束后即将运行的将是另外一个进程30第三十页,共38页。内容提要代码结构组织与数据结构定义专题1——操作系统的启动过程专题2——操作系统的进程管理专题3——操作系统的设备管理专题4——操作系统的内存管理专题5——操作系统的文件管理内容提要31第三十一页,共38页。Minix中的时钟设备管理时钟设备的服务目标维护日期时间基于时间片轮转对用户进程进行调度对CPU的使用进行记帐定时器服务——闹钟(用户进程)、监视定时(系统任务)直方图检视和统计信息搜集Minix时钟任务的设计原理两个系统任务:Clock_Task和Syn_Alarm_Task所涉及的各种方法:时间统计、定时器处理、时间片调度所使用的机制:基于消息的进程通信、硬件中断和软件中断处理时钟中断的处理硬件中断:8259捕获——底层驱动历程——发送消息——系统任务软件中断:CPU指令——sys_call调用——发送消息——系统任务对时钟设备管理的原理掌握和实现过程理解具备完整的中断、消息知识体系针对各种目标,了解处理过程和实现机制操作系统的设备管理32第三十二页,共38页。Minix时钟设备基本原理时钟硬件设置可编程时钟,方波模式(60HZ)时间片设定:100微秒时钟服务实现方法系统时间维护:启动时间+消耗滴答定时器实现:虚拟时钟链表时钟服务的重要函数硬件中断处理:clock_handler软件中断处理:do_****和syn_alarm_task函数层次的理解和掌握最底层:clock_handler(硬件中断)中间层:clock_task和syn_alarm_task(系统任务)最高层:do_*
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- AI在国际标准舞中的应用
- 2026年加油站手机扫码支付安全风险培训
- 2026年幼儿个体发展档案建立与分析方法
- 2025贵州省中考语文真题(原卷版)
- 2025湖南省长沙市中考地理试题(原卷版)
- 上海立达学院《安全工程信息技术与管理》2025-2026学年第一学期期末试卷(B卷)
- 2026年某公司风险管理实施细则
- 2026年小学数学教育与英语教育的有机结合
- 2026年数字货币发行流通安全风险与监管措施
- 2026年钢结构安装高处作业应急处理指南
- 2026年中考历史考前冲刺:中国+世界(古代史|近代史|现代史) 小论文范文汇编
- 实验室CNAS认可体系建设
- DBJ50-T-157-2022房屋建筑和市政基础设施工程施工现场从业人员配备标准
- TCCUA 002-2024 数据中心基础设施运维服务能力要求
- DL-T 5756-2017 高清版 额定电压35kV(Um=40.5kV)及以下冷缩式电缆附件安装规程
- 浙江花园营养科技有限公司花园年产15.6吨25-羟基维生素D3结晶项目环境影响报告书
- 中国人寿行测题库2023及答案2023
- 教你填《广东省普通高中学生档案》精编版
- 2023年贵州省黔西南州兴义市桔山街道社区工作者招聘笔试题库及答案解析
- 天使爱美丽-电影剧本法语版
- 《简单教数学》读书-分享-
评论
0/150
提交评论