大連理工大學(xué)軟件學(xué)院操作系統(tǒng)復(fù)習(xí)詳細(xì)筆記_第1頁
大連理工大學(xué)軟件學(xué)院操作系統(tǒng)復(fù)習(xí)詳細(xì)筆記_第2頁
大連理工大學(xué)軟件學(xué)院操作系統(tǒng)復(fù)習(xí)詳細(xì)筆記_第3頁
大連理工大學(xué)軟件學(xué)院操作系統(tǒng)復(fù)習(xí)詳細(xì)筆記_第4頁
大連理工大學(xué)軟件學(xué)院操作系統(tǒng)復(fù)習(xí)詳細(xì)筆記_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第1-2章 導(dǎo)論和操作系統(tǒng)結(jié)構(gòu)1、 什么是操作系統(tǒng)(操作系統(tǒng)作用)?操作系統(tǒng)是控制和管理計(jì)算機(jī)各種軟件和硬件資源、有效地組織多道程序運(yùn)行的系統(tǒng)軟件,是用戶與計(jì)算機(jī)之間的接口。2、 操作系統(tǒng)功能:存儲(chǔ)器管理、處理機(jī)管理、設(shè)備管理、文件管理、用戶接口管理。 3、 操作系統(tǒng)服務(wù)?用戶界面、程序執(zhí)行、I/O操作、文件系統(tǒng)操作、通信、錯(cuò)誤檢測(cè)、資源分配、統(tǒng)計(jì)、保護(hù)和安全4、 用戶模式和內(nèi)核模式的概念及作用?現(xiàn)代操作系統(tǒng)是由硬件驅(qū)動(dòng)的,由于操作系統(tǒng)和用戶共享了計(jì)算機(jī)系統(tǒng)的硬件和軟件,為了保證用戶程序中的一個(gè)出錯(cuò)僅影響正在運(yùn)行的程序,必須區(qū)分操作系統(tǒng)代碼和用戶定義代碼的執(zhí)行。系統(tǒng)引導(dǎo)時(shí),硬件開始處于內(nèi)核模式

2、,裝入操作系統(tǒng),開始在用戶模式下執(zhí)行用戶進(jìn)程。一旦出現(xiàn)陷阱或中斷,硬件回車哦你個(gè)用戶模式切換島內(nèi)和模式。之后系統(tǒng)會(huì)將控制交還給用戶程序。用戶模式和內(nèi)核模式的操作提供了保護(hù)操作系統(tǒng)和用戶程序不受錯(cuò)誤用戶程序影響的手段。5、 操作系主要類型?(1)多道批處理系統(tǒng):用戶作業(yè)成批處理,作業(yè)建立、過度、完成都自動(dòng)有系統(tǒng)成批完成,且在計(jì)算機(jī)內(nèi)存中同時(shí)存放幾道相互獨(dú)立的程序,使它們?cè)诠芾沓绦蚩刂葡孪嗷ゴ┎暹\(yùn)行。(2)分時(shí)系統(tǒng):系統(tǒng)內(nèi)存若干并發(fā)程序?qū)r(shí)間片共享使用。(3)實(shí)時(shí)系統(tǒng):計(jì)算機(jī)對(duì)于外來信息能夠以足夠快的速度處理、并在被控對(duì)象允許的范圍內(nèi)做出快速反應(yīng)。(4)分布式系統(tǒng)(5)專用系統(tǒng)6、操作系統(tǒng)的用戶界

3、面:命令解釋程序、圖形界面7、系統(tǒng)調(diào)用:提供了操作系統(tǒng)提供的有效服務(wù)界面,為什么用API而不是系統(tǒng)調(diào)用?可移植性、直觀 8、系統(tǒng)調(diào)用類型:進(jìn)程控制、文件管理、設(shè)備管理、信息維護(hù)、通信9、系統(tǒng)程序:文件管理、狀態(tài)信息、文件修改、程序語言支持、程序裝入和執(zhí)行、通信10、 操作系統(tǒng)結(jié)構(gòu):簡單結(jié)構(gòu):利用最小的空間提供最多的功能,缺點(diǎn):沒有劃分成模塊,沒有很好的區(qū)分接口和功能層次分層結(jié)構(gòu):操縱系統(tǒng)被分成若干層(級(jí)),最低層(0層)是硬件,最高層(N層)是用戶接口,優(yōu)點(diǎn):模塊性,構(gòu)造和調(diào)試的簡單化,每層只能利用較低層的功能和服務(wù),很容易擴(kuò)展系統(tǒng),很容易移植平臺(tái),高可靠性,高安全性,缺點(diǎn):用戶空間與內(nèi)核空間

