2.4 处理机管理
一、设计目的
在多道程序或多任务系统中,系统同时处于就绪态的进程有若干个。也就是说能运行的进程数远远大于处理机个数。为了使系统中的各进程能有条不紊地运行,必须选择某种调度策略,以选择一进程占有处理机。要求学生设计一个模拟单处理机调度的算法,以巩固和加深处理机调度的概念。
二、设计要求
1、问题描述
处理机管理是操作系统中非常重要的部分。为深入理解处理机调度部分的功能,设计一个按时间片轮转调度CPU的算法,模拟实现处理机的调度。
2.基本要求
时间片轮转调度CPU的算法是分时系统采用的典型算法,把CPU的执行时间分成若干个一定大小的时间片轮流的分配给就绪队列的各个进程,让各就绪进程按指定的顺序分别占用CPU的一个时间片轮流执行下去,直至完成。要求定义进程控制块PCB的结构,并为每个进程任意确定一个要求运行时间和到达时间,按照进程到达的先后顺序排成一个循环队列。设计按时间片轮转的进程调度算法。
三、设计思想、环境说明和使用工具
1.设计思想
(1) 假设系统有5个进程,每个进程用一个进程控制块PCB来代表。PCB的格式如图4-1所示。
进程名 链接指针 到达时间 估计运行时间 进程状态 图4-1 进程控制块
其中,进程名即进程标识。
链接指针:指出下一个到达进程的进程控制块首地址。按照进程到达的顺序排队。系统设置一个队头和队尾指针分别指向第一个和最后一个进程。新生成的
进程放队尾。
估计运行时间、到达时间以及进程状态与图3-1中相同。 (2) 为每个进程任意确定一个要求运行时间和到达时间。
(3) 按照进程到达的先后顺序排成一个循环队列。再设一个队首指针指向第一个到达进程的首址。
(4) 执行处理机调度时,开始选择队首的第一个进程运行。另外再设一个当前运行进程指针,指向当前正运行的进程。
(5) 由于本实践是模拟算法,所以对被选中进程并不实际启动运行,而只是执行:
① 估计运行时间减1; ② 输出当前运行进程的名字。 用这两个操作来模拟进程的一次运行。
(6) 进程运行一次后,以后的调度则将当前指针依次下移一个位置,指向下一个进程,即调整当前运行指针指向该进程的链接指针所指进程,以指示应运行进程。同时还应判断该进程的剩余运行时间是否为0。若不为0,则等待下一轮的运行;若该进程的剩余运行时间为0,则将该进程的状态置为完成态C,并退出循环队列。
(7) 若就绪队列不空,则重复上述的(5)和(6)步骤直到所有进程都运行完为止。
(8) 在所设计的调度程序中,应包含显示或打印语句。以便显示或打印每次选中进程的名称及运行一次后队列的变化情况。
2.环境说明 工具:C语言。
在WINDOWS环境下使用VC++6.0进行编译及运行。
四、主要的数据结构
数据结构说明:
typedef struct pcb /*进程控制块定义*/
{ char pname[N]; /*进程名*/
int runtime; /*运行时间*/ int arrivetime; /*到达时间*/ char state; /*进程状态*/
struct pcb *next; /*链接指针*/
}PCB;
五、课程设计应提交的主要内容
1.写出实现文件管理的数据结构、算法和算法流程图。 2.打印出程序清单。
3.写出程序调试及运行情况。
4.写出课程设计出现的问题及解决的方法。 5.课程设计的体会。 6.自我评价与总结。
内蒙古工业大学课程设计任务书(一)
学院(系):信息学院计算机系 课程名称:操作系统课程设计 指导教师(签名): 专业班级: 计算机11- 学生姓名: 学号:
一、课程设计题目 文件系统的设计与实现 二、课程设计的目的 通过设计一个小型文件系统,进一步掌握文件管理的方法和技术,使学生初步具有研究、设计、编制和调试操作系统模块的能力。 三、课程设计的主要内容和要求(包括原始数据、技术参数、设计要求、工作量要求等) 原始数据:文件目录项结构体,盘块结构体。 技术参数:Windows XP系统,VC++6.0开发工具。 设计要求: 1.设计基于位示图的文件连续分配算法; 2.设计显示文件目录、建立文件、显示文件内容、复制和删除文件算法; 3.画出以上算法流程图; 4.编程实现算法功能; 5.编写课程设计说明书。 工作量要求:完成以上设计要求中的所有算法功能。 四、工作进度安排 周一:布置、讲解题目,收集资料; 周二:系统分析,算法设计; 周三:编制、调试程序; 周四:测试系统,形成设计结论,编写课设报告; 周五:系统及材料验收,课设答辩。 五、主要参考文献 [1] 张尧学编.计算机操作系统教程(第三版)习题解答与实验指导.北京:清华大学出版社,2006 [2] 汤子瀛主编.计算机操作系统(第三版).西安:西安电子科技大学出版社,2001 [3] 张坤等编.操作系统实验教程.北京:清华大学出版社,2008 审核批准意见 系(教研室)主任(签字) 内蒙古工业大学课程设计任务书(二)
学院(系):信息学院计算机系 课程名称:操作系统课程设计 指导教师(签名): 专业班级:计算机11- 学生姓名: 学号:
一、课程设计题目 银行家算法的设计与实现 二、课程设计的目的 通过银行家算法设计与实现,可以加深学生对死锁的理解,掌握死锁的预防、避免、检测和解除的基本原理,重点掌握死锁的避免方法—银行家算法。使学生初步具有研究、设计、编制和调试操作系统模块的能力。 三、课程设计的主要内容和要求(包括原始数据、技术参数、设计要求、工作量要求等) 技术参数: Windows XP系统,VC++6.0开发工具。 设计要求: 1.设计银行家算法的核心数据结构、安全性检查算法; 2.画出银行家算法流程图; 3.编程实现算法功能; 4.编写课程设计说明书。 工作量要求:完成以上设计要求中的所有算法功能。 四、工作进度安排 周一:布置、讲解题目,收集资料; 周二:系统分析,算法设计; 周三:编制、调试程序; 周四:测试系统,形成设计结论,编写课设报告; 周五:系统及材料验收,课设答辩。 五、主要参考文献 [1] 张尧学编.计算机操作系统教程(第三版)习题解答与实验指导.北京:清华大学出版社,2006 [2] 汤子瀛主编.计算机操作系统(第三版).西安:西安电子科技大学出版社,2001 [3] 张坤等编.操作系统实验教程.北京:清华大学出版社,2008 审核批准意见 系(教研室)主任(签字)