學習記錄之操作系統終章 概念篇

邏輯設備名到物理設備名映射的實現  
(一)邏輯設備表LUT  
邏輯設備名、物理設備名、設備驅動程序的入口地址  
(二)邏輯設備表設置問題  
整個系統一張LUT  
或每個用戶一張LUT  
  
⑥用戶層的I/O軟件  
一、系統調用與庫函數  
(一)系統調用  
使用系統調用I/O設備,用戶態→內核態→用戶態  
(二)庫函數  
庫函數與調用程序接在一起  
  
二、假脫機系統  
(一)假脫機技術  
利用專門的外圍控制機,先將低速I/O設備上的設局傳送到高速磁盤上,或相反  
(二)SPOOLing的組成  
輸入井和輸出井、輸入緩衝區和輸出緩衝區、輸入進程和輸出進程、井管理程序  
(三)SPOOLing系統的特點  
提高I/O速度、將獨佔設備改造爲共享設備、實現虛擬設備功能  
(四)假脫機打印機系統  
磁盤緩衝區、打印緩衝區、假脫機管理進程和假脫機打印進程  
(五)守護進程  
有個假脫機目錄,由守望進程按目錄文件依次完成各個進程設備的請求,就可以將一個獨佔設備改爲多個進程共享設備  
  
⑦緩衝區管理  
一、緩衝的引入  
(一)緩和CPU與I/O設備間速度不匹配的矛盾  
速度有差距,都可以設置緩衝區  
(二)減少對CPU的中斷頻率  
(三)解決數據粒度不匹配的問題  
生產者生產的數量和消費者消費的數量差距  
(四)提高CPU和I/O設備之間的並行性  
CPU和打印機可以並行工作呢  
  
二、單緩衝區和雙緩衝區  
(一)單緩衝區  
緩衝區也會阻塞  
(二)雙緩衝區  
CPU執行第一行中的命令時,用戶可以繼續向第二緩衝區輸入下一行數據  
如果兩臺電腦只設置但緩衝,就要再設置一個接收緩衝區,一個發送緩衝區  
  
三、環形緩衝區  
(一)環形緩衝區的組成  
空區R,裝滿的區G,正在使用的現行工作緩衝區C;另外還有多個指針  
(二)環形緩衝區的使用  
Getbuf和Releasebuf  
(三)進程之間的同步問題  
Nexti趕上Nextg:輸入速度>處理速度  
Nextg趕上Nexti:處理速度>輸入速度  
  
四、緩衝池  
(一)緩衝池的組成  
專爲生產者-消費者設置的,包含一個管理數據結構和一組操作函數,管理多個緩衝區  
包括空白緩衝隊列、輸入隊列、輸出隊列  
(二)Getbuf過程和Putbuf過程  
設置MS(type)互斥訪問緩衝池隊列和RS(type)進程同步使用緩衝區  
(三)緩衝區的工作方式  
收容操作、提取輸入、收容輸出、提取輸出  
  
⑧磁盤存儲器的性能和調度  
一、磁盤性能簡述  
(一)數據的組織和格式  
數據組織和格式:磁盤-雙面可存儲盤片(存儲面)-扇區-磁道(柱面)  
(二)磁盤的類型  
固定頭磁盤、移動頭磁盤  
(三)磁盤訪問時間  
  
二、早期的磁盤調度算法  
(一)先來先服務  
就是先來的先找,很公平很簡單,但平均尋道好長  
(二)SSTF最短尋道時間優先  
選擇一個與磁頭距離最近的磁道  
  
三、基於掃描的磁盤調度算法  
(一)掃描算法SCAN  
來回  
(二)循環掃描算法CSCAN  
單程  
(三)NStepSCAN和FSCAN調度算法  
N步掃描算法:將磁盤請求隊列分成若干長度爲N的子隊列,再用FCFS依次處理這些子隊列  
FSCAN算法:只分兩個隊列,一個現在要掃描的,一個是掃描時新冒出來的  
  
第七章 文件管理  
①文件和文件系統  
一、數據項、記錄和文件  
(一)數據項  
基本數據項:描述以對象某種屬性的字符集,如學號、姓名、年齡這些不能再細分的  
組合數據項:若干個基本數據項組成的,就是還可以細分的  
(二)記錄  
描述一個對象在某方面的屬性,注意要有關鍵字key,方便查找  
(三)文件  
多條記錄組成文件  
文件屬性:類型、長度、物理位置、建立時間(即最後一次修改時間)  
  
二、文件名和類型  
(一)文件名和拓展名  
沒什麼好說的,都懂  
(二)文件類型  
按用途分:系統文件、用戶文件、庫文件  
按文件數據形式:源文件、目標文件、可執行文件  
按存取控制屬性:只執行文件、只讀文件、讀寫文件  
按組織形式和處理方式分類:普通文件、目錄文件、特殊文件  
  