4、通信帶來的性能影響微內(nèi)核:與分層方法類似,但更靈活,便于擴(kuò)充操作系統(tǒng)。11、虛擬機(jī):單個(gè)計(jì)算機(jī)的硬件抽象為不同的執(zhí)行部件,仿佛每個(gè)獨(dú)立的執(zhí)行環(huán)境都在自己的計(jì)算機(jī)上運(yùn)行。優(yōu)點(diǎn):第一,可以通過共享小型磁盤來共享文件。 第二,可以通過定義一個(gè)虛擬網(wǎng)絡(luò),每臺(tái)虛擬機(jī)通過虛擬通信網(wǎng)絡(luò)來傳遞消息。12、計(jì)算機(jī)系統(tǒng)可以大致分為4個(gè)組成部分:計(jì)算機(jī)硬件,操作系統(tǒng),系統(tǒng)程序與應(yīng)用程序,用戶13、作業(yè)的概念:批處理系統(tǒng)以作業(yè)為單位把程序和數(shù)據(jù)調(diào)入內(nèi)存以執(zhí)行14、系統(tǒng)調(diào)用的概念:是操作系統(tǒng)提供給編程人員的唯一接口第三章 進(jìn)程1. 進(jìn)程的概念:執(zhí)行中的程序2. 進(jìn)程與程序的區(qū)別程序不是進(jìn)程,程序只是被動(dòng)實(shí)體,而進(jìn)程是活

5、動(dòng)實(shí)體,當(dāng)一個(gè)可執(zhí)行文件被裝入內(nèi)存時(shí),一個(gè)程序才能被稱為進(jìn)程。l 進(jìn)程是一個(gè)動(dòng)態(tài)概念,程序是一個(gè)靜態(tài)概念;l 進(jìn)程有生命周期,有誕生有消亡,短暫的;而程序是相對(duì)長久的。l 進(jìn)程具有并發(fā)性,而程序沒有;l 進(jìn)程是競爭計(jì)算機(jī)系統(tǒng)資源的基本單位,其并發(fā)性受到系統(tǒng)本身的制約;l 不同的進(jìn)程可以包含同一程序,只要程序所對(duì)應(yīng)的數(shù)據(jù)集不同3. 進(jìn)程狀態(tài)及其轉(zhuǎn)換|新的:進(jìn)程正在被創(chuàng)建運(yùn)行:指令正在被執(zhí)行等待:進(jìn)程等待某個(gè)事件的發(fā)生就緒:進(jìn)程等待分配處理器終止:進(jìn)程完成執(zhí)行4. 進(jìn)程控制塊每個(gè)進(jìn)程在操作系統(tǒng)中用程序控制塊來表示(PCB):包括進(jìn)程狀態(tài)、程序計(jì)數(shù)器、CPU寄存器、CPU調(diào)度信息、內(nèi)存管理信息、記賬

6、信息、I/O狀態(tài)信息PCB用來保存程序運(yùn)行期間的重要信息、進(jìn)程存在的唯一標(biāo)識(shí)、記錄了OS所需的用于描述進(jìn)程及控制進(jìn)程所需的全部信息、進(jìn)程與PCB是一一對(duì)應(yīng)的5. 進(jìn)程調(diào)度:選擇一個(gè)可用的進(jìn)程到CPU上執(zhí)行6. 作業(yè)隊(duì)列:保存系統(tǒng)中所有的進(jìn)程,進(jìn)程進(jìn)入系統(tǒng)會(huì)被加入作業(yè)隊(duì)列7. 就緒隊(duì)列:駐留在內(nèi)存中的、等待運(yùn)行的程序保存在就緒隊(duì)列中8. 設(shè)備隊(duì)列:等待I/O設(shè)備的進(jìn)程,每個(gè)設(shè)備都有自己的設(shè)備隊(duì)列9. 調(diào)度程序:進(jìn)程選擇有相應(yīng)的調(diào)度程序執(zhí)行10. 長期調(diào)度(作業(yè)調(diào)度):選擇一個(gè)進(jìn)程進(jìn)入內(nèi)存的就緒隊(duì)列,控制多道程序設(shè)計(jì)的程度(內(nèi)存中進(jìn)程的數(shù)量),執(zhí)行的并不頻繁11. 短期調(diào)度(CPU調(diào)度):從就緒隊(duì)

