文档详情

操作系统实验进程调度程序设计.doc

发布:2018-02-16约8.2千字共13页下载文档
文本预览下载声明
本科实验报告 课程名称: 操作系统B 实验项目: 进程调度程序设计 实验地点: 专业班级: 学号: 学生姓名: 指导教师: 2011年 11月 PAGE \* MERGEFORMAT11 目录 进程调度程序设计  TOC \o 1-3 \h \z \u  HYPERLINK \l _Toc312658682 一、实验目的和要求  PAGEREF _Toc312658682 \h 1  HYPERLINK \l _Toc312658683 二、实验内容及原理  PAGEREF _Toc312658683 \h 1  HYPERLINK \l _Toc312658684 三、实验仪器设备  PAGEREF _Toc312658684 \h 3  HYPERLINK \l _Toc312658685 四、操作方法与实验步骤  PAGEREF _Toc312658685 \h 3  HYPERLINK \l _Toc312658686 五、实验数据记录和处理  PAGEREF _Toc312658686 \h 3  HYPERLINK \l _Toc312658687 六、实验结果与分析  PAGEREF _Toc312658687 \h 10  HYPERLINK \l _Toc312658688 七、实验感想  PAGEREF _Toc312658688 \h 11  实验二 进程调度程序设计 一、实验目的和要求 目的 进程是操作系统最重要的概念之一,进程调度是操作系统的主要内容,本实验要求学生独立地用高级语言编写一个进程调度程序,调度算法可任意选择或自行设计,本实验可使学生加深对进程调度和各种调度算法的理解。 要求 设计一个有几个进程并发执行的进程调度程序,每个进程由一个进程控制块(PCB)表示,进程控制块通常应包括下述信息:进程名,进程优先数,进程需要运行的时间,占用CPU的时间以及进程的状态等,且可按照调度算法的不同而增删。 调度程序应包含2—3种不同的调度算法,运行时可以任选一种,以利于各种方法的分析和比较。 系统应能显示或打印各进程状态和参数的变化情况,便于观察。 二、实验内容及原理 本程序可选用优先数法或简单轮转法对五个进程进行调度。每个进程处于运行R(run)、就绪W(wait)和完成F(finish)三种状态之一,并假定起始状态都是就绪状态W。 为了便于处理,程序中进程的运行时间以时间片为单位计算。各进程的优先数或轮转时间片数、以及进程需要运行的时间片数,均由伪随机数发生器产生。 进程控制块结构如表2-1所示: 表2-1 PCB 进程标识符 链指针 优先数/轮转时间片数 占用CPU时间片数 进程所需时间片数 进程状态 进程控制块链结构如图2-1所示: RUN HEAD TAIL 1 ┇ R 3 ┇ W 5 ┇ W W 0 ┇ 2 … 图2-1 进程控制块链结构 其中:RUN—当前运行进程指针; HEAD—进程就绪链链首指针; TAIL—进程就绪链链尾指针。 2. 算法与框图 程序框图如图2-2所示。 priority 是 输入调度算法alog 开始 alog=priority/round robin? 生成并按优先数大小排列进程控制块链 进程时间片数为0? 从链首取一个进程投入运行 生成并按进入次序 排列进程控制块链 链首进程投入运行 时间片到,进程时间片 数减1,优先数减3 运行进程退出,排到进程链尾部 撤消该进程 链首进程投入运行 时间片到,进程时间片数 减1,占用CPU时间加1 优先数大于链首进程? 进程时间片数为0? 撤消该进程 运行进程退出,按优先数插入进程链 从链首取一个进程投入运行 结束 结束 进程队列空? 进程队列空? 是
显示全部
相似文档