参考资料 :小林Coding、阿秀、代码随想录
一、进程调度
当⼀个进程的状态发⽣改变时,操作系统需要考虑是否要换⼀个进程执行,这就需要⽤到“进程调度算法”。
1. 调度目标
不同的调度算法具有不同的特性,因为使用以下标准比较处理机调度算法的性能:
- CPU利⽤率:CPU是计算机系统中最重要和昂贵的资源之⼀,应该使CPU保持“忙碌”状态
- 系统吞吐量:单位时间内CPU完成作业的数量。
- 周转时间:作业从提交到完成所需要的时间,是作业等待、在就绪队列中排队、在处理机上运⾏及输⼊输出操作所花费时间的总和。
2. 进程调度方式
- 非抢占调度方式:当⼀个进程正在处理中,即使有更为重要的进程进入到就绪队列中,仍然让正在执行的进程继续执行。
- 抢占调度方式:当⼀个进程正在处理中,如果有更为重要的进程进入到就绪队列中,则允许调度程序根据某种原则去暂停正在执行的进程,将处理机分配给更为重要或紧迫的进程
3. 调度算法
3.1 先来先服务调度算法(First Come First Severd, FCFS)
每次从就绪队列选择最先进入队列的进程,然后一直运行,直到进程退出或被阻塞,才会继续从队列中选择第一个进程接着运行。
非抢占式的调度算法,按照请求的顺序进行调度。
有利于长作业,但不利于短作业,因为短作业必须一直等待前面的长作业执行完毕才能执行,而长作业又需要执行很长时间,造成了短作业等待时间过长。适用于 CPU 繁忙型作业的系统,而不适用于 I/O 繁忙型作业的系统。
3.2 最短作业优先调度算法 (shortest job first, SJF)
优先选择运行时间最短的进程来运行,这有助于提高系统的吞吐量。
&

本文详细介绍了进程调度算法(如FCFS,SJF,HRRN,时间片轮转,HPF,SRTN)及其目标,包括CPU利用率、系统吞吐量和周转时间。同时探讨了进程同步概念,如临界区、同步原则、信号量和管程的使用。
最低0.47元/天 解锁文章
864

被折叠的 条评论
为什么被折叠?