7、列中選擇一個(gè)進(jìn)程,并為之分配CPU12. 兩者區(qū)別:執(zhí)行的頻率13. 中期調(diào)度:中級(jí)調(diào)度主要完成虛擬內(nèi)存管理相關(guān)得換入換出操作14. 上下文切換(調(diào)度過程):當(dāng)CPU切換到另一個(gè)進(jìn)程的時(shí)候,系統(tǒng)需要保存老進(jìn)程的狀態(tài),并且加載新進(jìn)程的狀態(tài),上下文切換的時(shí)間是系統(tǒng)的額外開銷,切換時(shí)系統(tǒng)不做任何有用的工作,時(shí)間與硬件支持密切相關(guān)15. 進(jìn)程操作:進(jìn)程創(chuàng)建,進(jìn)程終止進(jìn)程創(chuàng)建:父進(jìn)程創(chuàng)建子進(jìn)程,子進(jìn)程繼續(xù)創(chuàng)建,從而形成一棵進(jìn)程樹進(jìn)程終止:父進(jìn)程能夠中止子進(jìn)程的執(zhí)行16. 父進(jìn)程能夠中止子進(jìn)程的執(zhí)行的原因: 子進(jìn)程使用了超過它所分配到的一些資源 子進(jìn)程的任務(wù)不再需要 如果父進(jìn)程結(jié)束了,一些操作系統(tǒng)不允許子

8、進(jìn)程繼續(xù)執(zhí)行17. 對(duì)換技術(shù)、交換技術(shù):將內(nèi)存中暫時(shí)不能運(yùn)行的進(jìn)程,或暫時(shí)不用的數(shù)據(jù)和程序,換出到外存,以騰出足夠的內(nèi)存空間,把已經(jīng)具備運(yùn)行條件的進(jìn)程,或進(jìn)程需要的數(shù)據(jù)和程序,換入內(nèi)存18. 進(jìn)程分類:I/O為主的進(jìn)程、CPU為主的進(jìn)程19. 進(jìn)程終止實(shí)現(xiàn)第一步:根據(jù)被終止進(jìn)程的標(biāo)識(shí)符,從PCB集合中查找對(duì)應(yīng)進(jìn)程控制塊并讀出該進(jìn)程的狀態(tài);第二步:若被終止進(jìn)程正處于執(zhí)行狀態(tài),則終止該進(jìn)程的執(zhí)行,并設(shè)置調(diào)度標(biāo)志為真,用于指示該進(jìn)程被終止后應(yīng)重新進(jìn)行調(diào)度,選擇一新進(jìn)程,把處理機(jī)分配給它。第三步:若進(jìn)程還有子孫進(jìn)程,應(yīng)將其所有子孫進(jìn)程終止,以防它們成為不可控制的。第四步:將進(jìn)程所占有的全部資源釋放(還

9、給父進(jìn)程或系統(tǒng)),釋放進(jìn)程控制塊(若該進(jìn)成為執(zhí)行態(tài),要進(jìn)行進(jìn)程調(diào)度)。第五步:將被終止進(jìn)程(它的PCB)從所在隊(duì)列(或鏈表)中移出,等待其他程序來收集相關(guān)信息。20. 進(jìn)程協(xié)作的目的:信息共享、提高運(yùn)算速度、模塊化、方便21. 進(jìn)程間通信基本模式:(1)共享內(nèi)存(2)消息傳遞22. 消息傳遞通過系統(tǒng)調(diào)用來實(shí)現(xiàn),速度慢,對(duì)于交換較少數(shù)量的數(shù)據(jù)很有用,因?yàn)椴恍枰苊鉀_突。23. 共享內(nèi)存消息傳遞速度快,只有在建立共享內(nèi)存區(qū)時(shí)需要系統(tǒng)調(diào)用四 線程1. 線程的引入目的:減少進(jìn)程切換和創(chuàng)建開銷,提高執(zhí)行效率和節(jié)省資源2. 實(shí)現(xiàn):將進(jìn)程的資源申請(qǐng)和調(diào)度屬性分開。即進(jìn)程作為資源的申請(qǐng)和擁有者,但不作為調(diào)度的

10、基本單位,這樣,就產(chǎn)生了線程的概念。3. 線程:是進(jìn)程中的一個(gè)實(shí)體,是獨(dú)立調(diào)度和分派的基本單位。4. 優(yōu)點(diǎn):響應(yīng)度高、經(jīng)濟(jì)、資源共享、多處理器體系結(jié)構(gòu)的利用5. 線程是CPU運(yùn)行的一個(gè)基本單元,包括程序計(jì)數(shù)器、寄存器集、??臻g6. 一個(gè)線程與它的對(duì)等線程共享代碼段、數(shù)據(jù)段、操作系統(tǒng)資源7. 傳統(tǒng)的或重型進(jìn)程等價(jià)于只有一個(gè)線程的任務(wù)8. 線程分為內(nèi)核線程和用戶線程9. 用戶級(jí)線程和核心級(jí)線程的區(qū)別(1) 線程的調(diào)度與切換時(shí)間用戶級(jí)線程的切換通常發(fā)生在一個(gè)應(yīng)用進(jìn)程的多個(gè)線程之間,無須通過中斷進(jìn)行OS的內(nèi)核,且切換規(guī)則也簡單,因此其切換速度特別快。而核心級(jí)線程的切換時(shí)間相對(duì)比較慢。(2) 系統(tǒng)調(diào)用用

