操作系統中的優先級思想

在學習操作系統時,每一章幾乎都會存在優先級這個概念

,例如:管態和用戶態,進程調度策略,內存調度策略,外存調度策略,I/O設備調度策略等。這些策略都圍繞著操作系統的資源調度優先級的概念而展開的。而這產生的原因到底是什麼呢?

排隊

乾貨|操作系統中的優先級思想

生活當中,在進行購物時,看病掛號,銀行取錢時往往會產生一種現象:排隊。排隊這種方式維護了大部分社會活動的應有秩序,使得整個社會活動井然有序的執行,但是產生排隊的根本原因是什麼?自然是商品不足,人力不足,物資不足等現實原因。試問,如果商品足夠豐富,買家必然無需排隊先到先得式的搶購商品;如果銀行客服充足,客戶也不必排隊進行交易;醫院資源豐富,用戶也沒必要進行排隊掛號。也就是在資源足夠豐富並且資源都一致高品質的情況下,每一位用戶在發出需求之後,都可以立即接受到一對一的服務,這樣的情況下必然不會產生排隊。所以從客觀角度來說是資源不足導致排隊這一現象的現實原因。

先到先得

既然是排隊,必定會產生被服務的先後順序,即意味著優先級的概念,一般來說,排於前列的客戶優先級更高,排於後者的優先級更低,而前後順序在日常生活中大多數依賴根據是時間順序,也就是先到先得。先到先得是一種優秀的資源分配方式,是基於時間成本的公平調度策略,但是

先到先得這種方式就可以滿足所有情況嗎

搶佔式調度

乾貨|操作系統中的優先級思想

答案顯然是否定的。在很多情況下,總會有優先級特別高的事件出現,在醫院中有急診病例,交通道路中有應急車道等,這些情況發生時,事件優先級會提升到“極高”,並且可能直接搶佔正在使用相關資源的用戶,這就是搶佔式調度,搶佔式調度直接回將現有的資源讓給另一位用戶給使用,被搶佔的用戶只能用其他的方式重新排隊。

非搶佔式排隊

如果所有排隊優先級改變時,都必須使用搶佔式調度的方式,排隊將會變成一個引發騷亂的事件,比如當前正在手術的病人,不可能說新的急診病人來到醫院,就必須把當前病人擠下手術檯,這是十分可怕的。因此非搶佔式排隊應運而生,當新的急診病人來到時,只能把其放置在正在手術的病人的後續,保證能最快的幫助該病人治療病情,優先級拉到最高但是不搶佔已有的位置。類似VIP客戶也利用相關方式,當然某些情況VIP權利也存在搶佔式。

目的

生活中的排隊方式除了按照先來先得,應急提高優先級的方式之外,往往有更多更好的策略,但是都是在相對公平的情況下保證

能以最快的時間和最少的資源完成相關事件為目的。

總結

操作系統中對CPU,內存,外存,設備的調度,如何讓以上資源得到最好最快的使用,讓這些資源按照自己的要求在排隊序列裡面找到相應的位置,這就是操作系統設定優先級主要原因。

那操作系統在進行優先級設定的時候

到底都有些什麼策略呢?

未完待續


分享到:


相關文章: