进程调度实验指导

进程调度实验指导

ID:46554597

大小:147.00 KB

页数:17页

时间:2019-11-25

进程调度实验指导_第1页
进程调度实验指导_第2页
进程调度实验指导_第3页
进程调度实验指导_第4页
进程调度实验指导_第5页
资源描述:

《进程调度实验指导》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、进程调度实验一实验目的1.加深对进程的理解,了解内核是对进程如何管理的2.了解进程的几个状态,和他们和互切换的方法3.掌握常见的调度算法原理,对系统的性能有什么影响二准备知识1.进程的概念进程是在自身的虚拟地址空间运行的一个单独的程序。进程与程序是有区别的,虽然它由程序产生。程序只是一个静态的指令集合,不占系统的运行资源;而进程是一个随时都可能发生变化的、动态的、使用系统运行资源的程序。而且一个程序可以启动多个进程。进程是程序执行时的一个实例,从用户的观点來看,进程的目的是担当分配系统资源(CPU时间,

2、存储器等)的实体,Linux中的关于进程的代码大部分是如何管理进程的代码,每个进程运行的是程序的代码,进程有独立的存储空间,专有的用户空间堆栈。2.进程的数据结构为了讣Linux来管理系统中的进程,每个进程用一个task_struct数据结构来表示(任务与进程在Linux中可以混用)。数组task包含指向系统中所有task_struct结构的指针.taskstruct的主要数据域进程标志符PID进程所占的内存区域相关文件的文件描述符安全信息进程环境信号处理资源安排同步处理1.进程状态进程在执行过程中会根

3、据环境来改变stateoLinux2.4内核进程有以下状态:Running进程处丁•运行(它是系统的当前进程)或者准备运行状态(它在等待系统将CPU分配给它)。Waiting进程在等待一个事件或者资源。Linux将等待进程分成两类;可中断与不可中断。可中断等待进程可以被信号中断;不可中断等待进程直接在硬件条件等待,并且任何情况下都不可屮断。Stopped进程被停止,通常是通过接收-个信号。正在被调试的进程可能处于停止状态。Zombie这是由于某些原因被终止的进程,但是在task数据中仍然保留task.s

4、tmct结构。它像一个已经死亡的进程。2.相关的系统调用(1)Fork()通过复制调用进程來建立新的进程,是最基木的进程建立过程(2)Exec()包括一系列系统调用,它们都是通过用一个新的程序覆盖原来的内存空间,实现进程的转变(3)Wait()提供初级的进程同步措施,能使一个进程等待,直到另外一个进程结朿为止。(4)Exit()该系统调用用來终止一个进程的运行3.进程调度的主要依据调度程序运行吋,要在所有处于可运行状态的进程之小选择最值得运行的进程投入运行。选择进程的依据是什么呢?在每个进程的task_

5、struct结构中有这么四项(1)policy是进程的调度策略,用來区分实时进程和普通进程,实时进程优先于普通进程运行;(2)priority是进程(包扌舌实时和普通)的静态优先级;counter是进程剩余的时间片,它的起始值就是priority的值;(3)counter在后面让算一个处于口J运行状态的进程值得运行的程度goodness时起重要作用,因此,counter也可以看作是进程的动态优先级。(4)rt_priority是实时进程特冇的,用实时进程间的选择。4.进程调度策略(1)SCHED_OTH

6、ER:这是普通的用户进程,进程的缺省类型,采用动态优先调度策略,选择进程的依据主要是根据进程goodness值的大小。这种进程在运行时,可以被高goodness值的进程抢先。(1)SCHED_FIFO:这是一种实时进程,遵守POSIX1.b标准的FIFO(先入先出)调度规则。它会一舌运行,直到有-•个进程因I/O阻塞,或者主动释放CPU,或者是CPU被另一个具有更高rt_priority的实时进程抢先。在Linux实现中,SCHED_FTFO进程仍然拥有时间片-只有当时间片用完时它们才被迫释放CPUo因

7、此,如同POSIX1.b一样,这样的进程就彖没冇时间片(不是采用分时)一样运行。Linux屮进程仍然保持对其时间片的记录(不修改counter)主要是为了实现的方便,同时避免在调度代码的关键路径上出现条件判断语句if(!(current->policy&SCHED_FIFO))要知道,其他大量非FIFO进程都需要记录时间片,这种多余的检测只会浪费CPU资源。(一种优化措施,不该将执行时间占10%的代码的运行时间减少到50%;而是将执行时间占90%的代码的运行时间减少到95%。0.9+0.1*0.5=0.

8、95>0.1+0.9*0.9=0.91。(3)SCHED_RR:这也是一种实时进程,遵守POSTXI.b标准的RR(循环round-robin)调度规则。除了时间片有些不同外,这种策略与SCIIED_FIFO类似。当SCIIED_RR进程的时间片用完后,就被放到SCHED_F1FO和SCHED.RR队列的末尾。1.公平调度算法和Linux三种内建策略比,公平分享调度策略是一种更抽象的调度策略。它认为CPU应该根据拥有进程的组(对Linux來

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

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

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