三、文件系統的層次結構  
(一)對象及其屬性  
管理對象:文件、目錄、磁盤存儲空間  
(二)對對象操縱和管理的軟件集合  
I/O控制層、基本文件系統層、基本I/O管理程序、邏輯文件系統  
(三)文件系統的接口  
命令接口、程序接口  
  
四、文件操作  
(一)最基本的文件操作  
創建、刪除、讀、寫、設置讀寫位置  
(二) 文件的“打開”和“關閉”操作  
(三)其他文件操作  
 設置和獲得文件的屬性、查詢文件狀態  
有關目錄的,就是創建、刪除、改變當前目錄等  
  
②文件的邏輯結構  
一、文件邏輯結構的類型  
有結構文件:記錄式文件  
無結構文件:流式文件  
(一)按文件是否有結構分類  
有結構文件(如數據庫):定長記錄、變長記錄  
無結構文件(txt):源程序、可執行文件  
(二)按文件的組織方式分類  
順序文件:可以定長可以變長,一直按順序下去(如犯人的記錄)  
索引文件:加張索引表  
索引順序文件:分組,組內是順序,組頭有索引  
  
二、順序文件  
(一)順序文件的排列方式  
串結構:要從頭開始找  
順序結構:有個關鍵字  
(二)順序文件的優缺點  
最高效、但交互應用中效率好差、而且增加刪除一個記錄困難  
所以要配置一個運行記錄文件,按時合併  
  
三、記錄尋址  
(一)隱式尋址方式  
一個一個讀,讀了(n-1)個才找到n  
(二)顯式尋址方式  
定長就方便,直接乘索引號即可  
變長就要加上Li,表示一段記錄的長度  
或者利用關鍵字查找  
  
四、索引文件  
(一)按關鍵字建立索引  
索引文件三要素:索引號、長度、指針  
多個索引表的索引文件:從不同屬性查找同一對象  
  
五、索引順序文件  
(一)索引順序文件的特徵  
引入文件索引表,可以實現對索引順序文件的隨機訪問;  
增加溢出文件,可以記錄新增加、刪除和修改的記錄  
(二)一級索引順序文件  
分組,組首進入索引順序文件  
(三)兩級索引順序文件  
索引順序表做組  
  
六、直接文件和哈希文件  
(一)直接文件  
關鍵字本身就決定記錄的物理地址,所以可以直接查找,有鍵值轉換  
(二)哈希文件  
A = H(K),通常是指向某一目錄表相應表目的指針  
  
③文件目錄  
要求:  
實現“按名存取”  
提高對目錄的檢索速度  
文件共享  
允許文件重名  
一、文件控制塊和索引結點  
(一)文件控制塊FCB  
包含三類信息:基本信息、存取控制信息、使用信息  
基本信息:文件名、文件物理位置、文件邏輯結構、文件物理結構  
存取控制信息:各類人的存取權限  
使用信息類:建立時間、最近修改時間、當前使用信息  
(二)索引結點  
引入:怕文件目錄太大,只用文件名,輕量級文件目錄  
磁盤索引結點:文件主標識符、文件類型、文件存取權限、文件物理地址、文件長度、文件連接計數、文件存取時間  
內存索引結點:索引結點編號、狀態、訪問計數、文件所屬文件系統的邏輯設備號、鏈接指針  
  
二、簡單的文件目錄  
(一)單級文件目錄  
整個文件系統只有,一張目錄表,目錄項有:文件名、文件擴展名、文件長度、文件類型、文件物理地址和其他屬性  
每次創建都要搜索有沒有相同的文件名  
優點是簡單,但只實現了“按名存取”,其他三個要求沒有實現  
(二)兩級文件目錄  
MFD→UFD  
會有隔離,這個結構可以有效將多個用戶隔開,在各個用戶完全無關時,這是一個優點。  
但如果要合作完成一個大任務時,這種隔離就會使諸多用戶之間不便於共享  
  
三、樹形結構目錄  
(一)樹形目錄  
一個目錄文件中的目錄項,可以既作爲目錄文件的FCB,又是數據文件的FCB  
(二)路徑名和當前目錄  
路徑名:唯一通路,用/連接  
當前目錄,相對路徑名,絕對路徑名  
(三)目錄操作  
創建、刪除、不刪除非空目錄、可刪除非空目錄  
改變、移動、鏈接目錄、查找目錄  
(四)目錄查詢技術  
線性檢索法:在單級目錄中,用用戶提供的文件名,順序查找;在樹形目錄中,就按路徑名查找  
Hash方法:建立一張Hash索引文件目錄,利用Hash方法查詢——利用用戶提供的文件名,轉換爲文件目錄索引值,再用索引值在目錄中查找  
注:如果使用了通配符,就無法用Hash方法檢索了  
“衝突”:1.看目錄項是否空 2.看文件名是否匹配 3. 如果不匹配,就要在Hash值加上一個常數,形成新的索引值  
  