11、戶級(jí)線程調(diào)用系統(tǒng)調(diào)用時(shí),內(nèi)核不知道用戶級(jí)線程的存在,只是當(dāng)作是整個(gè)進(jìn)程行為,使進(jìn)程等待并調(diào)度另一個(gè)進(jìn)程執(zhí)行,在內(nèi)核完成系統(tǒng)調(diào)用而返回時(shí),進(jìn)程才能繼續(xù)執(zhí)行。而核心級(jí)線程則以線程為單位進(jìn)行調(diào)度,當(dāng)線程調(diào)度系統(tǒng)調(diào)用時(shí),內(nèi)核將其作為線程的行為,因此阻塞該線程,可以調(diào)度該進(jìn)程中的其他線程執(zhí)行。(3) 線程執(zhí)行時(shí)間如果用戶設(shè)置了用戶級(jí)線程,系統(tǒng)調(diào)用是以進(jìn)程為單位進(jìn)行的,但隨著進(jìn)程中線程數(shù)目的增加,每個(gè)線程得到的執(zhí)行時(shí)間就少。而如果設(shè)置的是核心級(jí)線程,則調(diào)度以線程為單位,因此可以獲得良好的執(zhí)行時(shí)間。10. 多對(duì)一模型:多個(gè)用戶級(jí)線程映射到一個(gè)內(nèi)核線程(1) 線程管理由線程庫在用戶空間中進(jìn)行,效率比較高(2)

12、 如果一個(gè)線程執(zhí)行了阻塞系統(tǒng)調(diào)用,整個(gè)進(jìn)程會(huì)阻塞(3) 任一時(shí)刻只有1個(gè)線程訪問內(nèi)核,并行性差(多核) 11. 一對(duì)一模型:每個(gè)用戶級(jí)線程映射到一個(gè)內(nèi)核線程(1) 并行性高(2) 需要一一對(duì)應(yīng),系統(tǒng)開銷大12. 多對(duì)多模型:允許多個(gè)用戶級(jí)線程映射到多個(gè)內(nèi)核線程上,允許操作系統(tǒng)創(chuàng)建足夠多的內(nèi)核線程13. 二級(jí)模型:跟多對(duì)多類似,也允許一個(gè)用戶線程綁定到一個(gè)內(nèi)核線程上14. 線程取消:在線程結(jié)束前終止線程的任務(wù)15. 線程取消的兩種方法:1異步取消:立即終止目標(biāo)線程。2延遲取消:允許目標(biāo)線程不斷地檢查它是否應(yīng)終止,允許目標(biāo)線程有機(jī)會(huì)以有序的方式終止自己16. 并發(fā)與并行的概念及區(qū)別并行:同一時(shí)刻,

13、兩個(gè)事物均處于活動(dòng)狀態(tài)示例:CPU中的超流水線設(shè)計(jì)和超標(biāo)量設(shè)計(jì)并發(fā):宏觀存在并行特征,微觀上存在順序性,同一時(shí)刻,只有一個(gè)事物處于活動(dòng)狀態(tài)示例:分時(shí)操作系統(tǒng)中多個(gè)程序的同時(shí)運(yùn)行17. 線程池:創(chuàng)建一定數(shù)量的線程,放到池中等待工作18. 優(yōu)點(diǎn):通常用現(xiàn)有線程處理請(qǐng)求比等待創(chuàng)建新的線程要快,限制了在任何時(shí)候可用線程的數(shù)量第五章 CPU調(diào)度1. 進(jìn)程執(zhí)行由CPU執(zhí)行和I/O等待周期組成。進(jìn)程在這兩個(gè)狀態(tài)間切換。2. CPU調(diào)度決策可在四中環(huán)境下發(fā)生A. 當(dāng)一個(gè)進(jìn)程從運(yùn)行狀態(tài)切換到等待狀態(tài)。(I/O請(qǐng)求)B. 當(dāng)一個(gè)進(jìn)程從運(yùn)行狀態(tài)切換到就緒狀態(tài)。(出現(xiàn)中斷)C. 當(dāng)一個(gè)進(jìn)程從鄧得狀態(tài)切換到就緒狀態(tài)。(

14、I/O完成)D當(dāng)一個(gè)進(jìn)程終止時(shí)。當(dāng)調(diào)度只發(fā)生在A. 、D.情況下時(shí)是非搶占的。否則是搶占的。3. 分派程序:用來將CPU的控制交給由短期調(diào)度程序選擇的進(jìn)程4. 分派程序功能: (1)切換上下文(2)切換到用戶模式(3)切換到用戶進(jìn)程的合適位置,以從新啟動(dòng)程序5一些調(diào)度算法的基礎(chǔ)概念吞吐量:只一個(gè)單位時(shí)間內(nèi)所完成的進(jìn)程的數(shù)量周轉(zhuǎn)時(shí)間:從進(jìn)程提交到完成的時(shí)間段(周轉(zhuǎn)時(shí)間為所有時(shí)間段之和,包括等待進(jìn)入內(nèi)存、在就緒隊(duì)列中等待、在CPU上執(zhí)行和I/O上執(zhí)行):到達(dá)就緒隊(duì)列起到執(zhí)行結(jié)束的時(shí)間。等待時(shí)間:在就緒隊(duì)列中所花費(fèi)的時(shí)間之和響應(yīng)時(shí)間:從提交請(qǐng)求到產(chǎn)生第一響應(yīng)的時(shí)間,是開始響應(yīng)的時(shí)間6. 調(diào)度算法:A

