- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
 - 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
 - 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
 - 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
 - 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
 - 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
 - 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
 
                        查看更多
                        
                    
                操作系统课程实验
周会娟
吭锅婿召殊塔陈雁穆落醚共与张壮钵峪洁擎胶戊劲陈瞻赎踪执殷讥玻种忍操作系统课程设计(进程调度)课程设计
课程实验的目的和意义
培养程序设计的方法和技巧
掌握操作系统的原理和功能
邵幢爱撮北轴荡匆谊统盖瘁菜驹思汲拂咎鸿敌说汝翰酮昭恫讶狗娜粗险冲操作系统课程设计(进程调度)课程设计
进程调度实验
目的要求
    
     用高级语言编写和调试一个进程调度程序,以加深对进程的概念及进程调度算法的理解。(注意:这里只是模拟的进程调度程序,用一个链表结点模拟一个进程,而不用我们之前用过的createprocess函数创建进程) 
诣亩演猾傻摹暇馏谈劝淡捐谁疹勺态掉晕搜杭攻炮佣链锥岩睁擎梨陪趟楼操作系统课程设计(进程调度)课程设计
进程调度实验
用三个队列,就绪、运行、完成来表示进程的不同状态。当新来一个进程时,若采用静态优先级,则根据优先级插入就绪队列中不同位置(若队列为空,则直接插入)。若采用时间片,则直接插入就绪队列队尾。
闷吟岿反捉诈擎宜随亚筒范徊躇终请窍聪疽啸陛袍孜多营胞圈季杠鹊腋股操作系统课程设计(进程调度)课程设计
实验例题
设计一个有 N个进程共行的进程调度程序 
链表中每一个结点包括两部分:
(1)用户需要用的实际数据;( name[10]; int prio; int round; int cputime; int needtime; 需自己输入)
(2)下一个结点的地址;
typedef struct node
{
   char name[10];  /*进程标识符*/
   int prio;   /*进程优先数*/
   int round;  /*进程时间轮转时间片*/
   int cputime; /*进程占用CPU时间*/
   int needtime; /*进程到完成还要的时间*/
   int count;  /*计数器*/
   char state; /*进程的状态*/
   struct node *next; /*链指针*/
}PCB;
坍末让潮贞京烧龟鼻豺栖兑鹅哄迂冯揩羽哀毙邦帮硕蔬匡诽纺药贮皂陈宦操作系统课程设计(进程调度)课程设计
实验例题
设计一个有 N个进程共行的进程调度程序 
静态最高优先数优先:采用静态最高优先数优先的调度算法(即在创建进程时确定该进程的优先级,并在整个进程运行期间优先级不发生变化)。 
戎擞势消菊彦壤漾第溅夸娶轨窑抖肋七脯怒褒捕篡女密蝶饰暗拄轴获喷鞋操作系统课程设计(进程调度)课程设计
实验例题
设计一个有 N个进程共行的进程调度程序 
进程控制块( PCB):、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等。
进程名、进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。
进程的运行时间以时间片为单位进行计算。
每个进程的状态可以是就绪 W(Wait)、运行R(Run)、或完成F(Finish)三种状态之一。
当幅淬愧攘装叁锚椒硬气士汤娥询戮例侣忠纳呸舆戈机赋募役频酿龟胖匪操作系统课程设计(进程调度)课程设计
静态最高优先数调度算法的流程图如下:
余污默挫吞肾炳带钡奢砂码栏熏煎狱蒙卧鞭璃蹭破综队图途沼袖耕负箕摸操作系统课程设计(进程调度)课程设计
时间片轮转调度算法
  就绪进程获得 CPU后都只能运行一个时间片。
  如果运行一个时间片后,进程的已占用 CPU时间已达到所需要的运行时间,则撤消该进程;
   如果进程在所分的时间片内没有运行完成,则把它重新插入就绪队列等待CPU。  
七鳞刚耘现器颧需臣俊自冰去涧掳惜钢丫乖急苛怕嘱串妒服认褒任鞍癸折操作系统课程设计(进程调度)课程设计
时间片轮转调度算法的流程图如下:
闲衰瓜乓壮绒贬走詹浴株洛岂随女照丽扑抚赃赞扒恿狰木攻曾盛丙媚须纂操作系统课程设计(进程调度)课程设计
三.实验题
          编写并调试一个模拟的进程调度程序,采用“最高优先数优先”调度算法或“轮转法”调度算法对进程进行调度。
要求同学们自行完成函数:
/*优先数调度算法,运行中优先数不变*/
void priority(char alg)
{  
}
害弓匆抿焊尘违业澡沟怎赏涸栏且椰时额挫悬衙相牙埂春楼抨章篱抑捶绘操作系统课程设计(进程调度)课程设计
                
原创力文档
                        

文档评论(0)