操作系统实验要求

实验一 进程调度实验 3
实验二 页面置换算法模拟 10
实验三 银行家算法模拟 15

实验一 进程调度实验
【开发语言及实现平台或实验环境】
C++/C#
Turbo C / Microsoft Visual Studio 6.0 / Microsoft Visual Studio .NET 2010

【实验目的】
(1)加深对进程的概念及进程调度算法的理解;
(2)在了解和掌握进程调度算法的基础上,编制进程调度算法通用程序,将调试结果显示在计算机屏幕上,并检测机算和笔算的一致性。

【实验要求】
(1)了解进程调度;
(2)理解利用进程调度算法进行调度的原理;
(3)使用某种编程语言进行算法模拟。
【实验原理】
(注意:这个仅是个例子,可以参考本例,选择其他算法进行实验)
一、例题:设计一个有N个进程的进程调度算法。
进程调度算法:采用最高优先数的调度算法(即把处理机分配给优先数最高的进程)。
每个进程有一个进程控制块(PCB)表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。
进程的优先数及需要的运行时间可以事先人为的指定(也可以由随机数产生)。进程的到达时间为进程的输入的时间。进程的运行时间以时间片为单位进行计算。
每个进程的状态可以是就绪W(Wait)、运行R(Run)、或完成F(Finish)三种状态之一。就绪进程获得CPU后都只能运行一个时间片。用已占用CPU时间加1表示。
如果运行一个时间片后,进程的已占用CPU时间已达到所需要的运行时间,则撤销该进程,如果运行一个时间片后,进程的已占用CPU时间还未达到所需要的运行时间,也就是进程还需要继续运行,此时应该将进程的优先数减1(即降低一级),然后把它插入就绪队列等待CPU。
每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的PCB,以便进行检查。
重复以上过程,直到所要的进程都完成为止。
分析:
使用固定队列与静动态优先级结合每个优先级为0~0xFF,并且以小的数字为高优先级,大的数字为低优先级,每次皆使用循环得

猜你喜欢

转载自blog.csdn.net/weixin_43428283/article/details/106799568
今日推荐