自考操作系統(tǒng)概論(2017)-知識(shí)總結(jié)_第1頁(yè)
自考操作系統(tǒng)概論(2017)-知識(shí)總結(jié)_第2頁(yè)
自考操作系統(tǒng)概論(2017)-知識(shí)總結(jié)_第3頁(yè)
自考操作系統(tǒng)概論(2017)-知識(shí)總結(jié)_第4頁(yè)
自考操作系統(tǒng)概論(2017)-知識(shí)總結(jié)_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)專心-專注-專業(yè)精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)操作系統(tǒng)概論知識(shí)總結(jié)第一章 操作系統(tǒng)簡(jiǎn)介操作系統(tǒng)是覆蓋在裸機(jī)上的第一層系統(tǒng)軟件操作系統(tǒng)的兩個(gè)主要目標(biāo):與硬件部分相互作用,為包含在硬件平臺(tái)上的所有底層可編程部件提供服務(wù)為運(yùn)行在計(jì)算機(jī)系統(tǒng)上的應(yīng)用程序(即所謂用戶程序)提供執(zhí)行環(huán)境現(xiàn)代計(jì)算機(jī)系統(tǒng)的一個(gè)重要特點(diǎn)就是支持多任務(wù)操作系統(tǒng)所管理的資源主要包括處理機(jī)、內(nèi)存、設(shè)備和文件,在網(wǎng)絡(luò)操作系統(tǒng)中還包括網(wǎng)卡、寬帶等操作系統(tǒng)的主要功能:處理機(jī)管理內(nèi)存管理設(shè)備管理文件管理操作系統(tǒng)的發(fā)展從時(shí)間順序上經(jīng)歷了從無(wú)操作系統(tǒng)到單道批處理系統(tǒng)、

2、多道程序系統(tǒng)(多道批處理系統(tǒng)、分時(shí)系統(tǒng))的發(fā)展過(guò)程,隨著計(jì)算機(jī)應(yīng)用領(lǐng)域的擴(kuò)大、計(jì)算機(jī)體系結(jié)構(gòu)的多樣化,又出現(xiàn)了微機(jī)操作系統(tǒng)、網(wǎng)絡(luò)操作系統(tǒng)、實(shí)時(shí)操作系統(tǒng)、嵌入式操作系統(tǒng)和物聯(lián)網(wǎng)操作系統(tǒng)單道批處理系統(tǒng)內(nèi)存中只有一道作業(yè),可以自動(dòng)成批處理作業(yè)。單道批處理系統(tǒng)特點(diǎn):自動(dòng)性、順序性、單道性。單道批處理系統(tǒng)與無(wú)操作系統(tǒng)相比,減少了等待人工操作的時(shí)間多道批處理系統(tǒng)的特點(diǎn)是多道性、無(wú)序性、調(diào)度性、復(fù)雜性。其優(yōu)點(diǎn)是能夠提高CPU、內(nèi)存和I/O設(shè)備的利用率和系統(tǒng)的吞吐量,缺點(diǎn)是系統(tǒng)平均周轉(zhuǎn)時(shí)間長(zhǎng),缺乏交互能力。分時(shí)操作系統(tǒng)允許多個(gè)用戶通過(guò)終端同時(shí)使用計(jì)算機(jī),特點(diǎn)是多路性、獨(dú)立性、及時(shí)性和交互性,優(yōu)點(diǎn)是向用戶提供了

3、人機(jī)交互的方便性,使多個(gè)用戶可以通過(guò)不同的終端共享主機(jī)。分時(shí)系統(tǒng)的實(shí)現(xiàn)需要解決兩個(gè)關(guān)鍵問(wèn)題,即及時(shí)接收和及時(shí)處理實(shí)時(shí)系統(tǒng)主要用于實(shí)時(shí)控制和實(shí)時(shí)信息處理領(lǐng)域。實(shí)時(shí)系統(tǒng)必須能及時(shí)響應(yīng)外部事件的請(qǐng)求,在規(guī)定的時(shí)間內(nèi)完成對(duì)該事件的處理,并控制所有實(shí)時(shí)任務(wù)協(xié)調(diào)一致地運(yùn)行實(shí)時(shí)系統(tǒng)的特點(diǎn):多路性、獨(dú)立性、及時(shí)性、交互性、可靠性實(shí)時(shí)系統(tǒng)比分時(shí)系統(tǒng)要求有更高的可靠性現(xiàn)代操作系統(tǒng)都支持多任務(wù),具有并發(fā)、共享、虛擬和異步性特征并發(fā)兩個(gè)或多個(gè)事件在同一時(shí)間間隔內(nèi)發(fā)生共享是指系統(tǒng)中的資源可供內(nèi)存中多個(gè)并發(fā)執(zhí)行的進(jìn)程共同使用,資源共享有兩種方式:互斥共享和同時(shí)共享內(nèi)存管理的主要任務(wù)是為多道程序的運(yùn)行提供良好的環(huán)境,方便用

4、戶使用內(nèi)存,提高內(nèi)存的利用率,以及從邏輯上擴(kuò)充內(nèi)存以實(shí)現(xiàn)虛擬存儲(chǔ)內(nèi)存管理應(yīng)具有內(nèi)存分配、內(nèi)存保護(hù)、地址映射和內(nèi)存擴(kuò)充功能操作系統(tǒng)可以采用兩個(gè)方式實(shí)現(xiàn)內(nèi)存分配,即靜態(tài)分配方式和動(dòng)態(tài)分配方式內(nèi)存保護(hù)的任務(wù):使操作系統(tǒng)內(nèi)核的空間不會(huì)被用戶隨意訪問(wèn),以保證系統(tǒng)的安全和穩(wěn)定確保每道用戶程序都在自己的內(nèi)存空間中運(yùn)行,互不干擾CPU執(zhí)行程序過(guò)程中訪問(wèn)內(nèi)存時(shí),需要把程序的邏輯地址轉(zhuǎn)變?yōu)槲锢淼刂?,這個(gè)轉(zhuǎn)換過(guò)程稱為地址映射內(nèi)存擴(kuò)充的任務(wù)是借助于虛擬存儲(chǔ)技術(shù),從邏輯上擴(kuò)充內(nèi)容容量,使系統(tǒng)能夠向用戶提供比物理內(nèi)存大的存儲(chǔ)容量。為了能從邏輯上擴(kuò)充內(nèi)存,系統(tǒng)必須具有內(nèi)存擴(kuò)充機(jī)制,以實(shí)現(xiàn)請(qǐng)求調(diào)入功能和置換功能進(jìn)程的管理功能

5、主要包括進(jìn)程的描述與組織、進(jìn)程控制、進(jìn)程同步、進(jìn)程通信及進(jìn)程調(diào)度設(shè)備管理主要功能:緩沖管理設(shè)備分配設(shè)備處理設(shè)備獨(dú)立性和虛擬設(shè)備目錄項(xiàng)包括文件名、文件屬性、文件的地址等信息。操作系統(tǒng)向用戶提供了用戶與操作系統(tǒng)之家的接口。主要包括:命令接口、圖形接口和程序接口命令接口分為聯(lián)機(jī)用戶接口和脫機(jī)用戶接口。聯(lián)機(jī)用戶接口是為聯(lián)機(jī)用戶設(shè)計(jì)的。脫機(jī)用戶接口是為批處理作業(yè)的用戶提供的,也稱處理廠用戶接口操作系統(tǒng)提供給程序員的接口是系統(tǒng)調(diào)用軟件系統(tǒng)結(jié)構(gòu)是一個(gè)復(fù)雜軟件體系的高層結(jié)構(gòu),為軟件系統(tǒng)提供了一個(gè)結(jié)構(gòu)、行為和屬性的高級(jí)抽象明確清晰的軟件系統(tǒng)結(jié)構(gòu)是一條貫穿軟件系統(tǒng)整個(gè)生命周期的主線,是軟件設(shè)計(jì)成功的基礎(chǔ)和關(guān)鍵,也

6、是對(duì)軟件大型化、復(fù)雜化趨勢(shì)的一種很好的應(yīng)對(duì)決策單體內(nèi)核是操作系統(tǒng)中最早、最常見(jiàn)的體系結(jié)構(gòu)微內(nèi)核技術(shù)是操作系統(tǒng)發(fā)展的一個(gè)里程碑,它的核心思想是核心功能外移程序是指令的集合,程序的執(zhí)行就是按照某種控制流執(zhí)行指令的過(guò)程一個(gè)單一指令需要的處理稱為指令周期,一個(gè)指令周期可以劃分成兩個(gè)步驟,分別是取指周期和執(zhí)行周期在每個(gè)執(zhí)行周期開始時(shí),處理器從存儲(chǔ)器中取一條指令程序的執(zhí)行就是反復(fù)取指令和執(zhí)行指令取指令和執(zhí)行指令都是由硬件完成的。進(jìn)程管理操作系統(tǒng)中最核心的概念是進(jìn)程程序的順序執(zhí)行的特點(diǎn):順序性,封閉性,可再現(xiàn)性程序的并發(fā)執(zhí)行的特點(diǎn):間斷性、失去封閉性、不可再現(xiàn)性引入進(jìn)程的原因:當(dāng)操作系統(tǒng)支持程序并發(fā)執(zhí)行時(shí),

