网站大量收购闲置独家精品文档,联系QQ:2885784924

【2017年整理】《操作系统》实验指导书.doc

【2017年整理】《操作系统》实验指导书.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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是磁头从

文档评论(0)

liangyuehong + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档