操作系统进程调度算法

您所在的位置:网站首页 进程调度原则 操作系统进程调度算法

操作系统进程调度算法

2024-07-11 01:52| 来源: 网络整理| 查看: 265

一、先来先服务调度算法

(1)算法内容:先来先服务调度算法是一种最简单的调度算法,可以应用于高级调度也可以运用于低级调度。高级调度时,FCFS调度算法按照作业进入后备作业队列的先后顺序选择作业进入内存,即先进入后备作业队列的作业被优先选择进入内存,然后为选中的作业创建进程并分配该作业所需资源。低级调度时,FCFS调度算法每次从内存的进程/线程就绪队列中选择一个最先进入的进程/线程,然后由进程/线程调度程序将CPU分配给它并使其运行。

(2)算法要求:每个进程由一个进程控制快(PCB)表示。进程控制块可以包含如下信息:进程名,到达时间,运行时间,开始时间,完成时间,等待时间,周转时间,代权周转时间等。先进入就绪队列的进程,先分配处理机运行。一旦一个进程占有了处理机,它就一直运行下去,直到该进程完成工作或者因为等待某事件发生而不能继续运行时才释放处理机。

(3)设计思想:该算法按照进程到达时间先后顺序执行,先到达的先执行。

(4)算法分析:先定义一个PCB结构体;

定义input()输入函数,输入进程号、到达时间、运行时间;

定义output()输出函数,输出每个进程块的各种时间;

定义rank()排序函数,将进程按照到达时间进行排序;

定义FCFS()先来先服务算法函数,计算各种时间;

定义main()主函数,实现先来先服务功能;

(5)核心代码:

#include double atime; //平均周转时间 double awtime; //平均带权周转时间 struct PCB //声明结构体类型PCB { char name[20]; //进程号 int arrivaltime; //到达时间 int runtime; //运行时间 int starttime; //开始时间 int finishtime; //完成时间 int waitingtime; //等待时间 int cycletime; //周转时间 double wctime; //带权周转时间 }; struct PCB pcb[100]; /*输入函数*/ int input(int n) { printf("请依次输入进程号、到达时间、运行时间:\n"); for(int i=0;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3