15、. 先來先服務(wù)(FCFS):平均等待時(shí)間較長,是非搶占的,一旦CPU被分配給一個(gè)進(jìn)程,該進(jìn)程會(huì)保持CPU直到釋放CPU為止。缺點(diǎn):1.周轉(zhuǎn)時(shí)間與響應(yīng)時(shí)間無法保證2.對(duì)短作業(yè)不利B最短作業(yè)優(yōu)先:將每個(gè)進(jìn)程與下一個(gè)CPU區(qū)間段關(guān)聯(lián),分配CPU給具有最短區(qū)間段的進(jìn)程。最短作業(yè)優(yōu)先(SJF)最短剩余時(shí)間(SRT):SRT是針對(duì) SJF 增加了強(qiáng)占機(jī)制的一種調(diào)度算法,它總是選擇預(yù)期剩余時(shí)間最短的進(jìn)程。只要新進(jìn)程就緒,且有更短的剩余時(shí)間,調(diào)度程序就可能搶占當(dāng)前正在運(yùn)行的進(jìn)程。 SRT不像FCFS偏向長進(jìn)程,也不像輪轉(zhuǎn)法 產(chǎn)生額外的中斷,從而減少了開銷。 必須記錄過去的服務(wù)時(shí)間,從而增加了開銷。 從周轉(zhuǎn)時(shí)間

16、來看,SRT 比SJF 有更好的性能。C. 最高響應(yīng)比:在進(jìn)行進(jìn)程調(diào)度時(shí),從中選擇響應(yīng)比高者的進(jìn)程投入運(yùn)行。D. 優(yōu)先級(jí)調(diào)度:每一個(gè)進(jìn)程都有一個(gè)優(yōu)先號(hào)數(shù),CPU被分配給具有最高優(yōu)先級(jí)的進(jìn)程(優(yōu)先號(hào)數(shù)小的優(yōu)先級(jí)高)n SJF也是一種優(yōu)先級(jí)調(diào)度算法,優(yōu)先級(jí)是預(yù)測(cè)的下一個(gè)CPU區(qū)間時(shí)間問題:饑餓低優(yōu)先級(jí)進(jìn)程可能永遠(yuǎn)無法執(zhí)行解決方案:老化隨著時(shí)間增加進(jìn)程優(yōu)先級(jí)E輪轉(zhuǎn)法:為每一個(gè)進(jìn)程定義了一個(gè)時(shí)間片,如果一個(gè)進(jìn)程在被調(diào)度程序選中之后用完了系統(tǒng)規(guī)定的時(shí)間片,但未完成要求的任務(wù),則它自行釋放自己所占有的CPU而排到就緒隊(duì)列的末尾,等待下一次調(diào)度。同時(shí),進(jìn)程調(diào)度程序又去選擇當(dāng)前就緒隊(duì)列中的第一個(gè)進(jìn)程。(具體內(nèi)

17、容看書)F多級(jí)隊(duì)列調(diào)度G:多級(jí)反饋隊(duì)列調(diào)度7. 多處理器調(diào)度要處理的問題: 負(fù)載分配第6章 進(jìn)程同步1.臨界區(qū):一段可能對(duì)某個(gè)共享的數(shù)據(jù)進(jìn)行修改的一段代碼2.解決臨界區(qū)必須要滿足的三項(xiàng)要求(1)互斥:當(dāng)有一個(gè)進(jìn)程在臨界區(qū)內(nèi)執(zhí)行的時(shí)候,任何其他的進(jìn)程都不可以再進(jìn)入臨界區(qū)執(zhí)行(2) 前進(jìn):空閑讓進(jìn)。(3) 有限等待:要控制進(jìn)程從做出進(jìn)入臨界區(qū)選擇到請(qǐng)求被允許的過程中,其他進(jìn)程被允許進(jìn)入該臨界區(qū)的次數(shù)(避免進(jìn)程等待時(shí)間過長)3.信號(hào)量:信號(hào)量是一個(gè)整型值,>=0表示系統(tǒng)中當(dāng)前某類資源的可用數(shù)目,<0表示系統(tǒng)中等待該資源的進(jìn)程數(shù)。它的值只能由 P、V原語操作所改變。剩下的看書第7章 死鎖1

