- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统课程设计报告 处理机调度问题
操作系统课程设计 : : : : : : : 目录 目录 1 1.设计题目与要求 2 1.1设计目的 2 1.2设计要求 2 2. 总体设计思想 2 2.1总体设计思想 2 3. 功能设计 4 3.1 数据结构设计 4 3.2程序清单 4 3.3运行结果 7 4. 设计心得 9 5. 参考资料 9 附录 10 程序源代码: 10 一.设计题目与要求 课题:理机调度模拟程序:选择一个调度算法,实现处理机调度。 1.设计目的: 在多道程序和多任务系统中,系统内同时处于就绪状态的进程可能有若干个。也就是说能运行的进程数大于处理机个数。为了使系统中的进程能有条不紊地工作,必须选用某种调度策略,选择一进程占用处理机。要求学生设计一个模拟处理机调度算法,以巩固和加深处理机调度的概念。 2.设计要求: 1)进程调度算法包括:时间片轮转法,短作业优先算法,最高响应比优先算法。 2)可选择进程数量 3)本程序包括三种算法,可用C语言实现,执行时在主界面选择算法(可用函数实现),进入子页面后输入进程数及每个进程的运行时间,每个进程的优先数由随机函数产生且优先数随等待时间而变化,执行,显示结果。 二.总体设计思想 (1)进程的创建:由系统为某个进程设置一个进程控制块PCB,用于对进程进行控制和管理。进程任务完成,由系统收回其PCB,该进程便消亡。 (2)进程的三种状态:运行、就绪、完成。进程的三种状态可以通过设计三个链队列来实现:finish为完成队列的头指针,ready为就绪队列的头指针,tail为循环轮转法队列的尾指针。因为每一时刻,CPU只能运行一个进程,所以运行队列只有一个run指针指向当前运行进程。 (3)进程调度的功能:按照一定的策略从就绪队列的多个进程中选取一个进程,使其获得CPU而运行。 ①动态优先数调度算法: 思想:为每一个进程设一个优先数,它总是把处理机给就绪队列中具有最高优先级的进程。初始的进程优先数是随机产生的,随着进程的运行对优先数进行调整,每次运行时都是从就绪队列中选取优先数最大的进程运行,所以将就绪队列按照优先数的大小从高到低排序,这样,每次取对首进程即可。将进程按优先数的大小排列在就绪队列中,每次选取就绪队列中优先权最高的进程首先占用处理机。优先数由随机函数产生进程最初的优先数。优先数的动态变化:进程每执行一次优先数-1。优先数随着进程的执行进行调整,每次执行时都从就绪队列中选取优先数最大的进程投入运行。 ②时间片轮转调度算法: 思想:将所有进程按照先来先服务的规则排成一个队列,把CPU分配给就绪队列的队首进程,并规定它的执行时间(称此时间为时间片),当时间片用完但并未执行结束时,剥夺该进程的执行,将其链接到就绪队列的队尾,等待下一次的选择。将就绪队列的队首指针投入运行。 ③短作业优先调度算法(不可剥夺式的) 思想:根据估计运行时间的长短,将各个进程排成一个就绪队列(估计运行时间最短的进程排在队首),每次运行将队首进程投入运行,直到运行结束,将此进程连接到完成队列的队尾。然后,再将下一个队首进程投入运行,直到所有的进程都运行完毕。 三.功能设计 1.数据结构设计 PCB结构体: typedef struct node { char name[10]; /*进程时间轮转时间片*/ int pid; /*进程的标号*/ int prio; /*优先级*/ int round; /*时间片*/ int cputime; /*进程占用cpu的时间*/ int runtime; /*进程运行所用的时间*/ int waittime; /*进程的等待时间*/ int length; /*进程的长度*/ int count; /*计数器*/ char state; /*进程的状态*/ struct node *next;/*链指针*/ }PCB ; PCB结构体用于标识进程的创建与撤消。 链指针: PCB *finish,*ready,*tail,*run;. Finish:完成队列的首指针,用于标识完成队列; Ready:就绪队列的首指针,用于标识就绪队列;; Run:运行队列的首指针,用于标识运行队列;; Tail:循环轮转队列的尾指针; 2.程序清单 (1)Create1(),create2(),create3()分别为创建进程的函数 Create1( ):按照优先级调度算法创建进程,用户输入进程名及进程所需的时间后,创建每个进程的PCB,将每个进程的PCB调用函数inser
您可能关注的文档
最近下载
- 2025至2030中国再担保行业发展趋势分析与未来投资战略咨询研究报告.docx
- 新版VDA6.3-2023过程审核精品教程(培训课件).pptx VIP
- 鲁教版Unit5IlikemusicthatIcandanceto知识点教案.pdf VIP
- 2024年四川省公考《申论》题县乡卷附解析.pdf VIP
- DB4401T+282—2024准《城市道路挖掘修复技术规范》.docx VIP
- 600MW火电机组节能对标指导手册_PDF电子书下载 高清 带索引书签目录_sample_中国电力投资集团公司编著_北京:中国电力出版社.pdf VIP
- 高手接话:高情商的讲话方法.pdf VIP
- 蓝色商务供应商采购供应商管理培训PPT模板.pptx VIP
- 八年级英语IlikemusicthatIcandanceto测试题.docx VIP
- 建设银行2025开封市信息科技岗笔试题及答案.docx VIP
文档评论(0)