- 相關推薦
操作系統調度器的種類
進行調度工作的程序叫做調度器。操作系統調度器的種類都有哪些呢?下面小編為大家整理了操作系統調度器的種類,希望能幫到大家!
調度器是操作系統的一個模塊,它能夠選擇將被系統處理的下一個任務,或執行的下一個進程。操作系統可能會提供三種不同類型的調度器:長期調度器、中期調度器和短期調度器。這些名字表明了任務被執行的頻率。
進程調度器
進程調度器是操作系統的一部分,決定了何時運行什么進程。它通常能夠暫停一個運行中的進程,將它放回到運行隊列當中,并運行一個新進程,我們把這樣的調度器叫做搶占調度器。否則,它就是協同調度器。
長期調度器
長期調度器,決定了任務或進程是否會被就緒隊列(內存中)所接納。當一個運行程序的嘗試被做出后,長期調度器或允許,或是延遲將它作為當前執行的一個進程。因此,這種調度器掌控著能在系統上運行的進程。調度器同時還決定并發的程度:同時執行程序的多少,在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上中斷。
搶占式調度器的功能需要一個運行在內核態,能被中斷處理程序捕獲的可編程定時器才能實現。
調度規則
調度規則就是在同時占用資源的多方之間進行資源分配的算法。在路由器、操作系統、硬盤、打印機,大多數嵌入式系統等設備中,都能看到調度規則的應用。
調度算法的主要目標,是使資源饑餓最小化,并保證使用資源多方的公平性。調度器需要處理在大量請求下如何分配資源的難題。調度算法種類很多,在這一章,將會介紹幾種常見算法。
在包交換的計算機網絡和其它統計多路復用領域,需要一個合適的調度算法而不是一個先到先得的數據包隊列。
【操作系統調度器的種類】相關文章:
操作系統的種類07-07
Windows操作系統種類詳解08-10
電腦操作系統有哪些種類08-16
服務器操作系統有哪些?09-18
服務器操作系統有哪些?08-14
如何配置Linux操作系統時間服務器10-15
Linux操作系統web服務器簡單教程11-03
LINUX操作系統01-22
國產的操作系統10-27