考研操作系統常用算法歸納

進程管理

處理器調度

作業調度
  • 先來先服務:按照進入就緒隊列的先後順序分配處理機
  • 短作業優先:就緒隊列中最快完成的作業獲得處理機
  • 優先級調度:就緒隊列中優先級最高的作業獲得處理機(分搶佔式和非搶佔式)
  • 高響應比優先:考慮作業的等待時間和運行時間,高響應比作業獲得處理機。響應比=(作業等待時間+估計運行時間)/估計運行時間
進程調度
  • 先來先服務:同上
  • 短作業優先:同上
  • 優先級調度:同上
  • 時間片輪轉調度:適用於分時系統,就緒隊列的所有進程依次獲得處理機並執行相等的時間(時間片)後進入就緒隊列隊尾
  • 多級反饋隊列調度:綜合時間片輪轉調度和優先級調度,設置多個就緒隊列,優先級依次降低。新進程先進入第一隊列隊尾,如果在一個時間片內未完成,則進入第二個就緒隊列隊尾,依次向下。(就緒隊列優先級越高時間片越短

死鎖

死鎖的避免
  • 銀行家算法:根據已有的表格數據和資源確定是否可以找到一個安全序列,如果進程P獲得資源後能夠運行完,則將P所佔有的資源回收到可用資源中。

內存管理

基礎內存管理

連續分配管理方式
  • 單一連續分配
    原理:將內存分爲兩個區域,一個分配給操作系統。另一個分配給用戶作業。
    缺點:只適用於單用戶、單任務的操作系統,內存中只裝入一道作業,會產生內部碎片

  • 固定分區分配
    原理:將內存分爲多個固定大小的分區(大小可不等,但大小事先確定,運行時不可改變),採用靜態重定位方式將程序裝入內存。
    缺點:不能實現多個進程共享一個內存區,會產生內部碎片

  • 動態分區分配

    • 首次適應(First Fit,FF):每次爲進程分配內存時都從隊首開始找,順着鏈表找到足夠大的空閒分區。
    • 下次適應(Next Fit,NF):又稱循環首次適應,將隊列改成循環隊列,在FF的基礎上每次從上次找到的空閒分區的下一個分區開始找。
    • 最佳適應(Best Fit,BF):將空閒分區按容量遞增的順序排列,每次將滿足空間大小的最小的空閒分區分配給作業,會產生很多碎片空間。
    • 最差適應(Worst Fit,WF):將空閒分區按容量遞減的順序排列,每次將滿足空間大小的最大的空閒分區分配給作業
非連續分配管理方式(離散)
  • 分頁存儲
    原理:將作業地址空間分爲多個大小相等的區域,成爲頁。主存的存儲空間也分爲大小相等的存儲區域,成爲塊。將程序的頁放到任意的塊中,並構建頁表(由頁號和塊號組成,反映頁號和塊號的一一對應關係)。
    注意事項:頁號P=(int)(A/L)頁內位移W=A%L (頁面大小L,頁表長度M,邏輯地址A,物理地址E)
    常規情況下存取一個數據需要訪問兩次內存,引入塊表機構(TLB)後在命中的情況下只訪問一次內存。分頁存儲不會產生外部碎片

  • 分段存儲
    原理:將作業的地址空間分爲若干個邏輯段,每個分段都有自己的名字,都從0開始編址。每一個進程都有一個段表(由段號,段長,該段內存起始地址組成)。分段存儲不會產生內部碎片

  • 段頁式存儲
    原理:在分段存儲的基礎上,將每一段又分爲若干個頁。不會產生外部碎片但會產生內部碎片。

虛擬內存管理

頁面置換算法
  • 最佳置換(Optimal,OPT):每次都淘汰以後不會再使用或以後最遲使用的頁面。由於無法實現,只能作爲衡量置換算法優劣的標準
  • 先進先出(First Input First Output,FIFO):每次淘汰最先進入內存的頁面。
  • 最近最少使用(Least Recently Used,LRU):每次淘汰最長時間沒有被使用過的頁面。需要藉助寄存器組和棧且效率最接近OPT。
  • 時鐘置換(CLOCK):又稱最近未使用(NRU),爲每個頁面設置一個訪問位,當訪問鏈中存在所請求的頁時,該頁訪問位置爲1,指針不變,否則,指針從上次被淘汰的頁面的下一個位置開始循環遍歷,當指針指向的頁面訪問位爲1時,則將其清零,如果訪問位爲0,則淘汰此頁面。
  • 改進型時鐘置換:爲每個頁面添加記錄其是否被更改的修改位,淘汰順序:① 訪問位=0 修改位=0, ② 訪問位=1 修改位=0,③ 訪問位=0 修改位=1,④ 訪問位=1 修改位=1。
  • 最不常用置換(Least Frequently Used,LFU):每次淘汰到當前時間爲止訪問次數最少的頁面。
  • 頁面緩衝算法(Page Buffering Algorithm,PBA):空閒頁面和已修改的頁面會在內存中停留一段時間,爲了減少IO次數,當修改頁達到一定數目後再一起寫入磁盤。

文件管理

磁盤調度算法

  • 先來先服務(First Come First Service):按進程請求訪問磁盤的先後順序進行調度。

  • 最短尋道時間優先(Shortest Seek Time First,SST F):選擇與當前磁頭所在磁道距離最近的請求作爲下一次服務的對象。

  • 掃描/電梯調度(SCAN):服務在磁頭當前移動方向上距離磁頭最近的請求。

  • LOOK調度:在SCAN基礎上,當磁頭運動方向上無請求時立即改變運動方向。

  • 循環掃描(C-SCAN):磁頭移動到最外側磁道時立即返回到最裏磁道,循環掃描。

  • C-LOOK調度:在C-SCAN基礎上,當磁頭運動方向上無請求時立即返回最裏磁道。

    注:無特別說明的話,題目中的SCAN和C-SCAN指的就是LOOK和C-LOOK。

文章參考《2020王道操作系統》和《2020操作系統高分筆記-天勤》
原文地址:https://www.jhxblog.cn/article/?articleid=11

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章