7、并發(fā)執(zhí)行的程序可能是同一程序在不同數(shù)據(jù)集合上的執(zhí)行,也可能是不同的程序在不同數(shù)據(jù)集合上的執(zhí)行,它們共享系統(tǒng)資源,用程序已不能描述程序的并發(fā)執(zhí)行,所以引入了進(jìn)程的概念進(jìn)程的定義:進(jìn)程是允許并發(fā)執(zhí)行的程序在某個(gè)數(shù)據(jù)集合上的運(yùn)行過(guò)程進(jìn)程是由正文段、用戶數(shù)據(jù)段和進(jìn)程控制塊共同組成的執(zhí)行環(huán)境。正文段存放被執(zhí)行的機(jī)器指令,用戶數(shù)據(jù)段存放進(jìn)程在執(zhí)行時(shí)直接進(jìn)行操作的用戶數(shù)據(jù),進(jìn)程控制塊存放程序的運(yùn)行環(huán)境,操作系統(tǒng)通過(guò)這些數(shù)據(jù)描述和管理進(jìn)程進(jìn)程的特征:并發(fā)性。動(dòng)態(tài)性獨(dú)立性異步性結(jié)構(gòu)特征進(jìn)程與程序的區(qū)別:程序是靜態(tài)的,進(jìn)程是動(dòng)態(tài)的。程序是永久的,進(jìn)程是暫時(shí)存在的程序與進(jìn)程的存在實(shí)體不同。進(jìn)程與程序的聯(lián)系進(jìn)程是程序

8、的一次執(zhí)行,進(jìn)程總是對(duì)應(yīng)至少一個(gè)特定的程序,執(zhí)行程序的代碼一個(gè)程序可以對(duì)應(yīng)多個(gè)進(jìn)程。同一個(gè)程序可以在不同數(shù)據(jù)集合上運(yùn)行,因而構(gòu)成若干個(gè)不同的進(jìn)程,幾個(gè)進(jìn)程能并發(fā)地執(zhí)行相同的程序代碼,而同一個(gè)進(jìn)程能順序地執(zhí)行幾個(gè)程序進(jìn)程由程序、用戶數(shù)據(jù)和操作系統(tǒng)管理進(jìn)程所需要的進(jìn)程控制塊構(gòu)成。進(jìn)程實(shí)體存在的標(biāo)志是操作系統(tǒng)管理進(jìn)程所使用的數(shù)據(jù)結(jié)構(gòu)進(jìn)程控制塊進(jìn)程控制塊中包含的信息:進(jìn)程標(biāo)識(shí)符信息(用于唯一標(biāo)識(shí)一個(gè)進(jìn)程)、處理機(jī)狀態(tài)信息(通用寄存器、指令計(jì)數(shù)器、程序狀態(tài)字PSW、用戶棧指針)、進(jìn)程調(diào)度信息(進(jìn)程狀態(tài)信息、進(jìn)程優(yōu)先級(jí)和進(jìn)程調(diào)度所需的其他信息)、進(jìn)程控制信息(包括程序、數(shù)據(jù)的地址、進(jìn)程同步、通信機(jī)制、資源

9、清單、鏈接指針)進(jìn)程的三種基本狀態(tài):就緒態(tài)、阻塞態(tài)和執(zhí)行態(tài)進(jìn)程的組織:鏈接方式、索引方式和進(jìn)程隊(duì)列需要?jiǎng)?chuàng)建新進(jìn)程的情況:用戶登錄、作業(yè)調(diào)度、提供服務(wù)、應(yīng)用請(qǐng)求調(diào)用創(chuàng)建新進(jìn)程的系統(tǒng)調(diào)用來(lái)創(chuàng)建進(jìn)程的步驟:1.申請(qǐng)空白PCB,2.為新進(jìn)程分配資源,3.初始化進(jìn)程控制塊,4.將新進(jìn)程插入就緒隊(duì)列進(jìn)程的阻塞和喚醒操作:請(qǐng)求系統(tǒng)服務(wù)啟動(dòng)某種操作新數(shù)據(jù)尚未到達(dá)無(wú)新工作可做完成進(jìn)程阻塞的簡(jiǎn)化過(guò)程如下:將進(jìn)程的狀態(tài)改為阻塞態(tài)將進(jìn)程插入相應(yīng)的阻塞隊(duì)列轉(zhuǎn)進(jìn)程調(diào)度程序,從就緒隊(duì)列中選擇進(jìn)程為其分配CPU進(jìn)程喚醒的過(guò)程:將進(jìn)程從阻塞隊(duì)列中移出將進(jìn)程狀態(tài)由阻塞態(tài)改為就緒態(tài)將進(jìn)程插入就緒隊(duì)列進(jìn)程終止:當(dāng)進(jìn)程正常秩序完畢,調(diào)

10、用終止進(jìn)程的系統(tǒng)調(diào)用,請(qǐng)求操作系統(tǒng)刪除該進(jìn)程一個(gè)進(jìn)程調(diào)用適當(dāng)?shù)南到y(tǒng)調(diào)用,終止另外一個(gè)進(jìn)程。父進(jìn)程終止其子進(jìn)程的原因:子進(jìn)程使用了超過(guò)它所分配到的一些資源分配給子進(jìn)程的任務(wù)已經(jīng)不再需要父進(jìn)程退出。完成進(jìn)程終止的過(guò)程:從進(jìn)程PCB中讀進(jìn)程狀態(tài)若進(jìn)程正在執(zhí)行,則終止進(jìn)程的執(zhí)行若進(jìn)程由子孫進(jìn)程,在大多數(shù)情況下需要終止子孫進(jìn)程釋放資源將終止進(jìn)程的PCB移出操作系統(tǒng)內(nèi)核是計(jì)算機(jī)硬件的第一次擴(kuò)充,內(nèi)核執(zhí)行操作系統(tǒng)與硬件關(guān)系密切,執(zhí)行頻率高的模塊,常駐內(nèi)存操作系統(tǒng)內(nèi)核的功能:支撐功能(中斷處理、時(shí)鐘管理和原語(yǔ)操作)和資源管理功能(包括進(jìn)程管理、存儲(chǔ)管理和設(shè)備管理)中斷是改變處理器執(zhí)行指令順序的一種事件,這樣的

11、事件與CPU芯片內(nèi)外部硬件電路產(chǎn)生的電信號(hào)相對(duì)應(yīng)計(jì)算機(jī)在執(zhí)行程序的過(guò)程中,當(dāng)出現(xiàn)中斷時(shí),計(jì)算機(jī)停止現(xiàn)行程序的運(yùn)行,轉(zhuǎn)向?qū)@些中斷事件的處理,處理結(jié)束后再返回到現(xiàn)行程序的間斷處引入中斷的原因:使CPU可以與其他設(shè)備并行工作,能有效提高CPU的利用率,改善系統(tǒng)性能,支持系統(tǒng)的異步性。中斷的類型:同步中斷(內(nèi)部中斷或異常),是指指令執(zhí)行時(shí)由CPU控制單元產(chǎn)生的,之所以稱為同步,是因?yàn)橹挥性谝粭l指令終止執(zhí)行后CPU才會(huì)發(fā)出中斷,如除法出錯(cuò)、調(diào)試、溢出和浮點(diǎn)出錯(cuò)等異步中斷(外部中斷),是由其他硬件設(shè)備隨機(jī)產(chǎn)生的,又分為外部可屏蔽中斷和外部不可屏蔽中斷。外部不可屏蔽中斷是由緊急事件引起的中斷,如硬件故障引