④文件共享  
一、基於有向無循環圖實現文件共享  
(一)有向無循環圖DAG  
由附加操作Append來完成,而新增加的盤塊只會出現在執行了操作的目錄中,新增加的部分不能被共享  
(二)利用索引結點  
用索引結點,任何用戶對共享文件所進行的Append操作或修改,都將引起相應結點內容的改變  
還增加一個count鏈接計數  
其他用戶在使用,擁有者刪了,文件依然存在  
  
二、利用符號鏈接實現文件共享  
(一)利用符號鏈接的基本思想  
即允許一個文件或子目錄有多個父目錄,但只有一個是“主”父目錄  
(二)如何利用符號鏈實現共享  
由系統創建一個LINK類型的新文件,取名爲F,並將F寫入鏈接父目錄D5中,就可以實現D5與F8的鏈接。新文件只有被鏈接文件F8的路徑名——所以叫做“符號鏈接”——新文件的路徑名被看做“符號鏈”  
(三)利用符號鏈實現共享的優點  
用戶刪了鏈接文件,也不會刪掉本來的文件;文件主刪了文件,其他用戶訪問不了,自然會刪掉符號鏈  
(四)利用符號鏈的共享方式存在的問題  
讀盤需時、符號鏈太多,瑣碎  
  
第八章 磁盤存儲器的管理  
①外存的組織方式  
連續組織方式、鏈接組織方式、索引組織方式  
一、連續組織方式  
位於同一磁道,讀寫不用移動磁頭  
優點:順序訪問容易、順序訪問速度快  
缺點:要求爲一個文件分配連續的存儲空間、要事先知道文件長度、不夠靈活刪除和插入、對於動態增長的文件,很難分配空間  
  
二、鏈接組織方式  
優點:消除外部碎片,提高外存利用率;對插入、刪除修改記錄都非常容易;能夠適應動態增長  
隱式鏈接:一個跟一個,如同鏈表;碎片多;萬一一個錯,整個文件用不了  
顯式鏈接:將各物理塊的指針顯式存在內存的一個表內,每個FCB對應一個字段,因爲在內存查找,所以大大提高檢索速度,還減少訪問磁盤的次數,而這叫做FAT  
  
五、索引組織方式  
(一)單級索引組織方式  
不支持高效直接存取,要對一個較大的文件進行存取,就要順序地查找許多盤塊號  
FAT需要佔用較大內存空間  
所以創造“表中表”——索引分配圖  
(二)多級索引組織方式  
就是多級,如同“全語言字典”  
優點:大大加快對大型文件的查找速度  
(三)增量式索引組織方式  
增量式索引組織方式的基本思想  
小的用直接尋址、中的用單級索引組織方式、大的用兩三級索引組織方式  
Unix System V的組織方式:索引結點有13個地址項,前十個是直接地址,最大放40KB;第十一個是一次間接地址,1K個盤塊號,允許文件長達4MB;如果還超過4MB+40KB,就放二次間接地址,有4GB;還超過,就放3次間接地址,有4TB  
  
②文件存儲空間的管理  
一、空閒表法和空閒鏈表法  
(一)空閒表法  
即在外存所有空閒區建立一張空閒表,每個空閒區對於一個表項,記錄序號、第一空閒盤塊號、空閒盤塊數  
分配和回收與內存相似,但在外存爲加快分配速度,連續分配依然有用。小的連續分配,大的離散分配,多媒體文件依然連續分配  
(二)空閒鏈表法  
空閒盤塊鏈:一直分配,按鏈表分配。如果刪除文件就掛在鏈尾  
優點:簡單,缺點:但爲一個文件分配時可能重複操作多次,分配和回收效率較低,而且盤塊鏈會很長  
空閒盤區鏈:優點:分配回收效率較高,盤區鏈短;缺點複雜  
  
二、位示圖法  
(一)位示圖  
利用二進制的一位來表示磁盤中一個盤塊的使用情況,也可以是二維數組  
(二)盤塊的分配  
掃描位示圖,找到一個或一組0,之後計算盤塊號: b = n(i -1)+j,修改位示圖=1  
(三)盤塊的回收  
從盤塊號轉換爲行列號:  
i = (b-1) DIV n +1  
j = (b-1) MOD n + 1  
  
三、成組鏈接法  
(一)空閒盤塊的組織  
每組含有盤塊總數N和該組所有盤塊號記入前一組的第一個盤塊的S.free(0)~S.free(99),這樣各組第一個盤塊可鏈接成一條鏈  
(二)空閒盤塊的分配與回收  
當棧中空閒盤塊號已達100時,表示棧已滿,便將先有棧中100個盤塊號記入新回收的盤塊中,將盤塊號作爲新棧底  
發佈了37 篇原創文章 · 獲贊 5 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章