进程调度模拟程序:假设有10个进程需要在CPU上执行,分别用:先进先出调度算法、基于优先数的调度算法、最短执行时间调度算法确定这10个进程在CPU上的执行过程。要求每次进程调度时在屏幕上显示:当前执行进程、就绪队列、等待队列。 实现了三种方法,纯自己开发,使用链表实现,无bug。
1
1.编写并调试一个模拟的进程调度程序,采用“最高优先数优先”调度算法对五个进程进行调度。 2、用“简单轮转法调度算法”实现第一题
2019-12-21 20:40:24 5KB C/C++ 调度算法 操作系统
1
每个进程有一个进程控制块(PCB)表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。 进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。 进程的到达时间为进程输入的时间。 进程的运行时间以时间片为单位进行计算。 每个进程的状态可以是就绪W(Wait)、运行R(Run)、或完成F(Finish)三种状态之一。 就绪进程获得CPU后都只能运行一个时间片,运行后已占用CPU时间加1。 如果运行一个时间片后,进程的已占用CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减1(即降低一级),然后把它插入就绪队列等待CPU。 每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的PCB,以便进行检查。
2019-12-21 20:25:51 3KB 最高优先数优先的调度算法
1
(1)假定系统有5个进程,每个进程用一个PCB来代表。PCB的结构为: •进程名——如P1~P5。 •指针——按优先数的大小把5个进程连成队列,用指针指出下一个进程PCB的首地址。 •要求运行时间——假设进程需要运行的单位时间数。 •优先数——赋予进程的优先数,调度时总是选取优先数大的进程先执行。 •状态——假设两种状态:就绪和结束,用R表示就绪,用E表示结束。初始状态都为就绪状态。 (2) 开始运行之前,为每个进程确定它的“优先数”和“要求运行时间”。通过键盘输入这些参数。 (3) 处理器总是选择队首进程运行。采用动态改变优先数的办法,进程每运行1次,优先数减1,要求运行时间减1。 (4) 进程运行一次后,若要求运行时间不等于0,则将它加入就绪队列,否则,将状态改为“结束”,退出就绪队列。 (5) 若就绪队列为空,结束,否则转到(3)重复。
2019-12-21 20:15:35 3KB 优先级 处理器 调度
1
序号成员变量意义或操作方法 1 进程名称ID 进程的标识 2 优先数PRIORITY 越大优先权越高,在运行期间可以被 动态改变。 3 到达时间ENTERTIME 进程输入的时间 4 进程余下运行时间 ALLTIME 进程开始为全部时间,运行完毕 ALLTIME = 0 5 已使用CPU 时间 USEDTIME 每在CPU上运行1个时间片就加1 6 连续运行时间RUNTIME 进程就绪前已经连续运行RUNTIME 个时间片 7 连续就绪时间 READYTIME 进程运行前已连续就绪READYTIME 个时间片 8 进程状态STATE 三个状态:READY、RUNNING、 FINISHED 9 队列指针NEXT 用来将PCB排成队列
2019-12-21 19:57:41 36KB 操作系统
1
整个实验是模拟了单处理系统处理进程的机制,采用了轮转算法和优先数算法。经过这次实验,加深了对操作系统中单处理系统的进程调度的认识。此外,还学习并使用了进度条、表格等多种java的控件,对线程也有了更深的了解。整个实验难点在于对控件的灵活运用,算法算是比较简单的,最后还加入了一定的纠错防范机制,确保程序的正确运行。
2019-12-21 19:34:46 509KB java 进度调度 轮转法 优先数
1
我自己上学期写的操作系统课设(理发师问题,时间片轮转调度算法,优先数调度算法)c#,vs可视化 用c#及vs实现可视化 详情可见文件里的课设报告
2019-12-21 19:33:55 1.32MB 操作系统 c# 理发师问题 进程调度模拟
1