计算机操作系统——进程控制和调度

一、 实验目的

用高级语言编写和调试进程调度的模拟程序,以加深对进程调度算法的理解。

二、实验仪器设备

CodeBlock

三、实验内容

1、 自定义进程相关的数据结构; 2、 模拟进程控制块队列、进程控制块优先级队列、统计信息链表及其指令集合; 3、 编程实现常见的进程控制和调度策略(先来先服务算法(FCFS调度法)、短作业(进程)优先调度算法(SJ调度算法)、最高优先权优先调度算法(优先调度算法)、时间片轮转算法(RR调度算法)); 4、 测试以上进程调度策略的周转时间、带权周转时间、平均周转时间和平均带权周转时间,并定性评价它们的性能。

四、实验步骤

创建和显示进程状态算法:PCB *CreatPCB(int n)

    FCFS调度算法

功能:根据进程到达的顺序进行调度,先到达的进程先执行。在就绪队列中排的越靠前越先执行   算法:void FCFS(PCB *head,PCB *over)

    SJ调度算法

功能:从就绪队列中选出剩余执行时间最短的就绪进程进行执行。执行结束后继续从就绪队列中选出剩余执行时间最短的。直到所有进程都被执行完。   算法:void SJF(PCB *head,PCB *over)//sjf算法

    优先调度算法(Prio):

功能:从就绪队列中选出优先级别最高的进程进行执行。重复进行。直到所有的所有的进程执行完毕。   算法:void Prio(PCB *head,PCB *over)

    RR调度算法:

功能:根据时间片的大小,对每个进程依次执行。时间片用完之后进程进入阻塞的状态,重新得到时间片后接着执行。直到完成。   算法:void RR(PCB *head,PCB *over,int t,int k)//时间片轮转法 FCFS调度算法: SJF调度算法: 优先调度算法: RR调度算法:

五、实验总结;

该实验利用进程调度中的优先级算法调度进程,开始给每一个进程设定一个优先级数,对于优先级高的进程先调度,优先级低的进程后调度,在调度一个进程时,其他进程将处于就绪态,而正在被调度的进程应处于运行态。优先级调度算法只是进程调度算法的一种,我们还应依照书本去学习进程调度的其它算法,以便更好地了解进程调度。

经验分享 程序员 微信小程序 职场和发展