12、起中斷的原因:人為設(shè)置中斷、程序性故障、硬件故障、I/O設(shè)備和外部事件單重中斷的處理過(guò)程:系統(tǒng)管理中斷,保護(hù)斷點(diǎn),把當(dāng)前要執(zhí)行的下一條指令的地址保存到內(nèi)存中,以便中斷返回時(shí),能把這個(gè)地址恢復(fù)到程序計(jì)數(shù)器PC中,使被中斷的程序從斷點(diǎn)處開始繼續(xù)執(zhí)行轉(zhuǎn)中斷處理程序。在中斷處理程序中完成保護(hù)現(xiàn)場(chǎng)的工作,就是把相關(guān)的硬件上下文信息保存到內(nèi)存中,硬件上下文就是中斷返回恢復(fù)被中斷程序的執(zhí)行時(shí),需要寫回CPU寄存器的值保護(hù)完現(xiàn)場(chǎng)后,要根據(jù)中斷向量到中斷向量表中找到與中斷處理子例程入口地址相關(guān)信息,由這些信息得到中斷處理子例程的入口地址,以執(zhí)行中斷處理子例程,完成本次中斷處理的特定處理工作最后,恢復(fù)現(xiàn)場(chǎng),開中斷

13、,CPU返回?cái)帱c(diǎn)處繼續(xù)執(zhí)行被中斷的程序時(shí)鐘的重要性:時(shí)鐘是計(jì)算機(jī)系統(tǒng)的脈搏,計(jì)算機(jī)的很多活動(dòng)都是由定時(shí)測(cè)量來(lái)驅(qū)動(dòng)的;操作系統(tǒng)的內(nèi)核可以利用時(shí)鐘機(jī)制防止一個(gè)進(jìn)程壟斷CPU或其他資源;計(jì)算機(jī)中當(dāng)前時(shí)間顯示功能、即時(shí)通信程序等與時(shí)間相關(guān)的軟件都需要時(shí)鐘機(jī)制的支持大部分PC中有兩個(gè)時(shí)鐘源,分別稱為實(shí)時(shí)時(shí)鐘(RTC)和OS時(shí)鐘。RTC時(shí)鐘也稱CMOS時(shí)鐘,是一塊時(shí)鐘芯片,靠電池供電,為計(jì)算機(jī)提供計(jì)時(shí)標(biāo)準(zhǔn),是最原始、最底層的數(shù)據(jù)。OS時(shí)鐘產(chǎn)生于PC主板上的定時(shí)/計(jì)數(shù)芯片,在開機(jī)時(shí)有效,由操作系統(tǒng)控制操作系統(tǒng)內(nèi)核需要完成兩種主要的定時(shí)測(cè)量,一是保存當(dāng)前的日期和時(shí)間,以便能通過(guò)系統(tǒng)調(diào)用把它們返回給用戶程序,讓

14、用戶程序獲得當(dāng)前的日期和時(shí)間,也可以由內(nèi)核本身把當(dāng)前時(shí)間作為文件和網(wǎng)絡(luò)包的時(shí)間戳。二是維持定時(shí)器,這種機(jī)制能夠告訴內(nèi)核或用戶程序某一時(shí)間間隔已經(jīng)過(guò)去操作系統(tǒng)依靠時(shí)鐘硬件和時(shí)鐘驅(qū)動(dòng)程序完成上述兩種定時(shí)測(cè)量功能時(shí)鐘驅(qū)動(dòng)程序也成為時(shí)鐘中斷處理程序,每產(chǎn)生一次時(shí)鐘中斷信號(hào),操作系統(tǒng)內(nèi)核要執(zhí)行時(shí)鐘驅(qū)動(dòng)程序,時(shí)鐘驅(qū)動(dòng)程序完成如下功能:維護(hù)日期和時(shí)間;遞減當(dāng)前進(jìn)程在一個(gè)時(shí)間片內(nèi)的剩余執(zhí)行時(shí)間,并檢查是否為零,防止進(jìn)程運(yùn)行超時(shí);對(duì)CPU的使用情況記賬;遞減報(bào)警計(jì)數(shù)器系統(tǒng)調(diào)用是一群預(yù)先定義好的模塊,它們提供一條管道讓應(yīng)用程序或一般用戶能由此得到核心程序的服務(wù)。用戶空間是指用戶進(jìn)程所處的地址空間,一個(gè)用戶進(jìn)程不能

15、訪問(wèn)其他進(jìn)程的用戶空間,只有系統(tǒng)程序才能訪問(wèn)其他用戶空間。當(dāng)CPU執(zhí)行用戶空間的代碼時(shí),稱該進(jìn)程在用戶態(tài)執(zhí)行系統(tǒng)空間是指含有一切系統(tǒng)核心代碼的地址空間,當(dāng)CPU執(zhí)行系統(tǒng)核心代碼時(shí),稱進(jìn)程處于系統(tǒng)態(tài)執(zhí)行系統(tǒng)調(diào)用與一般函數(shù)的區(qū)別:系統(tǒng)調(diào)用運(yùn)行在系統(tǒng)態(tài)(核心態(tài)),而一般函數(shù)運(yùn)行在用戶態(tài)系統(tǒng)調(diào)用與一般函數(shù)調(diào)用的執(zhí)行過(guò)程不同。系統(tǒng)調(diào)用執(zhí)行時(shí),當(dāng)前進(jìn)程被中斷,由系統(tǒng)找到相應(yīng)的系統(tǒng)調(diào)用子程序,并在系統(tǒng)態(tài)下執(zhí)行,執(zhí)行結(jié)果返回進(jìn)程系統(tǒng)調(diào)用要進(jìn)行“中斷處理”,比一般函數(shù)調(diào)用多了一些系統(tǒng)開銷系統(tǒng)調(diào)用的類型:進(jìn)程控制類系統(tǒng)調(diào)用。創(chuàng)建、撤銷進(jìn)程;獲得、改變進(jìn)程屬性文件操縱類系統(tǒng)調(diào)用。創(chuàng)建、刪除、打開、關(guān)閉和讀/寫文件設(shè)

16、備管理類系統(tǒng)調(diào)用。請(qǐng)求、釋放設(shè)備通信類系統(tǒng)調(diào)用。打開、關(guān)閉連接,交換信息信息維護(hù)類系統(tǒng)調(diào)用。返回系統(tǒng)當(dāng)前日期、時(shí)間、版本號(hào)、用戶數(shù)、空閑內(nèi)存和磁盤空間大小等信息進(jìn)程同步的任務(wù):對(duì)具有資源共享關(guān)系的進(jìn)程,保證諸進(jìn)程以互斥的方式訪問(wèn)臨界資源對(duì)具有相互合作關(guān)系的進(jìn)程,保證相互合作的諸進(jìn)程協(xié)調(diào)執(zhí)行。同步機(jī)制應(yīng)遵循的準(zhǔn)則:空閑讓進(jìn)忙則等待有限等待讓權(quán)等待管程是描述共享資源的數(shù)據(jù)結(jié)構(gòu)和在數(shù)據(jù)結(jié)構(gòu)上的共享資源管理程序的集合。其中包括變量的定義、變量的初始化代碼,以及管理共享資源的過(guò)程管程的特征:管程是可供程序員調(diào)用的軟件包。進(jìn)程可以在任何需要調(diào)用的時(shí)候調(diào)用管程中的過(guò)程,但是他們不能再管程外的過(guò)程中直接訪問(wèn)管

17、程內(nèi)的數(shù)據(jù)結(jié)構(gòu)每次只有一個(gè)進(jìn)程調(diào)用管程執(zhí)行,任意時(shí)刻管程中只能有一個(gè)活躍進(jìn)程管程是一種編程語(yǔ)言的構(gòu)件,所以編譯器知道他們很特殊,并可以調(diào)用與其他過(guò)程不同的方法來(lái)處理他們。進(jìn)程之間的高級(jí)通信機(jī)制類型:共享存儲(chǔ)器系統(tǒng)。又分為基于共享數(shù)據(jù)結(jié)構(gòu)的通信方式和基于共享存儲(chǔ)區(qū)的通信方式消息傳遞系統(tǒng)。又分為直接通信方式和間接通信方式管道通信。管道是連續(xù)讀寫進(jìn)程的一個(gè)特殊文件,也稱為管道文件消息緩沖隊(duì)列。廣泛用于本地進(jìn)程直接的通信,該機(jī)制包括數(shù)據(jù)結(jié)構(gòu)、發(fā)送原語(yǔ)和接收原語(yǔ)。進(jìn)程是進(jìn)行資源分配和獨(dú)立執(zhí)行的基本單位,線程是被系統(tǒng)獨(dú)立調(diào)度和分派的基本單位引入線程的原因:由于進(jìn)程既是獨(dú)立執(zhí)行的基本單位,又是資源擁有者,在

