- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【2017年整理】《操作系统》实验指导书
《操作系统》实验指导
课程设计一:进程调度
设计目的
要求学生设计一个模拟进程调度的算法
理解进程控制块的结构
理解进程运行的并发性
掌握进程调度的三种基本算法
注:三种算法任选一种编程实现。
设计要求
在多道程序运行环境下,进程数目一般多于处理机数目,使得进程要通过竞争来使用处理机。这就要求系统能按某种算法,动态地把处理机分配给就绪队列中的一个进程,使之运行,分配处理机的任务是由进程调度程序完成的。一个进程被创建后,系统为了便于对进程进行管理,将系统中的所有进程按其状态,将其组织成不同的进程队列。于是系统有运行进程队列、就绪进程队列和各种事件的进程等待队列。进程调度的功能就是从就绪队列中挑选一个进程到处理机上运行。进程调度的算法有多种,常用的有优先级调度算法、先来先服务算法、时间片轮转算法。
进程是程序在处理机上的执行过程。进程存在的标识是进程控制块(PCB),进程控制块结构如下:
Typeedef struct node
{
Char name[10]; /*进程标识符*/
Int prio; /*进程优先数*/
Int round; /*进程时间片轮转时间片*/
Int cputime /*进程占用CPU时间*/
Int neentime /*进程到完成还需要的时间*/
Int count; /*计数器*/
Char state; /*进程的状态*/
Struct node *next; /*链指针*/
}PCB;
系统创建一个进程,就是由系统为某个程序设置一个PCB,用于对该进程进行控制和管理。进程任务完成,由系统收回其PCB,该进程便消亡。每个进程可以有三个状态:运行态、就绪态和完成状态。
使用优先数调度算法完成进程的调度
采用动态优先数法确定进程的优先级别。
设计三个链队列,分别用来表示运行队列、就绪队列和完成队列。
用户输入进程标识符以及进程所需要的时间,申请空间存放进程PCB信息。
优先数调度算法为每个进程设一个优先数,它总是把处理机给就绪队列中具有最高优先权的进程。常用的算法有静态优先数法和动态优先数法。
动态优先数法,使进程的优先权随时间而改变。初始的进程优先数取决于进程运行所需要的时间,时间大,则优先数低。可采取将进程优先数定为一个较大的数(50)减去进程运行所需要的时间。随着进程的运行对优先数进行调整,每次运行时都是从就绪队列中选取优先数最大的进程运行,所以,就将就绪队列按照优先数的大小从高到低排序,这样,每次选队首进程即可。
进程每执行一次,优先数减一个数(自定),CPU时间数加1,进程还需要的时间减1。如果进程所需时间为0,说明进程运行完毕,将其状态变为完成状态“F”,将此进程PCB插入到完成队列中,若就绪队列不空,则将就绪队列中的第一个PCB变为运行状态。进程若没有完成,则将其优先数和就绪队列中的第一个PCB的优先数作比较,如果小,则将其变为就绪态,插入到就绪队列中适当的位置,将就绪队列中的第一个PCB变为运行态投入运行,重复上述过程,直到就绪队列为空,所以进程成为完成状态为止。
使用时间片轮转算法完成进程的调度
设计要求:
设计三个链队列,分别用来表示运行队列、就绪队列和完成队列。
用户输入进程标识符以及进程所需要的时间,申请空间存放进程PCB信息。
输出格式和上面的一样
时间片轮转调度:具体做法是调度程序每次把CPU分配给就绪队列首进程使用一个时间片。当这个时间片结束时,就强迫一个进程让出处理器,让它排列到就绪队列的尾部,等候下一轮的调度。实现这种调度要使用一个间隔时钟。当一个进程开始运行时,就将时间片的值置入间隔时钟内,当发生间隔时钟中断时,就表明该进程连续运行的时间已超过一个规定的时间片。此时,中断处理程序就通知处理器调度进行处理器的切换工作。
用先来先服务算法完成进程的调度
设计要求:
设计三个链队列,分别用来表示运行队列、就绪队列和完成队列。
用户输入进程标识符以及进程所需要的时间,申请空间存放进程PCB信息。
输出格式和上面的一样
先来先服务算法:按照进程进入就绪队列的先后次序来分配处理器。先进入就绪队列的进程优先被挑选,运行进程一旦占有处理器将一直运行下去直到运行结束或被阻塞,这是一种非剥夺式调度。
课程设计二:磁盘调度
设计目的
要求学生设计一个模拟磁盘调度的程序。
理解磁盘调度过程中的三个时间段
理解磁盘调度的三种算法
实验原理
共享设备的典型代表为磁盘,磁盘物理块的地址由柱面号、磁头号、扇区号来指定,完成磁盘某一个物理块的访问要经过三个阶段:寻道时间Ts、旋转延迟时间Tw和读写时间Trw。
寻道时间Ts是磁头从
您可能关注的文档
- 【2017年整理】2016上海杨浦区高考二模地理答案与解析.doc
- 【2017年整理】2016云南教资统考物理学科:物理电子电路基础知识——电容器.doc
- 【2017年整理】2016医学影像论文.doc
- 【2017年整理】2016市政定额解释.doc
- 【2017年整理】2016小学生冬季运动会活动方案.doc
- 【2017年整理】2016四川事业单位笔试公共基础知识:磁性材料.doc
- 【2017年整理】2016年3月现行建筑施工规范目录(新).doc
- 【2017年整理】2016年《国家电网公司电力安全工作规程》考试试卷(A卷).doc
- 【2017年整理】2016年一级建造师考试《市政工程》精选模拟试题.doc
- 【2017年整理】2016年一级建造师考试复习重点:检验试验费.doc
文档评论(0)