操作系统调度器的种类
进行调度工作的程序叫做调度器。操作系统调度器的种类都有哪些呢?下面小编为大家整理了操作系统调度器的种类,希望能帮到大家!
调度器是操作系统的一个模块,它能够选择将被系统处理的下一个任务,或执行的下一个进程。操作系统可能会提供三种不同类型的调度器:长期调度器、中期调度器和短期调度器。这些名字表明了任务被执行的频率。
进程调度器
进程调度器是操作系统的一部分,决定了何时运行什么进程。它通常能够暂停一个运行中的进程,将它放回到运行队列当中,并运行一个新进程,我们把这样的调度器叫做抢占调度器。否则,它就是协同调度器。
长期调度器
长期调度器,决定了任务或进程是否会被就绪队列(内存中)所接纳。当一个运行程序的尝试被做出后,长期调度器或允许,或是延迟将它作为当前执行的一个进程。因此,这种调度器掌控着能在系统上运行的进程。调度器同时还决定并发的程度:同时执行程序的多少,在I/O密集型和CPU密集型进程之前做出划分。
通常,大多数进程可以分为I/O密集型[2]和CPU密集型。I/O密集型程序将大多数时间都花在了I/O操作而不是运算上,而CPU密集型程序正好相反,将大多数时间花在了运算上,而很少产生I/O操作。选出一个I/O密集型和CPU密集型程序的良好组合,对于长期调度器是非常重要的。否则,假如所有的程序都是CPU密集型的,那么I/O队列将会几乎永远都是空的,这样就会导致一些设备从来没被人用过,系统资源分配就是不均衡的。显然,性能极佳的系统必然是CPU密集型和I/O密集型程序的组合。在现代操作系统中,这被用来保证实时进程能获得足够的CPU时间来完成任务。
长期调度对大型系统,例如批处理系统、计算机集群、超级计算机和渲染场来说同样重要。例如,在并发系统中,为了避免交互的多个进程,把时间都花在等待对方而产生阻塞,通常是需要进行协同调度的。在这种情况下,处理操作系统底层的调度器之外,还需要符合要求的额外调度程序来实现必要的功能。
中期调度器
中期调度器临时将进程从内存中去除,放入第二储存设备(如硬盘)中,或亦而反之。这通常被称为“换出”和“换入”(同时也被错误叫做“分页入”和“分页出”)。中期调度器可能会将那些一直不活跃的进程,优先级低的进程,频繁产生页错误的进程,或者占用大量内存的进程放入交换区,为其它程序释放内存。当系统内存充足时,或者程序不再处于阻塞状态时,调度器又会将内存重新放入内存中。
短期调度器
短期调度器(也就是CPU调度器)决定了在一个时钟中断、I/O中断、系统调用其它种类的'信号之后,应该执行(分配CPU)给哪些内存中的进程。可见,短期调度器作出决定的频率比长期或中期调度器更加频繁 —— 每隔一段非常短的固定时间,调度器就将做出一次决定。这种调度器可以是抢占式的,能够强行把一个在CPU运行中的程序中断,然后分配给其它进程;也可以是非抢占式的,这类调度器无法强行把进程从CPU上中断。
抢占式调度器的功能需要一个运行在内核态,能被中断处理程序捕获的可编程定时器才能实现。
调度规则
调度规则就是在同时占用资源的多方之间进行资源分配的算法。在路由器、操作系统、硬盘、打印机,大多数嵌入式系统等设备中,都能看到调度规则的应用。
调度算法的主要目标,是使资源饥饿最小化,并保证使用资源多方的公平性。调度器需要处理在大量请求下如何分配资源的难题。调度算法种类很多,在这一章,将会介绍几种常见算法。
在包交换的计算机网络和其它统计多路复用领域,需要一个合适的调度算法而不是一个先到先得的数据包队列。
-
Win8操作系统如何提升安全性能
Windows8将包括更多的安全功能,为用户提供更好的安全防护,保护终端用户免受来自网络的威胁。微软强化了WindowsDefender安全方案,保护用户远离所有类型的恶意软件,包括病毒、蠕虫、僵尸工具和rootkits。Windows8将通过WindowsUpdate提供恶意软件签名,WindowsDefende...
-
四则XP系统使用技巧
XP操作系统可以说是得到了许多用户的支持,是一个功能强大,界面美观的操作系统,但是其中也有许多技巧可以简化我们的操作或者提高系统性能。只要我们在使用过程中稍加留心就会发现。一、快速关机对于快速关机,在网上也有许多方法,同时爱好是因人而异的,这里也不妨介绍...
-
使用python实现Linux异步epoll的代码
代码如下:importsocketimportselectif__name__=="__main__":s=et(_INET,_STREAM)ockopt(_SOCKET,_REUSEADDR,1)(("",20123))en(10)epoll=l()printno()printLIN|LETster(no(),LIN|LET)while1:epoll_list=()forfd,eventsinepoll_list:printfdprinteventsiffd==no...
-
嵌入式操作系统的区别
嵌入式操作系统是一种支持嵌入式系统应用的操作系统软件,它是嵌入式系统的重要组成部分。嵌入时操作系统具有通用操作系统的基本特点,能够有效管理复杂的系统资源,并且把硬件虚拟化。一起来看看嵌入式操作系统的区别有哪些!从应用角度可分为通用型嵌入式操作系统...