Hi~朋友,关注置顶防止错过消息
摘要
线程调度
进程调度是指在进程之间选择一个进程将其送上CPU执行,通常这个是由操作系统中的调度程序执行。
调度原则
总上所述,调度程序主要从以下几个系统参数来考虑:
调度算法
如果硬件提供某个频率的时钟中断,根据如何处理时钟中断调度算法大致分为两类:
先来先服务(FCFS)算法
先来后到,每次从就绪队列中选择一个进程运行,直到进程阻塞或退出。FCFS适用于CPU繁忙性作业的系统,不适用于I/O繁忙性。
最短作业优先调度(SJF)算法
优先选择运行时间最短的进程来运行,有利于提高系统的吞吐量。
SJF算法不利于长作业,如果就绪队列中短作业过多,会导致长作业具有较高的延迟。
高响应比优先(HRRN)调度算法
主要是权衡了短作业和长作业,每次进行调度时,先计算响应比,然后把响应比最高的进程运行。
响应比=(等待时间+要求服务时间)/ 要求服务时间
时间片轮转(RR)调度算法
每一个进程被分给一个时间段,称之为时间片,即允许该进程在该时间段中运行。
在该算法中,时间片的长度是一个比较关键的点:
一般来说,时间片的设置应为略大于一次交互的响应时间,20ms~50ms是一个折中的值。
最高优先级(HPF)调度算法
从就绪队列中选择最高优先级的进程运行。
进程的优先级分为静态优先级和动态优先级:
该算法也有两种处理高优先级的方法,非抢占式和抢占式:
优先级低的进程可能一直无法运行。
多级反馈队列(MFQ)调度算法
该算法是时间片轮转算法和最高优先级算法的结合。
具体的工作流程如下:
这种算法对于短作业来说很可能就在第一级队列就被处理完成,对于长作业来说,虽然有可能因为在第一级队列无法执行完成而被被移入到第二级队列运行(等待时间变长),但是获得时间片也会变长(运行时间变长),所以该算法很好的兼顾了长短作业,同时有较好的响应时间。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有