18、. 死鎖產(chǎn)生的四個(gè)必要條件:(4個(gè)條件同時(shí)滿足會(huì)引起死鎖)A. 互斥,B. 占有并等待,C.非搶占,D.循環(huán)等待2. 如果分配圖無環(huán),那么系統(tǒng)就沒有進(jìn)程死鎖,如果有環(huán),那么可能存在死鎖3. 死鎖的處理方法(1)可以用協(xié)議以預(yù)防或避免死鎖(2)可允許系統(tǒng)進(jìn)入死鎖狀態(tài),然后檢測(cè)它,并加以回復(fù)(3)可忽視這個(gè)問題,認(rèn)為死鎖不會(huì)發(fā)生4. 死鎖預(yù)防:(1)對(duì)非共享資源,必須要有互斥條件(2)當(dāng)一個(gè)進(jìn)程申請(qǐng)一個(gè)資源時(shí),它不能沾有其他資源(3)如果占有資源并申請(qǐng)另一個(gè)不能立即分配的資源,那么其現(xiàn)已分配的資源都可被搶占(4)對(duì)所有資源類型進(jìn)行完全排序,且要求每個(gè)進(jìn)程按遞增順序來申請(qǐng)資源,當(dāng)進(jìn)程申請(qǐng)某個(gè)資源時(shí),

19、他必須釋放掉所有較低序號(hào)的資源。注:以上四條分別對(duì)應(yīng)死鎖的四個(gè)產(chǎn)生條件5. 如果系統(tǒng)能按某個(gè)順序?yàn)槊總€(gè)進(jìn)程分配資源并能避免死鎖,那么系統(tǒng)狀態(tài)就是安全的,如果沒有這樣的順序存在,那么系統(tǒng)狀態(tài)就處于不安全狀態(tài)。關(guān)系:安全狀態(tài)不是死鎖狀態(tài),死鎖狀態(tài)也不是安全狀態(tài),不是所有不安全狀態(tài)都能導(dǎo)致死鎖狀態(tài)。6. 銀行家算法: 看書(重點(diǎn))死鎖避免是根據(jù)防止系統(tǒng)進(jìn)入不安全狀態(tài)實(shí)現(xiàn)的靜待資源分配破壞了占有并等待條件資資源的按序分配可以破壞循環(huán)等待條件銀行家算法是一種死鎖預(yù)防算法第8章 內(nèi)存管理1. 背景知識(shí)(1)機(jī)器指令可以用內(nèi)存地址做參數(shù),而不能用磁盤地址作參數(shù)。(2)程序必須放入內(nèi)存中的進(jìn)程空間才能被執(zhí)行(

20、3)CPU能直接訪問的存儲(chǔ)器只有內(nèi)存和處理器內(nèi)的寄存器(4)寄存器可以在一個(gè)CPU時(shí)鐘周期內(nèi)完成訪問(5)內(nèi)存訪問需要多個(gè)CPU周期(6)設(shè)置高速緩存解決CPU與內(nèi)存速度不匹配的問題(7)地址綁定:A. 編譯時(shí):如果在編譯時(shí)就知道進(jìn)程在內(nèi)存中的的駐留地址,那么就可以生成絕對(duì)地址。B.加載時(shí):如果在編譯時(shí)并不知道進(jìn)程駐留在內(nèi)存的什么地方,那么編譯器就會(huì)生成可重定位代碼。這種情況,最后的地址綁定會(huì)延遲到進(jìn)程加載時(shí)進(jìn)行。C. 執(zhí)行時(shí):2. 邏輯地址:CPU所生成的地址3. 物理地址:內(nèi)存單元所看到的地址(即加載到內(nèi)存地址寄存器中的地址)4. 動(dòng)態(tài)加載:一個(gè)子程序只有在調(diào)用時(shí)才被加載。所有子程序都以重

21、定位的形式保存在磁盤上。為了獲得更好的內(nèi)存空間使用率。5. 靜態(tài)鏈接:為了程序正確執(zhí)行,必須由連接裝配程序把它們連接成一個(gè)可運(yùn)行的目標(biāo)程序 問題:花費(fèi)時(shí)間,浪費(fèi)空間6. 動(dòng)態(tài)鏈接: 在程序開始運(yùn)行時(shí),只將主程序段裝配好并調(diào)入內(nèi)存,其它各段的裝配是在主程序段的運(yùn)行過程中逐步完成。每當(dāng)需要調(diào)用一個(gè)新段時(shí),再將這個(gè)新段裝配好,并與主程序段鏈接。減少磁盤和內(nèi)存空間的浪費(fèi)。與動(dòng)態(tài)加載不同,動(dòng)態(tài)鏈接需要操作系統(tǒng)的幫助。7. 單一連續(xù)分配:所謂單一,是指內(nèi)存中只駐留一道作業(yè)。為便于地址轉(zhuǎn)換,把作業(yè)連續(xù)的存放在內(nèi)存中,而不是離散的存放。內(nèi)存通常分為兩個(gè)區(qū)域,一個(gè)用于駐留操作系統(tǒng),另一個(gè)用于用戶進(jìn)程。內(nèi)存映射:

