For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
我们在前几期的文章中给大家简单介绍了进程间的通信等一些编程技术等内容,而本文我们就再来了解一下,进程调度算法都有哪些类型。
调度算法的意义
程序运行时,通常会有多个进程或线程同时竞争CPU,但是如果只有一个CPU可用,那就必须选择下一个要运行的进程。在操作系统中完成选择工作的一部分叫做调度程序。
但是进程也有区分,
CPU密集型:大多时间在计算
IO密集型:大多时间在IO等待切换(由于现在CPU的性能提高,主要是IO密集型)
调度算法的目的就是为了保持系统所有部分尽可能忙碌。
主要有四个指标衡量调度算法的好坏,吞吐量、周转时间、CPU利用率、响应时间。
并且调度程序需要考虑到CPU利用率,因为进程的切换比较高,用户态必须切换到内核态,然后保存当前进程的状态,包括在进程表中存储寄存器值以便以后重新装载。
调度算法分类:批处理、交互式、实时
批处理系统的调度
先来先服务
First-comefirst-served,按照进程请求的顺序使用CPU。相当于有一个就绪进程的单一队列。
优点:易于理解便于在程序中运用。
缺点:如果某个进程过大,会导致后面进程饥饿。
短作业优先:
缺点:对长进程不友好。
短剩余时间优先
是短作业优先的抢占式版本,总是选择剩余运行时间短的那个进程运行,需要对整个事件同当前进程的剩余时间比较,如果右小于当前进程的,当前进程就会被挂起,运行新的进程。
交互式系统的调度
轮转调度
每个进程都会被分一个时间段,即时间片,允许该进程在该时间片内运行。调度程序需要维护一张可运行进程列表。:
缺点:时间片设置的过长会导致短的交互请求的响应时间变长,过短会导致过多进程切换降低CPU效率。
优先级调度
优先级可以是静态赋予也可以是动态赋予。比如将优先级设为该进程在上一时间片所占部分的倒数。
缺点:可能会导致低优先级进程产生饥饿现象。需要偶尔堆优先级进行调整。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。