18、進(jìn)程創(chuàng)建、撤銷和切換時(shí)需要較大的時(shí)空開銷,所以,系統(tǒng)中所設(shè)置的進(jìn)程數(shù)和進(jìn)程切換的頻率都收到了限制,影響了操作系統(tǒng)被冰封程度的提高。引入線程作為獨(dú)立調(diào)度和分派的單位,不獨(dú)立永不資源,而與其他線程共享同一進(jìn)程資源,減小了系統(tǒng)的時(shí)空開銷線程的實(shí)質(zhì)是把進(jìn)程的任務(wù)劃分成更小、具有獨(dú)立功能的單位,以線程的形式來(lái)并發(fā)執(zhí)行,以提高程序并發(fā)執(zhí)行的程度。線程是進(jìn)程中的一個(gè)實(shí)體,是被系統(tǒng)獨(dú)立調(diào)度和分派的基本單位。線程只擁有在運(yùn)行中必須的資源,包括程序計(jì)數(shù)器、一組寄存器和棧,但是它可以與同屬一個(gè)進(jìn)程的其他線程共享進(jìn)程所擁有的全部資源。一個(gè)線程可以創(chuàng)建和撤銷另一個(gè)線程。同一進(jìn)程中的多個(gè)線程可以并發(fā)執(zhí)行線程的實(shí)現(xiàn)可以分為

19、兩類,即用戶級(jí)線程和內(nèi)核級(jí)線程。內(nèi)核級(jí)線程依賴于內(nèi)核,用戶級(jí)線程不依賴于內(nèi)核,用戶級(jí)線程的創(chuàng)建、撤銷和切換都與內(nèi)核無(wú)關(guān)線程與進(jìn)程的關(guān)系:資源和調(diào)度。線程是程序執(zhí)行的基本單位,進(jìn)程是擁有資源的基本單位地址空間資源。不同進(jìn)程的地址空間是相互獨(dú)立的,而同一進(jìn)程中的各線程共享同一地址空間通信關(guān)系。進(jìn)程之間的通信必須使用操作系統(tǒng)提供的進(jìn)程間通信機(jī)制,而同一進(jìn)程中的各線程間可以通過(guò)之間讀或?qū)懭肿兞縼?lái)進(jìn)行通信,甚至無(wú)需操作系統(tǒng)的參與并發(fā)性。多進(jìn)程之間可以并發(fā)執(zhí)行,多線程之間也可以并發(fā)執(zhí)行,而且同一進(jìn)程中的多個(gè)線程之間也可以并發(fā)執(zhí)行系統(tǒng)開銷。由于創(chuàng)建進(jìn)程或撤銷進(jìn)程時(shí),系統(tǒng)都要為之分配或回收資源,操作系統(tǒng)所付

20、出的開銷遠(yuǎn)大于創(chuàng)建或撤銷線程時(shí)的開銷用戶線程的創(chuàng)建時(shí)通過(guò)調(diào)用線程庫(kù)中的實(shí)用程序完成的。內(nèi)核線程的創(chuàng)建是由內(nèi)核完成的線程的終止的原因:正常結(jié)束、異常結(jié)束、外界干預(yù)線程同步機(jī)制有原語(yǔ)操作和信號(hào)量機(jī)制不同進(jìn)程的線程間通信,必須使用操作系統(tǒng)提供的線程間通信機(jī)制進(jìn)程調(diào)度與死鎖進(jìn)程調(diào)度功能由操作系統(tǒng)內(nèi)核的進(jìn)程調(diào)度程序完成的。進(jìn)程調(diào)度的功能是按照某種策略和算法從就緒態(tài)進(jìn)程中為當(dāng)前空閑的CPU選擇在其上運(yùn)行的新進(jìn)程進(jìn)程調(diào)度的時(shí)機(jī):當(dāng)一個(gè)進(jìn)程運(yùn)行結(jié)束(包括正常結(jié)束和異常結(jié)束)、進(jìn)程阻塞、中斷返回、在支持搶占式調(diào)度的系統(tǒng)中有比當(dāng)前運(yùn)行進(jìn)程優(yōu)先級(jí)更高的進(jìn)程到來(lái)、當(dāng)前運(yùn)行進(jìn)程的時(shí)間片用完時(shí),系統(tǒng)都會(huì)通過(guò)執(zhí)行進(jìn)程調(diào)度程

21、序重新進(jìn)行進(jìn)程調(diào)度選擇調(diào)度方式和算法的若干準(zhǔn)則:周轉(zhuǎn)時(shí)間短響應(yīng)時(shí)間快截止時(shí)間的保證系統(tǒng)吞吐量高處理機(jī)利用率好調(diào)度算法:先來(lái)先服務(wù)調(diào)度算法(FCFS),適合長(zhǎng)進(jìn)程,不利于短進(jìn)程短進(jìn)程優(yōu)先調(diào)度算法(SPF),對(duì)長(zhǎng)進(jìn)程不理,不能保證緊迫進(jìn)程的及時(shí)處理,進(jìn)程的長(zhǎng)短根據(jù)用戶的估計(jì)而定,故不一定能真正做到短進(jìn)程優(yōu)先。優(yōu)先權(quán)調(diào)度算法,又分為非搶占式優(yōu)先權(quán)調(diào)度算法和搶占式優(yōu)先權(quán)調(diào)度算法時(shí)間片輪轉(zhuǎn)調(diào)度算法,是現(xiàn)代分時(shí)系統(tǒng)中廣泛使用的進(jìn)程調(diào)度算法。時(shí)間片是一個(gè)較小的時(shí)間單元,通常是10100ms,用戶進(jìn)程分配的時(shí)間片大小一般為50ms多級(jí)隊(duì)列調(diào)度多級(jí)反饋隊(duì)列調(diào)度優(yōu)先權(quán)調(diào)度算法的一個(gè)主要問(wèn)題是無(wú)窮阻塞,或稱饑餓問(wèn)題

22、低優(yōu)先權(quán)進(jìn)程無(wú)窮等待問(wèn)題的解決方案之一是老化技術(shù)時(shí)間片大小確定時(shí)考慮的因素:系統(tǒng)對(duì)響應(yīng)時(shí)間的要求就緒隊(duì)列中進(jìn)程的數(shù)目系統(tǒng)的處理能力實(shí)現(xiàn)實(shí)時(shí)調(diào)度的基本條件:提供必要的調(diào)度信息、系統(tǒng)處理能力強(qiáng)、采用搶占式調(diào)度機(jī)制、具有快速切換機(jī)制為了實(shí)現(xiàn)實(shí)時(shí)調(diào)用,必要的調(diào)度信息包括就緒時(shí)間、開始截止時(shí)間和完成截止時(shí)間、處理時(shí)間、資源要求和優(yōu)先級(jí)在實(shí)時(shí)系統(tǒng)中廣泛采用搶占式調(diào)度,可以滿足實(shí)時(shí)進(jìn)程對(duì)截止時(shí)間的要求。搶占式調(diào)度算法根據(jù)搶占CPU的時(shí)機(jī)不同,可以分為基于時(shí)鐘中斷的搶占和立即搶占。立即搶占調(diào)度策略中,一旦接收到觸發(fā)實(shí)時(shí)進(jìn)程運(yùn)行的信號(hào),這通常是一個(gè)外部中斷信號(hào),系統(tǒng)立即剝奪當(dāng)前進(jìn)程的CPU,把他分配給請(qǐng)求中斷的

23、新的實(shí)時(shí)進(jìn)程??焖偾袚Q機(jī)制具有兩個(gè)方面的能力對(duì)外部中斷的快速響應(yīng)能力??焖俚倪M(jìn)程切換能力。常用的幾種實(shí)時(shí)調(diào)度算法:最早截止時(shí)間優(yōu)先算法(EDF)和最低松弛度優(yōu)先算法(LLF)松弛度用來(lái)表示一個(gè)實(shí)時(shí)進(jìn)程的緊迫程度進(jìn)程切換的步驟:保存包括程序計(jì)數(shù)器和其它寄存器在內(nèi)的CPU上下文環(huán)境更新被替換進(jìn)程的進(jìn)程控制塊修改進(jìn)程狀態(tài),把執(zhí)行態(tài)改為就緒態(tài)或阻塞態(tài)將被替換進(jìn)程的進(jìn)程控制塊移到就緒隊(duì)列或阻塞隊(duì)列執(zhí)行通過(guò)進(jìn)程調(diào)度程序選擇的新進(jìn)程,并更新該進(jìn)程的進(jìn)程控制塊更新內(nèi)存管理的數(shù)據(jù)結(jié)構(gòu)恢復(fù)被調(diào)度程序選中的進(jìn)程的硬件上下文對(duì)處理器系統(tǒng)有多種不同的分類方式,根據(jù)處理器的耦合程度,可以把多處理器系統(tǒng)分為緊密耦合多處理器