22、地址變換就是要建立虛擬地址與內(nèi)存地址的關(guān)系n 優(yōu)點(diǎn):方法簡單,易于實(shí)現(xiàn)n 缺點(diǎn):僅適合于單道程序分區(qū)管理的基本原理:給每一個(gè)內(nèi)存中的進(jìn)程劃分一塊適當(dāng)大小的存儲(chǔ)區(qū),以連續(xù)存儲(chǔ)各進(jìn)程的程序和數(shù)據(jù),使各進(jìn)程得以并發(fā)執(zhí)行。n 實(shí)現(xiàn)地址重定位的方法(1)靜態(tài)地址重定位:靜態(tài)地址重定位實(shí)在虛擬空間程序執(zhí)行之前由裝配程序完成地址映射工作。對(duì)于虛擬空間內(nèi)的指令或數(shù)據(jù)來說,靜態(tài)地址重定位只完成一個(gè)首地址不同的連續(xù)地址變換。它要求所有待執(zhí)行的程序必須在執(zhí)行之前完成它們之間的鏈接,否則將無法得到正確的內(nèi)存地址和內(nèi)存空間。優(yōu)點(diǎn):容易實(shí)現(xiàn),無需硬件支持。缺點(diǎn): 程序經(jīng)地址重定位后就不能移動(dòng)了,因而不能重新分配內(nèi)存,不利

23、于內(nèi)存的有效利用。 必須占用連續(xù)的內(nèi)存空間,這就難以做到程序和數(shù)據(jù)的共享。l 動(dòng)態(tài)地址重定位:動(dòng)態(tài)地址重定位是在程序執(zhí)行過程中,在CPU訪問內(nèi)存之前,將要訪問的程序或數(shù)據(jù)地址轉(zhuǎn)換成內(nèi)存地址。動(dòng)態(tài)重定位依靠硬件地址變換機(jī)構(gòu)完成。該地址變換機(jī)構(gòu)需要一個(gè)(或多個(gè))基地址寄存器BR和一個(gè)(或多個(gè))程序虛擬地址寄存器VR指令或數(shù)據(jù)的內(nèi)存地址MA與虛擬地址的關(guān)系為: MA=(BR)+ (VR)n 優(yōu)點(diǎn):l 可以對(duì)內(nèi)存進(jìn)行非連續(xù)分配4 對(duì)于同一進(jìn)程的各分散程序段,只要把各程序段在內(nèi)存中的首地址統(tǒng)一存放在不同的BR中,則可以由地址變換機(jī)構(gòu)變換得到正確的內(nèi)存地址。l 動(dòng)態(tài)重定位提供了實(shí)現(xiàn)虛擬存儲(chǔ)的基礎(chǔ)4 動(dòng)態(tài)重

24、定位不要求在作業(yè)執(zhí)行前為所有程序分配內(nèi)存,也就是說,可以部分地、動(dòng)態(tài)地分配內(nèi)存。l 有利于程序段的共享n 缺點(diǎn):l 需要附加的硬件支持。l 實(shí)現(xiàn)存儲(chǔ)管理的軟件算法比較復(fù)雜。邏輯地址空間綁定到相分離的物理地址空間的概念是OS管理內(nèi)存的核心。保護(hù):重定位寄存器含有最小的物理地址值,界限地址寄存器含有邏輯地址的范圍值(如重定位=10400,界限=7460)當(dāng)CPU調(diào)度選擇一個(gè)程序來執(zhí)行時(shí),CPU所產(chǎn)生的的每個(gè)地址都需要與這兩個(gè)寄存器核對(duì),以保證操作系統(tǒng)和其他用戶進(jìn)程不受該進(jìn)程的運(yùn)行影響。保護(hù)鍵法是一種常用的保護(hù)法8. 分頁、頁表解構(gòu)、分段,及其相關(guān)計(jì)算重點(diǎn)看書明確非連續(xù)內(nèi)存分配方法(分頁機(jī)制、保護(hù)方

25、法、共享方法等)明確頁表的結(jié)構(gòu)有哪幾種形式,各自的方法明確分段管理方法n 分頁:將物理內(nèi)存分為固定大小的塊(稱為幀),將邏輯內(nèi)存分成同樣大小的塊(稱為頁),執(zhí)行一個(gè)大小為n頁的進(jìn)程,要發(fā)現(xiàn)n個(gè)空閑幀并把程序裝入其中,利用頁表進(jìn)行邏輯到物理地址的映射,會(huì)有內(nèi)部碎片問題。物理地址=頁號(hào)所對(duì)應(yīng)的幀號(hào)*幀大?。ㄅc頁大小一樣)+頁偏移n 段式與頁式管理的比較l 段式管理與頁式管理的地址變換機(jī)構(gòu)非常相似,但兩者有著概念上的根本差別。表現(xiàn)在:l 段是信息的邏輯單位,它是根據(jù)用戶的需要?jiǎng)澐值?,因此段?duì)用戶是可見的;頁是信息的物理單位,是為了管理主存的方便而劃分的,對(duì)用戶是透明的。l 頁的大小固定不變,由系統(tǒng)決

