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

实验指导书 -理机调度算法.doc

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验指导书 -理机调度算法

实验1 处理机调度算法设计 一、实验目的 处理机调度是处理机管理的核心内容。本实验要求用高级语言编写模拟进程调度程序,以便加深理解有关进程控制快、进程队列等概念,并体会和了解进程调度算法的具体实施办法。 二、实验内容 编写一个进程调度模拟程序,实现以下调度算法:先来先服务调度,时间片轮转调度算法,短作业优先调度算法,最高响应比优先调度算法,多级反馈队列调度算法。 三、实验要求 1.设计进程控制块PCB的结构,通常应包括如下信息: 进程名、进程优先数(或轮转时间片数)、进程已占用的CPU时间、进程到完成还需要的时间、进程的状态、当前队列指针等。 2.能演示进程调度过程。 3.界面友好。 4.实验报告书写请参考附录 四、实验提示 1.每个进程可有三种状态;执行状态(RUN)、就绪状态(READY,包括等待状态)和完成状态(FINISH),并假定初始状态为就绪状态。 2.主程序定义PCB结构和其他有关变量,每个调度算法用一个子程序实现。 3.进程控制块结构参考: NAME——进程标示符 PRIO/ROUND——进程优先数/进程每次轮转的时间片数(设为常数2) CPUTIME——进程累计占用CPU的时间片数 NEEDTIME——进程到完成还需要的时间片数 STATE——进程状态 NEXT——链指针 注:(1)为了便于处理,程序中进程的的运行时间以时间片为单位进行计算; (2)各进程的优先数或轮转时间片数,以及进程运行时间片数的初值,均由用户在程序运行时给定。 4.进程的就绪态和等待态均为链表结构。 5.在优先数算法中,进程优先数的初值设为: 50-NEEDTIME 每执行一次,优先数减1,CPU时间片数加1,进程还需要的时间片数减1。 6.在轮转法中,采用固定时间片单位(两个时间片为一个单位),进程每轮转一次,CPU时间片数加2,进程还需要的时间片数减2,并退出CPU,排到就绪队列尾,等待下一次调度。 附录: 用多线程同步方法解决睡眠理发师问题(Sleeping-Barber Problem) 一、实验目的 进程的同步是操作系统处理机管理的重要内容,本实验要求学生理解生产者与消费者问题模型,掌握解决该问题的算法思想,学会使用同步机制。理发店理有一位理发师、一把理发椅和n把供等候理发的顾客坐的椅子如果没有顾客,理发师便在理发椅上睡觉一个顾客到来时,它必须叫醒理发师如果理发师正在理发时又有顾客来到,则如果有空椅子可坐,就坐下来等待,否则就离开。 ” 及其线程自定义标识,还同时显示理发室共有几名顾客及其所坐的位置。 6.至少有10个顾客,每人理发至少3秒钟。 目录 1设计题目与要求 4 1.1 设计题目 4 1.2 设计要求 4 1.2.1 初始条件 4 1.2.2 技术要求 4 2 总体设计思想及开发环境与工具 4 2.1 总体设计思想 4 2.2 多线程编程原理 5 2.2.1 创建一个线程 5 2.2.2 等待一个线程结束 5 2.2.3 信号量 6 2.3 伪码实现 6 2.4 开发环境与工具 7 3数据结构与模块说明 8 3.1 数据结构 8 3.2程序模块说明 8 3.2.1主函数模块 8 3.2.2 理发师模块 9 3.2.3 顾客模块 9 4源程序 10 4.1用户名、源程序名和目标程序名 10 4.2源程序代码 11 5运行结果 14 5.1运行步骤 14 5.2运行结果 15 5.2.1 编辑,编译和运行的过程图 15 5.2.2 错误部分截图 16 5.2.3 正确运行结果图 16 6调试记录 18 6.1调试记录 18 6.2自我评析和总结 19 7参考文献 19 1设计题目与要求 1.1 设计题目 用多线程同步方法解决睡眠理发师问题(Sleeping-Barber Problem) 1.2 设计要求 1.2.1 初始条件 (1)操作系统:Linux (2)程序设计语言:C语言 (3)设有一个理发师,5把椅子(另外还有一把理发椅),几把椅子可用连续存储单元。 1.2.2 技术要求 (1)为每个理发师/顾客产生一个线程,设计正确的同步算法 (2)每个顾客进入理发室后,即时显示“Entered” 及其线程自定义标识,还同时显示理发室共有几名顾客及其所坐的位置。 (3)至少有10个顾客,每人理发至少3秒钟。 (4)多个顾客须共享操作函数代码。 2 总体设计思想及开发环境与工具 2.1 总体设计思想 题目中要求描述理发师和顾客的为,因此需要两类程barber()和customer ()分别描述理发师和顾客的行

文档评论(0)

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

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

1亿VIP精品文档

相关文档