學習記錄9

關於操作系統篇

頁面置換算法  

抖動:一個進程在運行中把大部分時間都花費在頁面置換工作上   
一、最佳置換算法和先進先出置換算法  
(一)最佳置換算法  
要知道未來需要哪頁.實際上不可能  
(二)先進先出頁面置換算法  
剔走最老的頁  
  
二、最近最久未使用和最少使用置換算法  
(一)最近最久未使用  
看最近的n個,最老的踢走  
(二)LRU置換算法的硬件支持  
寄存器: 8位寄存器.R7~R0.R值最小的頁被踢出  
棧:最新訪問的是棧頂  
(三)最少使用置換算法  
現實使用這個多.一旦訪問就在最高位置一  
  
三、Clock置換算法  
(一)簡單的CLOCK置換算法  
也叫最近未使用算法.就是有個訪問位,1→0→換出  
(二)改進型CLOCK置換算法  
四類:A M = 0 0 ~ 1 1  
第一步:先找 0 0  
第二步:再找 0 1,並置所有頁0 X  
第三步:再找0 0,最後找0 1,一定找到  
優點:減少I/O  
缺點:增加系統開銷  
  
四、頁面緩衝算法  
(一)影響頁面換進換出效率的若干因素  
頁面置換算法、寫回磁盤的頻率、讀入內存的頻率  
(二)頁面緩衝算法PBA  
顯著降低頁面換進、換出頻率,減少頁面換進換出的開銷  
換入換出的開銷大幅減少,才能使用簡單的置換策略,如FIFO  
要在內存中設置:空閒頁面鏈表、修改頁面鏈表  
  
五、訪問內存的有效時間  
如果考慮快表的命中率和缺頁率:EAT = .......  
如果僅考慮缺頁率:EAT =   
  
④“抖動”與工作集  
一、多道程序度與“抖動”  
(一)現象  
先增後減  
(二)原因  
進程太多,物理塊不夠分  
  
二、工作集  
(一)工作集的基本概念  
如果可以預知,就可以先調入內存,大大降低缺頁率,從而顯著提高處理機利用率  
(二)工作集的定義  
引用的集合,類似FIFO  
  
三、“抖動”的預防方法  
(一)採取局部置換策略  
“抖動”影響較小  
(二)把工作集算法融入到處理機調度中  
每個進程在內存的駐留頁面是否足夠多,如果是就調入新作業、否則增加新物理塊  
(三)利用L=S準則調節缺頁率  
缺頁之間的平均時間= 平均缺頁服務時間  
(四)選擇暫停的進程  
先暫停優先級最低的進程、在選擇並不重要,但較大的進程  
  
⑤請求分段存儲管理方式  
其實也類似於分頁,要硬件和軟件支持  
一、請求分段中的硬件支持  
(一)請求段表機制  
段表項:段名、段長、段基址、存取方式、訪問字段A、修改位M、存在位P、增補位、外存始址  
A、M:改進型CLOCK置換算法  
P:本段是否調入內存  
增補位:看是否做過動態增長  
(二)缺段中斷機制 (圖5-12)  
萬一虛段S不在內存中,就阻塞請求進程。如果沒有空閒區,就要拼接空閒區或者淘汰實段以形成空閒區  
之後讀入段S,修改段表及內存空區鏈  
(三)地址變換機構  
就是一個地址變換機構  
  
二、分段的共享和保護  
(一)共享段表  
共享進程計數count、存取控制字段、段號  
(二)共享段的分配與回收  
共享段的分配、共享段的回收  
(三)分段保護  
越界檢查、存取控制檢查、環保護機構  
  
第六章 輸入輸出系統  
①I/O系統的功能、模型和接口  
一、I/O系統的基本功能  
(一)隱藏物理設備的細節  
(二)與設備的無關性  
自動安裝並尋找驅動程序,即插即用  
(三)提高處理機和I/O設備的利用率  
讓處理機和I/O設備並行操作  
(四)對I/O設備進行控制  
這是驅動程序的功能  
(五)確保對設備的正確共享  
獨佔設備:打印機、磁帶機  
共享設備:磁盤  
(六)錯誤處理  
低級能夠解決就不向高級報告,請求高級軟件解決  
  
二、I/O系統的層次結構和模型  
(一)I/O軟件的層次結構  
用戶層I/O軟件  
設備獨立性軟件:映射、保護、分塊、緩衝、分配  
設備驅動程序:設置設備寄存器、檢查狀態  
中斷處理程序  
(二)I/O系統中各種模塊之間的層次視圖  
I/O系統上下接口(圖6-2)  
I/O系統的分層:中斷處理程序→設備驅動程序→設備獨立性軟件  
  
三、I/O系統接口  
(一)塊設備接口  
塊設備、隱藏磁盤二維結構、抽象命令映射爲低層操作  
(二)流設備接口(Unix的)  
字符設備:效率低、不可尋址  
get和put操作:有緩衝區  
in-control指令:互斥方式實現共享  
(三)網絡通信接口  
  
②I/O設備和設備控制器  
一、I/O設備  
(一)I/O設備的類型  
按使用特性:存儲設備、I/O設備(輸入輸出交互的)  
按傳輸速率:低速、中速、高速  
(二)設備與控制器之間的接口  
接口:數據信號線、控制信號線、狀態信號線  
  
