第6章 優(yōu)先級隊列

雖然通常都是將發(fā)送給打印機的作業(yè)放進隊列里,但這并不是最好的做法。比如

  • 作業(yè)A可能非常重要,期望的是只要有打印機可用,就立馬運行作業(yè)A。
  • 當打印機可用時,如果有若干個1頁的作業(yè),和一個100頁的作業(yè)。比較合理的做法是讓最長作業(yè)最后運行,即使該作業(yè)不是最后提交的。

在一個多用戶環(huán)境中,操作系統(tǒng)調(diào)度器必須從多個進程中選擇一個來運行。通常,一個進程只允許運行一段固定的時間。假如調(diào)度算法使用的是隊列,實行的策略是作業(yè)最初是被放在隊列的末尾;調(diào)度器會重復地取隊列的第一個作業(yè)來運行,直到要么該作業(yè)完成了,要么時間耗盡了,該作業(yè)還沒完成,就將它放到隊列的末尾。這種策略通常是不合適的,因為由于要等待運行,非常短的作業(yè)似乎要花費很長時間。通常,短時作業(yè)應該盡可能快地完成,優(yōu)先級要比正在運行的某些作業(yè)高。而且,有些作業(yè)雖不是短時作業(yè),但也應該有優(yōu)先級。
這類特殊的應用似乎需要一種特殊的隊列:優(yōu)先級隊列。
在本章,我們將討論:

  • 抽象數(shù)據(jù)類型優(yōu)先級隊列的一種有效實現(xiàn);
  • 優(yōu)先級隊列的幾種用法;
  • 優(yōu)先級隊列幾種高級實現(xiàn);
  • 本章中將看到的數(shù)據(jù)結(jié)構(gòu)是計算科學中最優(yōu)雅的數(shù)據(jù)結(jié)構(gòu)之一;
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容