24、系統(tǒng)和松弛耦合多處理器系統(tǒng);根據(jù)處理器結(jié)構(gòu)是否相同,可以把多處理器系統(tǒng)分為對(duì)稱多處理器系統(tǒng)和非對(duì)稱多處理器系統(tǒng)對(duì)于非對(duì)稱多處理器系統(tǒng),大多數(shù)采用主從式操作系統(tǒng),即操作系統(tǒng)的核心部分駐留在一臺(tái)主機(jī)上,而從機(jī)上只運(yùn)行用戶程序,只有主機(jī)執(zhí)行調(diào)度程序,所有從機(jī)的進(jìn)程都是由主機(jī)分配的多處理器的調(diào)度方法:自調(diào)度、成組調(diào)度和專用處理器分配自調(diào)度算法是當(dāng)前多處理器系統(tǒng)中最常用的調(diào)度方式之一,也是最簡(jiǎn)單的一種調(diào)度方式。就是設(shè)置一個(gè)公共的就緒隊(duì)列,任何一個(gè)空閑的處理器都可以自行從該就緒隊(duì)列中選取一個(gè)進(jìn)程或一個(gè)線程運(yùn)行自調(diào)度的優(yōu)點(diǎn):宜移植和有利于提高CPU的利用率自調(diào)度方式的缺點(diǎn)是:瓶頸問(wèn)題、低效率和線程切換頻繁成

25、組調(diào)度是由系統(tǒng)將一組相互合作的進(jìn)程或線程同時(shí)分配到一組處理器上運(yùn)行,進(jìn)程或線程與處理器一一對(duì)應(yīng)。其優(yōu)點(diǎn)是減少線程切換,改善系統(tǒng)性能和減少調(diào)度開銷專用處理器的優(yōu)點(diǎn)是加速了應(yīng)用程序的運(yùn)行速度和避免了進(jìn)程切換產(chǎn)生死鎖的原因是:競(jìng)爭(zhēng)共享資源且分配資源的順序不當(dāng)死鎖產(chǎn)生的必要條件是必須同時(shí)滿足4個(gè)條件,分別是:互斥條件、請(qǐng)求和保持條件、不剝奪條件、環(huán)路等待條件處理死鎖的基本方法有預(yù)防死鎖、避免死鎖、檢測(cè)并解除死鎖和忽略死鎖問(wèn)題。操作系統(tǒng)可以采用死鎖預(yù)防或死鎖避免方案死鎖的預(yù)防:摒棄請(qǐng)求和保持條件、摒棄不剝奪條件、摒棄環(huán)路等待條件摒棄請(qǐng)求和保持條件是系統(tǒng)要求所有進(jìn)程執(zhí)行前要一次性地申請(qǐng)?jiān)谡麄€(gè)運(yùn)行過(guò)程中所需

26、要的全部資源,只要有一個(gè)資源申請(qǐng)不成功,其他所有資源也不分配給該進(jìn)程,并阻塞該進(jìn)程摒棄不剝奪條件是一個(gè)已保持了某些資源的進(jìn)程,當(dāng)它再提出新的資源要求而不能立即得到滿足時(shí),必須釋放它已經(jīng)保持的所有資源摒棄環(huán)路登錄的方法是指進(jìn)程必須按規(guī)定的順序申請(qǐng)資源,對(duì)所有不同類型的資源排序,要求每個(gè)進(jìn)程按規(guī)定的順序申請(qǐng)資源死鎖的避免的方法是把系統(tǒng)的資源的分配狀態(tài)分為安全狀態(tài)和不安全狀態(tài),只要資源分配使系統(tǒng)資源分配狀態(tài)處于安全狀態(tài),死鎖就不會(huì)發(fā)生。在避免死鎖的方法中,允許進(jìn)程動(dòng)態(tài)地申請(qǐng)資源。系統(tǒng)在資源分配之前,先計(jì)算資源分配的安全性,若本次資源分配不會(huì)導(dǎo)致系統(tǒng)進(jìn)入不安全狀態(tài),便將資源分配給進(jìn)程,否則拒絕進(jìn)程的資

27、源請(qǐng)求,進(jìn)程阻塞起來(lái)不安全狀態(tài)不一定是死鎖狀態(tài),但當(dāng)系統(tǒng)進(jìn)入不安全狀態(tài)之后,便可能進(jìn)入死鎖狀態(tài)。避免進(jìn)程死鎖的實(shí)質(zhì)在于使系統(tǒng)處于安全狀態(tài)。銀行家算法的基本思想是一個(gè)進(jìn)程提出資源請(qǐng)求后,系統(tǒng)先進(jìn)行資源的試分配,然后檢查本次的試分配是否使系統(tǒng)處于安全狀態(tài),若安全則按試分配方案分配資源,否則不分配資源。調(diào)用檢測(cè)算法的時(shí)機(jī):死鎖可能發(fā)生的頻率和當(dāng)死鎖發(fā)生時(shí)受影響的進(jìn)程數(shù)量死鎖定理:S為死鎖狀態(tài)的充分條件是當(dāng)且僅當(dāng)S狀態(tài)的資源分配圖是不可完全簡(jiǎn)化的。死鎖定理用于檢測(cè)系統(tǒng)所處的資源分配狀態(tài)S是否為死鎖狀態(tài)解除死鎖的途徑:終止處于死鎖狀態(tài)的進(jìn)程和搶占死鎖進(jìn)程占有的資源 內(nèi)存管理存儲(chǔ)器系統(tǒng)是一個(gè)具有不同容量、

28、成本和訪問(wèn)時(shí)間的存儲(chǔ)設(shè)備的層次結(jié)構(gòu)程序的執(zhí)行遵循局部性原理,局部性原理表現(xiàn)在時(shí)間和空間的局部性時(shí)間局部性,如果程序中的某一條指令一旦執(zhí)行,則不久后該指令可能再次執(zhí)行空間局部性,一旦程序訪問(wèn)了某個(gè)單元,在不久后,其附近的存儲(chǔ)單元也將被訪問(wèn)CPU寄存器保存最常用的數(shù)據(jù)程序執(zhí)行的局部性原理的幾個(gè)論點(diǎn):程序在執(zhí)行時(shí),除了少部分的轉(zhuǎn)移和過(guò)程調(diào)用指令以外,在大多數(shù)情況下是順序執(zhí)行的過(guò)程調(diào)用將會(huì)使程序的執(zhí)行軌跡由一部分內(nèi)存區(qū)域轉(zhuǎn)到另一部分內(nèi)存區(qū)域程序中存在很多循環(huán)結(jié)構(gòu),他們雖然由少數(shù)指令構(gòu)成,但多次執(zhí)行程序中往往包括許多對(duì)數(shù)據(jù)結(jié)構(gòu)的處理高級(jí)語(yǔ)言程序必須經(jīng)過(guò)編譯、鏈接才能成為可執(zhí)行程序,操作系統(tǒng)需要為程序的執(zhí)

29、行分配內(nèi)存空間。鏈接程序不屬于操作系統(tǒng)的構(gòu)成部分,但是它為操作系統(tǒng)提供可裝入的程序模塊鏈接程序要解決的問(wèn)題是將編譯后的目標(biāo)模塊裝配稱一個(gè)可執(zhí)行的程序根據(jù)鏈接進(jìn)行的時(shí)間和實(shí)現(xiàn)方式的不同,可以把鏈接分為靜態(tài)鏈接和動(dòng)態(tài)鏈接靜態(tài)鏈接是在程序運(yùn)行前,用鏈接程序?qū)⒛繕?biāo)模塊鏈接稱一個(gè)完整的裝入模塊。靜態(tài)鏈接程序的任務(wù)是對(duì)邏輯地址進(jìn)行修改和變換外部調(diào)用符號(hào)靜態(tài)鏈接的缺點(diǎn)是程序開發(fā)不夠靈活、方便,修改某一個(gè)模塊會(huì)導(dǎo)致整個(gè)程序的重新鏈接動(dòng)態(tài)鏈接可將某些目標(biāo)模塊的鏈接推遲到這些模塊中的函數(shù)被調(diào)用執(zhí)行時(shí)才進(jìn)行動(dòng)態(tài)鏈接的優(yōu)點(diǎn)是節(jié)省內(nèi)存和外存空間,方便程序開發(fā)將一個(gè)用戶的源程序變?yōu)橐粋€(gè)可在內(nèi)存中執(zhí)行的程序,通常要經(jīng)過(guò)編譯

