
操作系统管理进程,采用时间片轮转调度方式。银行家算法用于解决进程调度中的资源分配问题。作业调度则是操作系统中进一步细化的调度机制。
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
设计一个采用时间片轮转算法的进程调度程序。[提示]:(1) 假设系统包含五个进程,每个进程通过进程控制块(PCB)进行表示。进程控制块的格式如下:进程名、指针、要求运行时间、已运行时间、状态。其中,进程名用于标识进程,假设五个进程的进程名分别为P1、P2、P3、P4和P5。指针指示进程按照循环队列排列,利用指针指向下一个进程控制块的首地址,最后一个进程的指针指向第一个进程控制块的首地址。要求运行时间表示该进程所需要的运行单位时间数,而已运行时间则记录该进程已经运行的单位时间数,初始值为“0”。状态有两种可能:“就绪”和“结束”,初始状态均为“就绪”,用“R”表示。当一个进程完成运行时,其状态变为“结束”,用“E”表示。(2) 在每次设计程序前,为每个进程任意指定其“要求运行时间”。(3) 将这五个进程按顺序排列成循环队列,并使用指针来定义队列中的连接关系。此外,还需要一个标志单元来记录当前轮到执行的进程。例如,如果当前轮到P2执行,则标志单元的内容可能是K2, K1, P1, K2, P2, K3, P3, K4, P4, K5, P5, K2, K3, K4, K5, K1, 2, 3, 1, 2, 4, 1 ,0 ,0 ,0 ,0 R R R R R PCB1 PCB2 PCB3 PCB4 PCB5。(4) 每次进行过程调度时,系统总是选择标志单元指示的进程进行执行。由于本次实习旨在模拟过程调度的功能,因此不会实际启动这些被选中的过程而是执行“已运行时间+1”操作来模拟一次过程运行情况,表明该过程已经运行了一个单位的时间。(5) 在一个过程执行完毕后,应将该过程的PCB中的指针值传递到标志单元中,以指示下一个轮到执行的流程。同时需要判断该流程的要求运行时间和已运行时间的比较结果;若要求运行时间和已运行时间相等则表明流程已经完成且退出队列;否则则等待下一轮调度。(6) 如果有“就绪”状态的流程队列不为空时重复步骤(4)和(5),直到所有流程都变为“结束”状态。(7) 在设计的程序中应包含显示或打印语句的功能能够显示或打印每次被选中的流程名称以及流程队列的变化。(8) 为这五个流程任意确定一组“要求运行时间”,然后执行所设计的流程调度程序并显示或打印逐次被选中的流程名称以及流程控制块动态变化的过程。模拟多资源银行家算法实习检查:(1)程序运行时由检查教师输入系统初态(包括各流程名称和各流程已获得资源、尚需资源及当前系统可用资源情况),注意:流程数目和资源种类由检查教师动态确定;(2)由检查教师输入此时某一流程申请各资源的具体情况并使用银行家算法检测该请求是否安全。若请求安全则显示分配后的资源分配矩阵、各个流程资源需求矩阵以及当前可用资源情况并给出安全序列;若请求不安全则给出警告信息!作业调度采用FCFS、SJF、响应比高者优先算法模拟设计作业调度程序。[提示]:(1)每个作业的JCB中包括作业名、提交时刻以及要求的运行时长;(2)假设第一个作业提交时系统中没有正在进行的作业即第一个作业一提交系统便开始进行调度。要求:输入一批作业中各作业的作业名、提交时刻以及要求的运行时长;选择不同的作业调度程序进行操作;输出相应作业调度算法下各作业的等待时间、周转时间以及带权周转时间的这批作业的调度顺序平均周转时间和平均带权周转时间
全部评论 (0)


