《操作系统》课件-8

《操作系统》课件-8

ID:44279922

大小:1.66 MB

页数:24页

时间:2019-10-20

《操作系统》课件-8_第1页
《操作系统》课件-8_第2页
《操作系统》课件-8_第3页
《操作系统》课件-8_第4页
《操作系统》课件-8_第5页
资源描述:

《《操作系统》课件-8》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第8章实例分析:Linux操作系统1.2.3.本章讲述内容:4.Linux的三种进程调度策略及消息队列;Linux的多级页表地址转换机制;Linux的文件系统Ext2和虚拟文件系统VFS;Linux对字符设备和块设备的管理。8.1Linux的处理机管理8.1.1Linux的进程Linux进程的两种运行模式1.Linux里,当进程运行用户程序时,称为“用户模式”;当进程运行中出现系统调用或中断事件,转去执行操作系统内核程序时,称为“核心模式”。进程在核心模式时,从事资源管理及各种控制活动;在用户模式时,在操作系统管理和控制下

2、做自己的工作。..在Linux里处理机有两种运行状态:在核心态,CPU执行操作系统的程序;在用户态,CPU执行用户程序。这两种运行状态,会在一定时机按需要进行转换。.Linux把进程定义为是“程序运行的一个实例”。进程竞争并占用系统资源,向系统提出各种请求服务;进程也是调度单位,任何时刻只有一个进程在CPU上运行。Linux进程实体的组成2..Linux中,每个进程是一个任务(task),有四个部分:进程描述符,即进程控制块;进程专用的系统堆栈空间;正文段,即供进程执行的程序段;进程专用的数据段和用户堆栈空间。Linux进

3、程的四个部分.在Linux中,进程描述符是一个结构类型的数据结构:task_struct,主要有以下信息:接收的信号进程队列指针CPU的现场保护区与文件系统有关的信息产生一个新进程时,系统就分配总量为8KB的空间(即两个连续的内存块),用于存放进程描述符和组成系统堆栈。进程因系统调用进入Linux内核时(这时CPU被切换成核心态),就使用系统堆栈。..进程描述符和核心栈两个连续的物理块(8KB)堆栈进程描述符进程的核心栈(7KB)(1KB)Linux对进程描述符的管理Linux在内核存储区里开辟一个指针数组task,长度为

4、NR_TASKS,每个数组元素里存放一个已创建进程的进程描述符地址。即每个数组元素都指向一个已创建进程的进程描述符,通过它,就可以找到当前系统中所有进程的进程描述符。一个进程描述符一个进程描述符一个进程描述符NR_TASKS个元素指针数组taskLinux进程描述符的内容3...进程标识.进程状态....进程调度信息进程家族关系暂停状态:运行进程由于接收到一个信号,执行被暂时停止。处于该状态的进程,只能由来自另一个进程发来的信号改变成就绪状态。不可中断状态:这是另外一种阻塞状态。处于这种状态的进程,表示进程不能被信号中断,

5、而是在等待硬件条件的到来。可中断状态:进程由于等待某些条件,而处于这种阻塞状态,直到那些条件出现将其唤醒。4.Linux的进程状态可运行状态:进程已做好了运行的准备。该状态实际上包含两个状态,要么在CPU上运行(为执行状态),要么已经做好准备,随时可以投入运行(为就绪状态)。暂停状态可中断状态不可中断状态僵死状态可运行状态就绪执行调度被抢先创建事件信号终止信号或事件信号.....僵死状态:进程已经被终止,正在结束中。5.Linux的进程族系Linux系统初启时,自动建立系统的第一个进程:初始化进程。之后,所有的进程都由它以

6、及它的子孙创建。因此,Linux系统中的各个进程,相互之间构成了一个树型的进程族系。8.1.2Linux的进程调度1.SCHED_FIFO—实时进程的先进先出调度策略SCHED_FIFO是一种抢占式的调度策略。原则上,把CPU分给进程后,该进程就占用CPU直到释放为止。但若在此期间另有更高优先级的FIFO进程就绪,那就会把CPU抢夺过来。若有多个进程都有最高优先级,那就选择等待时间最长的投入运行。该调度策略适合实时进程,它们对时间性要求较强,每次运行所需的时间较短。SCHED_RR—实时进程的轮转调度SCHED_RR是一种

7、抢占式的调度策略。分配给进程一个时间片后,若在此期间有另一个更高优先级的RR进程就绪,那么就允许它抢夺过CPU投入运行。若有多个进程都具有最高优先级,那就选择其中等待时间最长的投入运行。可见,SCHED_RR调度策略适合于每次运行需要时间较长的实时进程。SCHED_OTHER—非实时进程的轮转调度SCHED_OTHER是基于动态优先级的轮转调度策略,它适合于交互式的分时应用。在这种调度策略里,进程的动态优先级用所谓的优先数来表示:优先数越小,相应的优先级越高。操作系统对核心态进程和对用户态进程,采取不同的方法来改变其优先数

8、,从而改变优先级。Linux的三种调度策略...消息队列是进程间的一种异步通信方法。所谓“异步”,即发送消息的进程在消息发出之后,不必等待接收进程做出反应,就可以去做其他的事情了。Linux为进程间的通信提供多种机制,如有消息队列、信号、信号量、管道以及共享内存储区等。信号用于一个进程向另一个进程发通知

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。