26、定。段的大小是不固定的,它由其完成的功能決定。l 段式向用戶提供的是二維地址空間,頁式向用戶提供的是一維地址空間,其頁號(hào)和頁內(nèi)偏移是機(jī)器硬件的功能。l 由于段是信息的邏輯單位,因此便于存貯保護(hù)和信息的共享,頁的保護(hù)和共享受到限制。第9章 虛擬內(nèi)存(本章主要解決執(zhí)行程序如何從硬盤載入內(nèi)存)1. 虛擬內(nèi)存:將用戶邏輯內(nèi)存和物理內(nèi)存區(qū)分開虛擬內(nèi)存不考慮物理存儲(chǔ)器的大小和信息存放的實(shí)際位置,只規(guī)定每個(gè)進(jìn)程中互相關(guān)連的信息的相對(duì)位置。每個(gè)進(jìn)程都擁有自己的虛擬內(nèi)存。直觀的講,它是以透明方式提供給用戶一個(gè)比實(shí)際內(nèi)存存大得多的地址空間,用戶可在這個(gè)地址空間內(nèi)編制程序,而完全不用去考慮實(shí)際內(nèi)存的大小,它是邏輯上

27、對(duì)內(nèi)存容量進(jìn)行擴(kuò)充的一種存儲(chǔ)器系統(tǒng)n 虛擬內(nèi)存可以通過如下方式實(shí)現(xiàn)按需調(diào)頁按需調(diào)段實(shí)現(xiàn)虛擬存儲(chǔ)技術(shù)應(yīng)注意1.需要有相當(dāng)容量的輔存以便于存放多用戶作業(yè)的地址空間。2.要有一定容量的主存。3.地址變換機(jī)構(gòu)2. 按需調(diào)頁:需要時(shí)調(diào)入相應(yīng)的頁好處:更少的I/O、更少的內(nèi)存空間、更快的響應(yīng)、更多的用戶交換程序?qū)φ麄€(gè)進(jìn)程進(jìn)行操作,而調(diào)頁程序只是對(duì)進(jìn)程的單個(gè)頁進(jìn)行操作。調(diào)頁過程:書2743頁面置換算法(重點(diǎn)):書283頁4. 幀分配最小數(shù)量:當(dāng)指令完成之前出現(xiàn)頁錯(cuò)誤時(shí),該指令必須重新執(zhí)行,因此,必須有足夠的幀來容納所有單個(gè)指令所引用的頁n 每個(gè)進(jìn)程幀的最少數(shù)量由體系結(jié)構(gòu)決定,最大數(shù)量由可用物理內(nèi)存的量決定5

28、幀分配算法:固定分配:平均分配、按比例分配優(yōu)先級(jí)分配:比例分配中利用優(yōu)先級(jí)而不是大小進(jìn)行分配,產(chǎn)生缺頁后,從低優(yōu)先級(jí)的進(jìn)程中選一個(gè)置換6. 全局 局部分配全局置換:從所有幀的集合中選擇一個(gè)置換幀缺點(diǎn):不能控制進(jìn)程的缺頁率局部置換:從自己的分配幀中選一個(gè)缺點(diǎn):不能使用其它進(jìn)程不常用的內(nèi)存空間7. 系統(tǒng)顛簸:如果一個(gè)進(jìn)程沒有足夠的幀,缺頁率會(huì)很高,一個(gè)進(jìn)程頻繁的換入換出頁,造成系統(tǒng)顛簸。解決方法:通過局部置換算法和優(yōu)先置換算法能限制系統(tǒng)顛簸8. 內(nèi)存映射文件機(jī)制:文件的內(nèi)存映射可以將一磁盤塊映射成內(nèi)存的一頁或多頁,這樣,一頁大小的部分文件從文件系統(tǒng)讀入物理頁,以后文件的讀寫就按照通常的內(nèi)存訪問來處理,由于是通過內(nèi)存操作文件而不是使用系統(tǒng)調(diào)用,簡化了文件訪問和

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論