30、、鏈接和裝入3個(gè)階段多數(shù)系統(tǒng)允許操作系統(tǒng)將用戶進(jìn)程放在物理內(nèi)存的任意位置根據(jù)形成在內(nèi)存中物理地址的時(shí)機(jī)不同,把程序的裝入分為絕對(duì)裝入方式、可重定位裝入方式(靜態(tài)重定位)和動(dòng)態(tài)運(yùn)行時(shí)裝入方式在程序裝入時(shí)對(duì)目標(biāo)程序中的指令和數(shù)據(jù)地址修改過(guò)程稱為重定位可重定位方式的特點(diǎn):編譯程序使目標(biāo)模塊的起始地址從0開始程序裝入時(shí),裝入程序根據(jù)內(nèi)存的使用情況將裝入模塊裝入到內(nèi)存的某個(gè)位置,并對(duì)模塊進(jìn)行重定位程序在裝入內(nèi)存后,還可能從內(nèi)存的一個(gè)區(qū)域移動(dòng)到另一區(qū)域,這種情況可能發(fā)生在支持虛擬存儲(chǔ)的系統(tǒng)中一個(gè)進(jìn)程在被換出之前所在的內(nèi)存位置與后來(lái)被從外從中重新調(diào)入內(nèi)存時(shí)所在的內(nèi)存位置不同,在這種情況下,地址映射必須延遲到

31、進(jìn)程執(zhí)行時(shí)再進(jìn)行,把這種裝入方式稱為動(dòng)態(tài)運(yùn)行時(shí)裝入連續(xù)分配是指操作系統(tǒng)分配內(nèi)存時(shí),為每個(gè)進(jìn)程分配一塊物理地址連續(xù)的內(nèi)存空間連續(xù)分配方式有單一連續(xù)區(qū)分配方式、固定分區(qū)分配方式和動(dòng)態(tài)分區(qū)分配方式單一連續(xù)分配方式僅適用于單用戶、單任務(wù)的系統(tǒng)在單用戶、單任務(wù)操作系統(tǒng)中較常用的方法是設(shè)置一個(gè)基址寄存器和一個(gè)界限寄存器固定分區(qū)分配實(shí)現(xiàn)簡(jiǎn)單,但是由于每個(gè)分區(qū)的大小固定,必然造成存儲(chǔ)空間的浪費(fèi),使內(nèi)存利用率低下。在一些實(shí)時(shí)控制系統(tǒng)中,使用固定分區(qū)分配還是簡(jiǎn)單而有效的動(dòng)態(tài)分區(qū)分配算法的原理:系統(tǒng)初始只有一個(gè)大空閑區(qū),當(dāng)進(jìn)程請(qǐng)求空間時(shí),由系統(tǒng)根據(jù)進(jìn)程需要的空間大小劃分出一片空閑區(qū)分配給進(jìn)程。系統(tǒng)允許一段時(shí)間后,內(nèi)

32、存的空閑區(qū)可能散步在不連續(xù)的區(qū)域。系統(tǒng)維護(hù)一個(gè)記錄當(dāng)前空閑分區(qū)情況的數(shù)據(jù)結(jié)構(gòu),當(dāng)進(jìn)程請(qǐng)求內(nèi)存時(shí),系統(tǒng)從所有空閑區(qū)中找到大小合適的空閑區(qū)進(jìn)行分配。系統(tǒng)中分區(qū)的大小和數(shù)量都是變化的,空閑區(qū)的大小和數(shù)量也是變化的動(dòng)態(tài)分區(qū)分配算法包括首次適應(yīng)算法、循環(huán)首次適應(yīng)算法和最佳適應(yīng)算法循環(huán)首次適應(yīng)算法優(yōu)點(diǎn)是:空閑區(qū)分布均勻、查找開銷較小。缺點(diǎn)是容易是系統(tǒng)缺乏大空閑區(qū)最佳適應(yīng)算法的優(yōu)點(diǎn)是避免了大材小用,能提高內(nèi)存利用率,但是容易留下難以利用的小空閑區(qū)把進(jìn)程離散地存儲(chǔ)在內(nèi)存中物理地址不連續(xù)的區(qū)域中,這種內(nèi)存管理方式稱為離散內(nèi)存管理方式,該方法是為了支持虛擬內(nèi)存管理根據(jù)離散內(nèi)存管理分配內(nèi)存空間的基本單位不同,分位三

33、種不同的管理方式:分頁(yè)存儲(chǔ)管理、分段存儲(chǔ)管理和段頁(yè)式存儲(chǔ)管理將一個(gè)進(jìn)程的邏輯地址空間分成若干個(gè)大小相等的片,稱為頁(yè)將物理內(nèi)存空間分成與頁(yè)大小相同的若干個(gè)存儲(chǔ)塊,稱為頁(yè)框或頁(yè)幀在為進(jìn)程分配內(nèi)存時(shí),以頁(yè)框?yàn)閱挝粚⑦M(jìn)程中的若干頁(yè)分別裝入多個(gè)可以不相鄰的頁(yè)框中進(jìn)程的最后一頁(yè)一般裝不滿一個(gè)頁(yè)框,而形成了不可利用的碎片,稱為“業(yè)內(nèi)碎片”,是一種內(nèi)部碎片頁(yè)表是系統(tǒng)為進(jìn)程建立的數(shù)據(jù)結(jié)構(gòu),頁(yè)表的作用是實(shí)現(xiàn)從頁(yè)號(hào)到頁(yè)框號(hào)的映射基于分頁(yè)的邏輯地址結(jié)構(gòu)包含兩部分:頁(yè)號(hào)P和頁(yè)內(nèi)偏移量W在分頁(yè)系統(tǒng)中,頁(yè)的大小是由機(jī)器的體系結(jié)構(gòu)和操作系統(tǒng)共同決定的。一般頁(yè)的大小為2的整數(shù)次冪,在目前的計(jì)算機(jī)系統(tǒng)中,大多數(shù)選擇4KB大小的頁(yè)

34、影響頁(yè)大小設(shè)計(jì)的因素有:管理內(nèi)存的開銷和內(nèi)存的利用率為了減少CPU在有效訪存上的時(shí)間開銷,提高訪存速度,在硬件上引入了快表機(jī)制快表也稱轉(zhuǎn)換后援緩沖(TLB),是為提高CPU訪存速度而采用的專用緩存,用來(lái)存放最近被訪問(wèn)過(guò)的頁(yè)表項(xiàng)TLB是關(guān)聯(lián)的快速閃存。TLB的條目由兩部分組成:鍵和值。鍵對(duì)應(yīng)頁(yè)號(hào),值對(duì)應(yīng)頁(yè)所在的頁(yè)框號(hào)引入TLB之后的地址變換過(guò)程:CPU產(chǎn)生分頁(yè)的邏輯地址頁(yè)號(hào)和頁(yè)內(nèi)偏移后,將該邏輯地址的頁(yè)號(hào)提交給TLB查找TLB,如果找到頁(yè)號(hào),則把該頁(yè)所在的頁(yè)框號(hào)用于形成物理地址,否則查找內(nèi)存頁(yè)表,從內(nèi)存頁(yè)表中找到相應(yīng)的頁(yè)表項(xiàng),讀取頁(yè)所在的頁(yè)框號(hào),以形成物理地址如果所查找的頁(yè)表項(xiàng)不在TLB中,在訪

35、問(wèn)完內(nèi)存頁(yè)表后,要把找到的頁(yè)表項(xiàng)中的頁(yè)號(hào)和頁(yè)框號(hào)寫到TLB中,如果TLB中的條目已滿,系統(tǒng)會(huì)根據(jù)某種策略選擇一個(gè)TLB中的條目,用剛訪問(wèn)的頁(yè)表項(xiàng)信息替換選中的這個(gè)TLB條目在二級(jí)分頁(yè)系統(tǒng)中,為了能在地址映射時(shí)得到離散存放的頁(yè)表在物理內(nèi)存中的地址,需要為頁(yè)表再建立一個(gè)連續(xù)存放的外層頁(yè)表,本書也稱為頁(yè)目錄表。頁(yè)目錄表的表項(xiàng)中存放了每個(gè)頁(yè)表再物理內(nèi)存中所在的頁(yè)框號(hào)。 虛擬存儲(chǔ)器是指具有請(qǐng)求調(diào)入和置換功能,能從邏輯上對(duì)內(nèi)存容量進(jìn)行擴(kuò)充的一種存儲(chǔ)器系統(tǒng)。虛擬存儲(chǔ)技術(shù)實(shí)現(xiàn)的基本思想是,只把進(jìn)程的一部分裝入內(nèi)存。虛擬存儲(chǔ)技術(shù)帶來(lái)的好處是:提高內(nèi)存的利用率。因?yàn)樘摂M存儲(chǔ)技術(shù)只把進(jìn)程的一部分裝入內(nèi)存,原則上盡量

