3.存儲管理算法
對象:主存(內存)編程
存儲器:計算機系統中關鍵性資源信息存儲的主要場所。數組
主要功能:分配、回收主存空間;提升主存的利用率;存信息實現有效保護(主)安全
發展方向:高速、大容量、小體積網絡
虛擬地址:即,相對地址、程序地址、邏輯地址、符號地址、名地址數據結構
名空間——(彙編或編譯,連接編輯程序加工)>邏輯地址空間(相對地址空間)——(地址再定位)>物理地址空間(絕對地址空間)併發
存儲空間:邏輯地址空間(地址空間)、物理地址空間(存儲空間);地址的集合函數
地址重定位:邏輯地址變換爲主存物理地址工具
解決可執行文件中地址(指令、數據)與主存地址的對應關係性能
由裝入程序Loader、地址重定位機構完成
分類:
1.靜態重定位:loader完成,無需地址重定位機構支持。執行期間不發生變化。缺點:分配連續的存儲區域;執行期間不能擴充存儲空間,不能再主存中移動;難以空想主存中同一程序的副本和數據。
2.動態重地位:換入、換出主存,解決主存緊張;在主存中移動,碎片集中,充分利用空間;利用小的主存塊,沒必要分配連續的空間;共享
存儲管理:
目的:解決多用戶使用主存問題
必須爲每一個做業分配足夠的空間,以便裝入所有信息。當主存空間不能知足做業要求,做業便沒法裝入主存執行。
分類:
1.分區存儲:主存的用戶區分紅若干個區域,每一個區域分配給一個用戶做業使用。
(1)固定分區:系統生成時劃分的,大小可不等。已分配區中存在未使用空間。
(2)可變分區:做業裝入時進行,個數可變,分區大小等於做業大小。最佳適應算法、最差適應算法、首次適應算法、循環首次適應算法。不斷分配、回收,產生了外碎片。
(3)重定位分區:移動全部已分配好的去,使之成爲連續的分區。解決碎片問題
分區保護的目的:防止未經審覈的用戶訪問分區。
上界/下界寄存器保護、基址/限長寄存器保護
2.分頁存儲
優勢:分頁過程由操做系統完成,對用戶透明,用戶沒必要關心分頁過程
缺點:不易實現共享
(1)純分頁:進程地址空間劃分爲若干大小相等的區域,稱爲頁;將主存空間劃分紅與頁相同大小的若干個物理塊,稱爲塊、頁框。將進程的每一頁離散地分配到主存的多個物理塊中。
頁表:保證在主存中找到每一個頁面所對應的物理塊。實現從頁號到物理塊號的地址映射。
地址映射:至少訪問兩次主存。1.獲得數據物理地址;2.存取數據,若數據是間接地址,還須要再次變換
地址變換機構:利用頁表把用戶程序中的邏輯地址變換成主存中的物理地址(將用戶程序中的也好變換成主存中的物理塊號)。頁表寄存器->物理地址寄存器,或越界中斷
快表:小容量的聯想存儲器,由一組快速存儲器組成。保存當前訪問頻率高的少數活動頁的頁號、相關信息。
根據數據所在邏輯頁好在聯想存儲器中找出對應的物理頁號。查找聯想存儲器、查找主存頁表是並行進行的。一旦在聯想存儲器中找到相符的邏輯也好,就中止查找主存頁表
兩級頁表機制:爲了減小頁表所佔用的連續內存空間
每一個進程頁表佔用主存空間是連續的,若是頁表佔用大,則連續並不現實。
原理:將頁表進行分頁。每頁大小與主存物理塊大小相同,離散地將各個頁面分別存放在不一樣的物理塊中。外層頁表:第一級頁表,存放某個頁表的物理地址;第二級頁表:存放頁的物理塊號。
3.分段存儲管理:做業的地址空間被劃分爲若干個段,每段是一組完整的邏輯信息。(主程序段、子程序段、數據段、堆棧段……)每段分配一個連續的分區,進程中的各段能夠離散地分配到主存的不一樣分區中。
優勢:易於實現段共享,對段的保護很簡單。
段表:爲每一個進程創建一張段映射表。邏輯段->物理主存
4.段頁式存儲:
具備分頁系統有效提升主存利用率的優勢,又具備分段系統能很好知足用戶須要的長處。
先將整個貯存劃分紅大小相等的存儲塊(頁架),將用戶程序按程序的邏輯關係分爲若干段。每段分爲若干頁,以頁架爲單位離散分配。
系統中必須同時配置段表、頁表
虛擬存儲管理:
做業只部分裝入主存即可開始啓動運行,其他部分暫時留在磁盤上,須要時再裝入主存。
優勢:可有效地利用主存空間。從用戶角度看,系統所具備的主存容量比實際主存容量大的多。
程序局部性原理:程序執行時呈現出局部性規律(在一段時間內,程序的執行僅侷限於某個部分,所訪問的存儲空間也侷限在某個區域)。
表現:時間侷限性(循環操做)、空間侷限性(順序執行)
虛擬存儲器:
功能:請求調入、置換
僅把做業的一部分裝入主存即可運行做業,能從邏輯上對主存容量進行擴容
邏輯容量:由主存、外存容量之和;CPU可尋址的範圍來決定。運行速度接近於主存速度,成本低。
分類:
1.請求分頁系統:在純分頁基礎上,增長了請求調頁功能、頁面置換功能。應用程序一部分仍在內存上,所以頁表中再增長若干項(狀態位、訪問字段、輔存地址……)供程序在換進、換出時參考。
缺頁中斷:要訪問的不在主存,產生一個缺頁中斷,請求OS將所缺的頁調入主存。由缺頁中斷機構完成
2.請求分段系統
3.請求段頁式系統
頁面置換算法:
直接影響系統的性能。不是當的算法會致使系統發生「抖動」(顛簸,剛換出的頁很快又被訪問,須要從新調入)。核心問題:徐澤合適的頁面置換算法
1.最佳:Optimal,理想化算法。選擇那些永不使用、最長時間內再也不被訪問的頁面置換出去。性能最好,實際你那一實現,一般用來評價其餘算法。
2.先進先出:FIFO,老是淘汰最早進入主存的頁面(選擇在主存中駐留時間最久的頁面予以淘汰)。
前後次序連接成一個隊列,並設置一個指針便可。
最直觀、性能最差的算法。有BELADY異常現象。
3.最近最少未使用:LRU,每一個頁面設置一個訪問字段(記錄這個頁面自上次被訪問以來所經歷的時間T),選擇T最大的淘汰。須要硬件(寄存器、棧)支持
4.最近未用:NUR,將最近一段時間未用過的頁面患處。之中LFU的近似算法
每一個頁面設置一個訪問位,見貯存全部頁面經過連接指針鏈成一個循環隊列。若頁被訪問,設置爲+1.選擇淘汰是,設置-1,循環查找直到訪問位爲0的頁面爲止。訪問位:表示該頁是否使用過。
工做集:某段時間間隔裏,進程實際要訪問的頁面集合
4.設備管理
操做系統中最繁雜,與硬件緊密相關的部分。
設備:外部設備(外設),計算機系統與外界交互的工具,負責計算機與外部輸入輸出工做。
I/O系統:負責管理輸入、輸出的機構。由設備、控制器、通道(具備通道的計算機系統)、總ian、I/O軟件組成
分類:
數據組織:塊設備、字符設備
資源分配角度:獨佔設備(用戶終端、打印機)、共享設備(磁盤)、虛擬設備(經過虛擬技術將一臺獨佔設備變換爲若干臺供多個用戶(進程)共享的邏輯設備,脫假機技術)
數據傳輸率:低速設備(鍵盤、鼠標、語音輸入)、中速設備(行式打印機、激光打印機)、高速設備(磁帶機、磁盤機、光盤機)
設備管理:
目標:提升設備的利用率(提升CPU和I/O設備之間的並行操做程度),爲用戶提供方便、統一的界面
技術:中斷技術、DMA技術、通道技術、緩衝技術
I/O軟件:
基本思想:分層構造。低層與硬件相關;高層提供友好、清晰、統一的接口
主要目標:設備獨立性、統一命名
分四層:中斷處理程序、設備驅動程序、與設備無關的系統軟件、用戶級軟件。
設備管理相關技術:
1.通道技術:
通道:使數據傳輸獨立於CPU,使CPU從繁忙的I/O工做中解脫出來。
信息交換方式分類:字節多路通道、數組選擇通道、數組多路通道
通道價格昂貴,系統中通道數目有限,成爲輸入、輸出的「瓶頸」問題
2.DMA技術(直接主存存取)
數據在主存與I/O設備間,直接成塊傳送。
不需CPU干涉,只需CPU在開始時向設備發出「傳送一塊數據的命令」,在結束時,經過輪詢、中斷得知過程是否技術,下次操做是否就緒。
實際操做由DMA硬件直接執行完成,CPU可在傳送過程當中作別的事情。
3.緩衝技術:硬件緩衝(專門的硬件寄存器)、軟件緩衝(操做系統管理)
提升外設利用率,儘量使外設處於忙碌狀態。
(1)緩和CPU與I/O設備間速度不匹配的矛盾
(2)減小對CPU的中斷頻率,放寬對中斷響應時間的限制
(3)提升CPU和I/0設備間的並行性
全部I/O設備與處理機(主存)間都使用了緩衝區來交換數據。
緩衝;單緩衝、雙緩衝、多緩衝、環形緩衝
4.Spooling技術:外圍設備聯機操做、假脫機系統
用一類物理設備模擬另外一類物理設備,使獨佔使用的設備變成多臺虛擬設備,達到速度匹配。
組成:預輸入程序、緩輸出程序、井管理程序、輸入輸出井
文件系統:文件管理系統
操做系統中實現文件統一管理的一組軟件、相關數據的集合,專門負責管理、存取文件信息的軟件機構
將用戶的邏輯文件按必定的組織方式轉換成物理文件存放到文件存儲器上。即每一個文件與該文件在磁盤上的存放位置創建的對應關係。
功能:按名存取;統一的用戶接口;併發訪問、控制;安全性控制;優化性能;差錯恢復
分類:
文件性質、用途:系統文件、庫文件、用戶文件
信息保存期限:臨時文件、檔案文件、永久文件
保護方式:只讀文件、讀寫文件、可執行文件、不保護文件
UNIX:普通文件、目錄文件、設備文件
文件的結構:
文件的組織形式
文件的邏輯結構:從用戶角度看到的文件組織形式。
分類:
1.有結構的記錄式文件:一個以上的記錄構成的文件。長度:記錄數目
記錄:描述一個實體集的,有着相同或不一樣數目的數據項。長度分類:定長記錄、變長記錄
2.無結構的流式文件:由一串順序字符流構成的文件。長度:字節
文件的物理結構:從實現角度看文件在文件存儲器上的存放方式。
分類:
1.連續結構:順序結構,邏輯上連續的文件信息依次存放在連續編號的物理塊上。批量存取,效率最高;交互應用場合,性能較差;不便於記錄的增長、刪除(配置一個運行文件(事務文件)優化)。
2.連接結構:串聯結構,邏輯上連續的文件信息存放在不連續的物理塊上,使用指針指向下一個,按鏈指針查找整個文件
3.索引結構:索引結構,邏輯上連續的文件信息存放在不連續的物理塊上,爲每一個文件創建一張索引表。
4.多個物理塊的索引表:文件創建時由系統自動創建的,與文件一併存放在同一文件捲上。
文件大小不一樣,索引表佔用物理塊個數不等。
組織方式:連接文件、多重索引方式
文件目錄:文件控制塊的有序集合,專門用於文件的檢索
組織方式:影響文件的存取速度、共享性、安全性
1.一級目錄結構:優:結構簡單。缺:查找速度慢;不容許重名;不便於文件共享……。主要用於單用戶環境
2.二級目錄結構:主文件目錄+用戶目錄。優:提升檢索速度,較好解決重名問題。缺點:用戶間不便於共享。
3.多級目錄結構:樹形目錄結構。倒置的有根樹,從樹根向下,每一個枝節點是目錄,葉節點是文件。多道程序設計系統。
要訪問文件,必須指出文件所在路徑。
文件控制塊:FCB,文件的說明,文件目錄項,目錄項。
描述、控制一個文件的數據結構,至少包括文件名,存取的物理地址。
組成:基本信息類,存取控制信息類,使用信息類
形式:FAT,Vfat,NTFS,Ext2,HPFS^
文件存取方法:
1.順序存取:嚴格按物理記錄排列的順序依次執行
2.隨機存取
直接存取法:存取文件中任意一個物理記錄
按鍵存取法:根據文件各記錄的某個數據項內容來存取記錄的。直接存取法的一種。
文件存儲空間管理:
磁盤分配表:外存空閒管理的數據結構
空閒空間管理方法:
1.位示圖:每一位對應文件存儲器上的一個物理塊,取值0(空閒)、1(佔用)。大小由磁盤空間大小(物理塊總數)決定。描述能力強,適合各類物理結構。
2.空閒區表:適用於連續文件結構
3.空閒塊鏈:全部空閒物理塊構成一個鏈表,用指針指向。不須要分配磁盤分配表,節省空間。
4.成組連接法:空閒塊分爲若干組,每組的第一個空閒塊等級了下一組空閒塊的物理盤塊號、空閒塊總數
文件的使用:
操做系統向用戶提供文件服務方式:1.操做級:命令集。目錄管理類命令、文件操做級命令、文件管理類命令……2.編程級:系統調用,函數
文件共享:節省大量主存空間(減小文件複製),減小訪問外存次數。採用文件名、文件說明分離的目錄結構有利於實現文件共享。
文件連接:
1.硬連接:不一樣文件名與同一個文件實體連接。不利於刪除(先關閉硬連接,再刪除文件);不能跨越文件系統的
2.符號連接:在創建的新文件、目錄並與原來文件、目錄的路徑名進行映射。優:能夠跨越文件系統,設置能夠同經過網絡鏈接到任何的機器中的文件,只需提供該機器的地址及機器中的文件路徑。缺點:讀盤次數多。須要根據文件路徑名逐個份量的查找目錄,屢次讀盤。而硬連接的共享文件的目錄表中已經包括了文件的索引節點。
文件保護:常採用存取控制方式進行。
存取控制:不一樣用戶對文件的訪問規定不一樣的權限,防止文件被未經文件主贊成的用戶訪問。
1.存取控制矩陣:二維矩陣(所有用戶,所有文件)。權限:可讀、可寫、可執行、組合。概念:簡單、清楚;實現:困難(用戶、文件數大,則暫用存儲空間大,驗證過程也耗費時間)。
2.存取控制表:按用戶對文件訪問權來對用戶分類。一個文件每每只與幾個分類有關,從而使存取控制表(存放在每一個文件的文件控制塊中)大爲簡化。
3.用戶權限表:以用戶、用戶組爲單位將用戶可存取的文件集中起來存入表中,每一個表目對應該用戶、用戶組的存取權限
4.密碼:文件存入磁盤時用密碼對文件內容加密。只有知道密碼獲得用戶才能讀取文件。
系統的安全性、可靠性
系統的安全:
1.涉及到技術、管理、法律、道德、政治……問題
2.涉及操做系統的安全機制。
管理:不容許未經受權的用戶進入系統。
1.系統級:註冊、登錄
2.用戶級:對全部用戶分類,對指定用戶分配權限
3.目錄級:保護系統中的各類目錄而設計的,與用戶權限無關。爲了保證目錄安全,規定只有系統核心才具備寫目錄的權利。
4.文件級:系統管理員、文件主對文件屬性的設置(只執行、隱含、只讀、讀寫、共享、系統)來控制用戶對文件的訪問。用戶對文件的訪問=用戶訪問權&目錄訪問權&文件屬性=有效權限&文件屬性。
文件系統的可靠性:
系統抵抗、預防各類物理性破壞、人爲性破環的能力。
文件系統破壞比起計算機的損害每每更加嚴重,且多數狀況下沒法恢復。
1.轉儲、恢復:造成文件、文件系統的多個副本。靜態轉儲、動態轉儲、海量轉儲、增量轉儲
2.日誌文件:對文件的增刪改操做寫入直至文件用來進行文件恢復。
3.文件系統的一致性:信息在內存修改完畢寫回磁盤前,系統崩潰,文件會出現不一致。對於索引節點塊、目錄塊、空閒塊,後果更加嚴重。採用文件系統的一致性檢查(塊的一致性檢查、文件的一致性檢查。)