进程调度:最大(静态)优先数优先算法+简单轮转法代码设计

    技术2024-09-28  55

    原题:实验一 进程调度-代码设计并调试实验

    1.编写并调试一个模拟的进程调度程序,采用“最高优先数优先”调度算法对五个进程进行调度。

    “最高优先数优先”调度算法的基本思想是把CPU分配给就绪队列中优先数最高的进程。

    静态优先数是在创建进程时确定的,并在整个进程运行期间不再改变。

    动态优先数是指进程的优先数在创建进程时可以给定一个初始值,并且可以按一定原则修改优先数。例如:在进程获得一次CPU后就将其优先数减少1。或者,进程等待的时间超过某一时限时增加其优先数的值,等等。

    我选择使用静态优先数实现最大优先数优先算法,编写代码如下:

    #include<stdio.h> #include<stdlib.h> #define getpcb(type) (type*)malloc(sizeof(type)) struct pcb { /*定义进程控制块PCB*/ char name[10];//进程名或进程标识符 char state;//进程状态:w即wait,R即Running int super;//进程优先数 int ntime;//运行时间 int rtime;//已消耗处理机时间 struct pcb* link;//指向就绪队列下一个进程的PCB }*ready=NULL,*p;//指向队首、当前进程PCB typedef struct pcb PCB;
    Processed: 0.011, SQL: 9