36、吧必須或常用的部分裝入內(nèi)存提高多道程序度。因?yàn)橹话衙總€(gè)進(jìn)程的一部分裝入內(nèi)存,因此可以在內(nèi)存中裝入更多的進(jìn)程把邏輯地址空間和物理地址空間分開,使程序員不用關(guān)心物理內(nèi)存的容量對(duì)編程的限制虛擬存儲(chǔ)系統(tǒng)具有的主要特征:離散性。離散性是指進(jìn)程可以分散地存儲(chǔ)在物理內(nèi)存中。分頁(yè)、分段和段頁(yè)式存儲(chǔ)都屬于離散的內(nèi)存管理方式。離散性是實(shí)現(xiàn)虛擬存儲(chǔ)管理的基礎(chǔ)多次性。多次性是指不必把進(jìn)程一次性全部裝入內(nèi)存,可以先將執(zhí)行當(dāng)前進(jìn)程所必須的部分代碼和數(shù)據(jù)裝入內(nèi)存,其余部分等進(jìn)程運(yùn)行需要時(shí)再裝入,可以將進(jìn)程分多次裝入內(nèi)存對(duì)換性。對(duì)換性是指在內(nèi)存中進(jìn)程可以換出,以騰出內(nèi)存空間換入外存中的進(jìn)程。虛擬性。虛擬性是指虛擬存儲(chǔ)系統(tǒng)為用

37、戶提供了比實(shí)際物理內(nèi)存大的邏輯內(nèi)存空間,使程序員不必再編輯時(shí)受物理內(nèi)存空間大小的限制。虛擬性是實(shí)現(xiàn)虛擬存儲(chǔ)系統(tǒng)的重要的目標(biāo)請(qǐng)求分頁(yè)系統(tǒng)是最基本、最常用的虛擬存儲(chǔ)系統(tǒng)的實(shí)現(xiàn)方式。頁(yè)表是支持請(qǐng)求分頁(yè)系統(tǒng)最重要的數(shù)據(jù)結(jié)構(gòu),其作用是記錄描述頁(yè)的各種數(shù)據(jù),包括在實(shí)現(xiàn)邏輯地址到物理地址映射時(shí)需要的頁(yè)號(hào)與頁(yè)框號(hào)的對(duì)應(yīng)關(guān)系。除了頁(yè)號(hào)和頁(yè)框號(hào)之外,頁(yè)表中增加了請(qǐng)求換入和置換是需要的數(shù)據(jù)。缺頁(yè)異常機(jī)構(gòu)的主要作用是在訪問(wèn)內(nèi)存過(guò)程中發(fā)現(xiàn)缺頁(yè)時(shí)產(chǎn)生缺頁(yè)異常信號(hào),使CPU中斷當(dāng)前控制流的執(zhí)行,轉(zhuǎn)去執(zhí)行操作系統(tǒng)的缺頁(yè)異常處理程序,完成請(qǐng)求調(diào)頁(yè)。具體過(guò)程如下:分頁(yè)硬件通過(guò)頁(yè)表完成邏輯地址到物理地址的映射時(shí),通過(guò)檢查頁(yè)表中的狀

38、態(tài)位P,判斷當(dāng)前被訪問(wèn)的頁(yè)是否在內(nèi)存中,如果不在,產(chǎn)生缺頁(yè)異常信號(hào)執(zhí)行操作系統(tǒng)的缺頁(yè)異常處理過(guò)程,先在內(nèi)存中為請(qǐng)求調(diào)入的頁(yè)找一個(gè)空閑頁(yè)框。然后,調(diào)度磁盤操作,把需要的頁(yè)裝入找到的空閑頁(yè)框中修改頁(yè)表,更新已經(jīng)調(diào)入也的存在位、在內(nèi)存中的頁(yè)框號(hào)、訪問(wèn)位和保護(hù)位等字段的值重新開始執(zhí)行因缺頁(yè)而被中斷的指令在請(qǐng)求分頁(yè)系統(tǒng)中,從分配給進(jìn)程的頁(yè)框數(shù)量上來(lái)看,可以采用固定分配和可變分配策略從選擇淘汰頁(yè)的侯選頁(yè)是請(qǐng)求調(diào)入頁(yè)的進(jìn)程頁(yè)還是系統(tǒng)中的所有用戶進(jìn)程頁(yè)來(lái)看,可以采用局部置換和全局置換兩種策略最佳置換算法主要用于理論研究先進(jìn)先出頁(yè)置換算法(FIFO)實(shí)現(xiàn)簡(jiǎn)單,但是效率較低,會(huì)導(dǎo)致較高的缺頁(yè)率FIFO是最簡(jiǎn)單的頁(yè)

39、置換算法LRU算法是廣泛使用的性能較好的算法。(最近最久未使用置換算法)計(jì)算機(jī)系統(tǒng)要提供足夠的硬件來(lái)支持LRU算法是比較困難的,許多系統(tǒng)在實(shí)現(xiàn)時(shí)都采用LRU的近似算法,如附加引用算法、簡(jiǎn)單Clock算法和改進(jìn)型Clock算法等引入工作集機(jī)制是為了能有效降低缺頁(yè)率,從而提高訪存的時(shí)間效率多道程序度太高,使運(yùn)行進(jìn)程的大部分時(shí)間都用于進(jìn)行頁(yè)的換入、換出,而幾乎不能完成任何有效工作的狀態(tài)稱為抖動(dòng)。引起抖動(dòng)的主要原因是系統(tǒng)中的進(jìn)程數(shù)量太多,每個(gè)進(jìn)程能分配到的頁(yè)框太少,以至于進(jìn)程運(yùn)行過(guò)程中頻繁請(qǐng)求調(diào)頁(yè)抖動(dòng)的預(yù)防:采取局部置換策略、在CPU調(diào)度程序中引入工作集算法和掛起若干進(jìn)程。在使用分段存儲(chǔ)管理的系統(tǒng)中,

40、程序員使用二維的邏輯地址,一個(gè)數(shù)用來(lái)表示段,另一個(gè)數(shù)用來(lái)表示段內(nèi)偏移。引入分段機(jī)制的優(yōu)點(diǎn)是方便編程、分段共享、分段保護(hù)、動(dòng)態(tài)鏈接以及存儲(chǔ)空間的動(dòng)態(tài)增長(zhǎng)段表是由操作系統(tǒng)維護(hù)的用于支持分段存儲(chǔ)管理地址映射的數(shù)據(jù)結(jié)構(gòu)。每個(gè)進(jìn)程有一個(gè)段表,段表有段表項(xiàng)構(gòu)成。每個(gè)段表項(xiàng)包含段號(hào)、段基址和段長(zhǎng)3個(gè)部分。一個(gè)進(jìn)程可能包含若干個(gè)段,每個(gè)段在段表中有一個(gè)段表項(xiàng)與之對(duì)應(yīng)分頁(yè)和分段的主要區(qū)別:頁(yè)是按物理單位劃分的,分頁(yè)的引入是為了提高內(nèi)存的利用率和支持虛擬存儲(chǔ)。而段是按邏輯單位劃分的,一個(gè)段含有一組意義相對(duì)完整的信息,引入分段的目的是為了方便程序員編輯頁(yè)的大小是固定的,而段的大小不固定,取決于用戶編寫的程序和編譯器

41、分頁(yè)的地址空間是一維的,分段的地址空間是二維的,文件系統(tǒng)文件系統(tǒng)的用戶接口包括文件的命名、類型、屬性和對(duì)文件的操作多數(shù)操作系統(tǒng)都支持文件名用圓點(diǎn)隔開分為兩部分。圓點(diǎn)后面的部分稱為文件擴(kuò)展名文件結(jié)構(gòu)分為無(wú)結(jié)構(gòu)字節(jié)序列、固定長(zhǎng)度記錄序列和樹形結(jié)構(gòu)無(wú)結(jié)構(gòu)字節(jié)序列文件也稱為流式文件。文件的類型有正規(guī)文件、目錄文件、字符設(shè)備文件和塊設(shè)備文件。正規(guī)文件包含用戶信息,一般分為ASCII文件和二進(jìn)制文件。目錄文件是用于管理文件的系統(tǒng)文件。字符設(shè)備文件和輸入/輸出有關(guān),用于串行I/O類設(shè)備,如終端、打印機(jī)和網(wǎng)絡(luò)等。塊設(shè)備文件用于磁盤類設(shè)備ASCII文件的明顯優(yōu)勢(shì)是可以顯示和打印,也可以用通常的文本編輯器進(jìn)行編輯

