视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
操作系统实验报告 进程管理
2025-10-01 18:16:22 责编:小OO
文档
实验二  进程调度算法的设计

实习内容

进程调度是处理机管理的核心内容。实验要编写和调试一个简单的进程调度程序实现下面两种算法:

短进程优先调度算法(SPF)和时间片轮转调度算法(RR)

实习目的

通过对进程调度算法的设计,深入理解进程调度的原理。加深理解有关进程控制块、进程队列的概念。并体会了短进程优先调度算法和时间片轮转调度算法的具体实施办法。

实习原理

基础概念:进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个单位。

进程调度,是控制协调进程对CPU的竞争,即按一定的调度算法从就绪队列中选中一个进程,把CPU的使用权交给被选中的进程。

算法思想:

短进程优先调度算法(SPF)原理:在就绪队列中选择进入系统的作业所要求的CPU时间为标准,总选取估计计算时间最短的作业投入运行。

时间片轮转调度算法RR原理:进程调度按一定时间片(q)轮番运行各个进程,进程按到达时间在就绪队列中排队,调度程序每次把CPU分配给就绪队列首进程使用一个时间片,运行完一个时间片释放CPU,排到就绪队列末尾参加下一轮调度,CPU分配给就绪队列的首进程。

实习编程思路和流程

每个进程有一个进程控制块( PCB)表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。 

进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。进程的到达时间为进程输入的时间。 

进程的运行时间以时间片为单位进行计算。 

就绪进程获得 CPU后都只能运行一个时间片。用已占用CPU时间加1来表示。 

如果运行一个时间片后,进程的已占用 CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减1(即降低一级),然后把它插入就绪队列等待CPU。 

每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的 PCB,以便进行检查。 重复以上过程,直到所要进程都完成为止。

调度算法的流程图如下 :

   

模拟程序运行结果截图

——短进程优先调度算法(SPF)    

初始化:选择SPS调度算法,创建两个进程,以及程序为进程随机分派的初态

第一个时间片后的输出情况,运行了较短的进程0,

在第二个时间片中运行了第二个进程1

连续三个时间片的运行,在第三个时间片,进程0完成

由运行可以看出,实验结果正确

时间片轮转调度算法(RR)运行截图

初始化:选择RR调度算法,创建三个进程,以及程序为进程随机分派的初态

进程按时间片轮转,再遇到阻塞时,该进程跳过3个阻塞,

进过11个时间片的运行,所有进程运行完毕!试验成功。

总结与体会

该实验利用进程调度中的短进程优先调度算法(SPF)和时间片轮转调度算法(RR)调度进程,通过自己理解和学习代码,对其工作原理有了更多的了解。

一开始在做这个实验的时候,不知道该从哪里开始做。后来根据书上的原理和编程的基础知识,我慢慢地了解了大致的流程。通过这次实验,首先加深了我对进程调度方法和功能的认识,其次让我更加深刻地理解了操作系统中进程调度中调度算法的基本原理。优先级调度算法只是进程调度算法的一种,我们还应依照书本去学习进程调度的其它算法,以便更好地了解进程调度下载本文

显示全文
专题