二、設備控制器  
(一)設備控制器的基本功能  
接收和識別命令、數據交換、標識和報告設備的狀態、數據緩衝區、差錯控制  
(二)設備控制器的組成  
設備控制器與處理機的接口、設備控制器與設備的接口、I/O邏輯  
  
三、內存映像I/O  
(一)利用特定的I/O指令  
缺點:訪問內存和訪問設備要兩種不同的指令  
(二)內存映像I/O  
就是k爲界限,0≤k≤n-1,就是內存地址;k≥n,就是寄存器地址。統一了對內存和對控制器的訪問方法  
  
四、I/O通道  
(一)I/O通道設備的引入  
這是一種特殊的處理機,但只侷限於I/O相關的指令、而且沒有自己的內存  
(二)通道類型  
字節多路通道:一個大水喉,多條小水管;一個換頭快,一個速率慢  
數組選擇通道:利用率低  
數組多路通道:甚至可以並行操作  
(三)“瓶頸”問題  
增加通路即可解決  
  
③中斷機構和中斷處理程序  
一、中斷簡介  
(一)中斷和陷入  
中斷:由外部設備引起,暫停當前程序,執行中斷處理程序  
陷入:CPU內部事件引起的,多是出錯故障  
(二)中斷向量表和中斷優先級  
中斷向量表:asm有學  
中斷優先級:現實中有多箇中斷信號源,要規定不同優先級  
(三)對多中斷源的處理方式  
屏蔽中斷:順序執行。優點簡單;缺點無視實時中斷請求  
嵌套中斷:有個優先級  
  
二、中斷處理程序  
測定是否有未響應中斷信號;  
保護被中斷進程的CPU環境;  
轉入相應設備處理程序;  
中斷處理;  
恢復CPU現場並退出中斷  
  
④設備驅動程序  
一、設備驅動程序概述  
(一)設備驅動程序的功能  
接收命令和參數,並轉換爲低層操作序列  
檢查I/O合法性,瞭解I/O工作狀態,傳遞I/O設備操作有關參數,設置設備工作方式  
及時響應設備控制器發來的中斷請求,並根據中斷類型,調用響應中斷處理程序  
(二)設備驅動程序的特點  
抽象的I/O請求轉換成具體的I/O操作,反映給I/O進程  
和硬件特性緊密相關,終端驅動程序可以只有一個  
常用控制方式:中斷驅動、DMA  
一部分必須用彙編語言寫,很多驅動程序基本部分已經固化在ROM  
允許可重入  
(三)設備處理方式  
一類設備一個進程  
一個I/O進程負責各類設備的I/O操作  
只爲各類設備設置相應的設備驅動程序,供用戶或系統進程調用(目前用得最多)  
  
二、設備驅動程序的處理過程  
(一)將抽象要求轉換爲具體要求  
(二)對服務請求進行校驗  
譬如要求打印機輸入數據  
(三)檢查設備的狀態  
檢測寄存器中的不同位,瞭解設備的狀態  
(四)傳送必要參數  
波特率、奇偶校驗等等參數  
(五)啓動I/O設備   
瞭解數據是否到達  
  
三、對I/O設備的控制方式  
(一)使用輪詢的可編程I/O方式  
無限等待,好浪費CPU  
(二)使用中斷的可編程I/O方式  
百倍提高CPU利用率  
(三)直接存儲器訪問方式  
至少傳送一個數據塊,DMA方式提高CPU和I/O之間的並行程度  
(四)I/O通道控制方式  
使用通道程序完成CPU指定的I/O任務  
  
⑤與設備無關的I/O軟件  
一、與設備無關軟件的基本概念  
(一)以物理設備名使用設備  
以前應用程序與物理設備直接相關  
(二)引入了邏輯設備名  
通過更換邏輯設備表即可改變顯示終端  
(三)邏輯設備名稱到物理設備名稱的轉換  
要搞一張邏輯設備表  
  
二、與設備無關的軟件  
(一)設備驅動程序的統一接口  
要有統一接口,同時抽象設備名要映射到適當的驅動程序上  
(二)緩衝管理  
設置緩衝區,緩和CPU和I/O設備之間的速度矛盾、提高CPU利用率  
(三)差錯控制  
暫時性錯誤:只有連續多次出錯才報告上層,否則由設備驅動程序自己處理  
持久性錯誤:要查清發生錯誤的原因,避免以後再發生錯誤  
(四)對獨立設備的分配與回收  
獨佔設備要先申請  
(五)獨立於設備的邏輯數據塊  
  
注:與設備無關軟件功能:設備驅動程序的統一接口、緩衝、錯誤報告、分配與釋放專用設備、提高與設備無關的塊大小  
  
三、設備分配  
(一)設備分配中的數據結構  
系統設備表SDT→設備控制表DCT:類型、標識符、狀態、設備隊列隊首指針、重複執行次數、指向控制器表的指針→控制其控制表COCT→通道控制表CHCT  
(二)設備分配時應考慮的因素  
設備固有屬性:獨佔、共享、虛擬設備  
設備分配算法:FCFS、優先級高優先  
安全性:安全、不安全  
(三)獨佔設備的分配程序  
獨佔設備:分配設備、控制器、通道  
如果要設備無關地找設備,就要從SDT找DCT,再逐個測試安全性  
  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章