42、二進(jìn)制文件具有一定的內(nèi)部機(jī)構(gòu),通常的文本編輯器不能直接顯示或打印二進(jìn)制文件文件的存取方式是由文件的性質(zhì)和用戶使用文件的情況確定的,常用文件存取方式有兩種:順序存取和隨機(jī)存取文件的創(chuàng)建日期、文件大小和修改時(shí)間等,這些附加信息稱為文件屬性文件系統(tǒng)通常提供目錄或文件夾用于記錄文件,很多系統(tǒng)中目錄本身也是文件,目錄是文件系統(tǒng)中實(shí)現(xiàn)按名訪問(wèn)文件的重要數(shù)據(jù)結(jié)構(gòu)目錄文件有兩種常見(jiàn)的數(shù)據(jù)結(jié)構(gòu):屬性放在目錄項(xiàng)中和放在i結(jié)點(diǎn)中文件目錄的組織和管理是文件管理的一個(gè)重要方面,包括單層目錄、兩級(jí)目錄和樹形目錄使用兩級(jí)目錄的優(yōu)點(diǎn)是解決了文件的重命名問(wèn)題和文件共享問(wèn)題,查找實(shí)際降低,缺點(diǎn)是增加了系統(tǒng)的存儲(chǔ)開銷樹形目錄的優(yōu)點(diǎn)

43、是便于文件的分類,層次結(jié)構(gòu)清晰,便于管理和保護(hù),解決了重命名問(wèn)題,查找速度加快。缺點(diǎn)是查找一個(gè)文件按路徑名逐層查找,由于每個(gè)文件都放在外存中,多次訪問(wèn)磁盤會(huì)影響速度,結(jié)構(gòu)相對(duì)復(fù)雜用目錄樹組織文件系統(tǒng)是,需要有某種方法指明文件名,常用的方法有兩種:絕對(duì)路徑名和相對(duì)路徑名實(shí)現(xiàn)文件存儲(chǔ)的常用方式有連續(xù)分配、使用磁盤鏈接表的分配、使用內(nèi)存的鏈接表分配和i-結(jié)點(diǎn)把分配給文件的連續(xù)扇區(qū)構(gòu)成的磁盤塊稱為簇連續(xù)分配的優(yōu)點(diǎn):實(shí)現(xiàn)簡(jiǎn)單和讀操作性能好連續(xù)分配的缺點(diǎn):隨著時(shí)間的推移,磁盤會(huì)變得零碎磁盤鏈接表的優(yōu)點(diǎn)是可以充分利用每個(gè)簇,不會(huì)因?yàn)榇疟P碎片而浪費(fèi)存儲(chǔ)空間,管理也比較簡(jiǎn)單,缺點(diǎn)是隨機(jī)存取相當(dāng)緩慢使用內(nèi)存的鏈接

44、表分配是將文件所在的磁盤的簇號(hào)放在內(nèi)存的表中。該方法不適合大容量的磁盤MS-DOS使用的是使用內(nèi)存的鏈接表分配方法進(jìn)行磁盤分配文件系統(tǒng)為文件分配磁盤空間是以簇為單位的。一般簇的大小是2的整數(shù)次冪個(gè)連續(xù)的扇區(qū)記錄空閑塊一般使用空閑簇鏈接表和位圖兩種方法I/O設(shè)備管理計(jì)算機(jī)系統(tǒng)中的I/O設(shè)備即輸入/輸出設(shè)備是用于計(jì)算機(jī)系統(tǒng)與人通信或與其他機(jī)器通信的所有設(shè)備,以及所有外存設(shè)備I/O系統(tǒng)的結(jié)構(gòu)分為微機(jī)I/O系統(tǒng)和主機(jī)I/O系統(tǒng)I/O系統(tǒng)可采用四級(jí)結(jié)構(gòu),包括主機(jī)、通道、控制器和設(shè)備I/O設(shè)備的分類按傳輸速率分類低速設(shè)備。如鍵盤和鼠標(biāo)中速設(shè)備。如打印機(jī)高速設(shè)備。如磁帶機(jī)、磁盤機(jī)、光盤機(jī)按信息交互的單位分類

45、塊設(shè)備,數(shù)據(jù)的存取以數(shù)據(jù)塊為單位,如磁盤字符設(shè)備。傳送字節(jié)流,沒(méi)有使用塊結(jié)構(gòu),如終端、打印機(jī)、通信端口、鼠標(biāo)等按設(shè)備的共享屬性分類獨(dú)占設(shè)備。是必須作為臨界資源以互斥方式訪問(wèn)的設(shè)備。如打印機(jī)共享設(shè)備。是允許多個(gè)進(jìn)程共同訪問(wèn)的設(shè)備。如磁盤虛擬設(shè)備。是通過(guò)某種虛擬技術(shù)把一臺(tái)物理設(shè)備變成若干邏輯設(shè)備,從用戶角度看,是多個(gè)用戶擁有各自的設(shè)備,可以隨時(shí)向設(shè)備發(fā)出訪問(wèn)請(qǐng)求并得到系統(tǒng)應(yīng)答設(shè)備控制器的功能接收和識(shí)別命令數(shù)據(jù)交換設(shè)備狀態(tài)的了解和報(bào)告地址識(shí)別數(shù)據(jù)緩沖差錯(cuò)控制設(shè)備控制器的組成:設(shè)備控制器與處理機(jī)的接口:數(shù)據(jù)線、控制線和地址線設(shè)備控制器與設(shè)備的接口:設(shè)備與設(shè)備控制器接口中的3類信號(hào)為數(shù)據(jù)、狀態(tài)和控制信號(hào)

46、I/O邏輯:I/O邏輯主要由指令譯碼器和地址譯碼器兩部分功能部件構(gòu)成,將CPU的命令和地址分別譯碼,控制指定設(shè)備進(jìn)行I/O操作I/O控制方式有輪詢、中斷和DMA控制方式I/O方式有早期的程序輪詢控制方式,在中斷機(jī)制被引入計(jì)算機(jī)系統(tǒng)后,I/O控制采用中斷控制方式,為了提高塊設(shè)備的I/O性能,可以利用DMA控制器對(duì)I/O進(jìn)行DMA控制現(xiàn)代計(jì)算機(jī)系統(tǒng)廣泛采用中斷控制方式完成對(duì)I/O的控制中斷控制的工作方式能使CPU與I/O設(shè)備在某些時(shí)間段上并行工作,提高CPU的利用率和系統(tǒng)的吞吐量采用中斷控制方式的I/O工作模式是CPU執(zhí)行過(guò)程中個(gè),發(fā)出輸入/輸出請(qǐng)求,若此時(shí)I/O設(shè)備忙,則進(jìn)程阻塞等待DMA控制需

47、要特殊結(jié)構(gòu)的設(shè)備控制器,DMA控制器的邏輯組成包括3部分:主機(jī)與DMA的接口、DMA與設(shè)備的接口、I/O控制邏輯緩沖區(qū)是用來(lái)保存兩個(gè)設(shè)備之間或設(shè)備與應(yīng)用程序之間傳輸數(shù)據(jù)的內(nèi)存區(qū)域。引入緩沖區(qū)的原因:處理數(shù)據(jù)流的生產(chǎn)者與消費(fèi)者之間的速度差異協(xié)調(diào)傳輸數(shù)據(jù)大小不一致的設(shè)備操作系統(tǒng)提供的最簡(jiǎn)單的緩沖類型是單緩沖區(qū)雙緩沖的性能比單緩沖所有提高,但是這種提高是以增加復(fù)雜性為代價(jià)的循環(huán)緩沖的組成:多個(gè)緩沖區(qū)空緩沖區(qū)R:生產(chǎn)者進(jìn)程下一個(gè)可用的空緩沖區(qū)已裝滿數(shù)據(jù)的緩沖區(qū)G:用于指示消費(fèi)者進(jìn)程下一個(gè)可用的裝有產(chǎn)品的緩沖區(qū)現(xiàn)行工作緩沖區(qū)C:消費(fèi)者進(jìn)程正在使用的工作緩沖區(qū)多個(gè)指針Nextg:用于指示消費(fèi)者進(jìn)程下一個(gè)可用的裝有數(shù)據(jù)的緩沖區(qū)Nexti:用于指示生產(chǎn)者進(jìn)程下一個(gè)可用的空緩沖區(qū)Current:用于指示進(jìn)程正在使用的工作緩沖區(qū)消費(fèi)者進(jìn)程要使用緩沖區(qū)中的數(shù)據(jù)時(shí),可調(diào)用Getbuf過(guò)程。當(dāng)進(jìn)程使用完緩沖區(qū)之后,調(diào)用Releaseb

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論