版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、操作系統(tǒng)綜述,操作系統(tǒng)綜述,如何裝入可執(zhí)行程序及其所需的數(shù)據(jù),裝入方式: 絕對裝入 重定位裝入 運(yùn)行時(shí)動(dòng)態(tài)裝入,何時(shí)將程序的邏輯地址轉(zhuǎn)換為物理地址,絕對裝入,程序運(yùn)行之前,按照程序的邏輯地址,將程序和數(shù)據(jù)裝入內(nèi)存指定的地方。 實(shí)現(xiàn)簡單,無須進(jìn)行邏輯地址到物理地址的變換。,絕對裝入方式的缺點(diǎn),1,4,程序每次必須裝入同一內(nèi)存區(qū) 程序員必須事先了解內(nèi)存的使用情況,根據(jù)內(nèi)存情況確定程序的邏輯地址 程序的修改(增加或刪除指令)將引起整個(gè)程序中指令地址的變動(dòng),重定位裝入,允許將程序裝入與邏輯地址不同的物理內(nèi)存空間。即程序可以裝入到內(nèi)存的任何位置,其邏輯地址與裝入內(nèi)存后的物理地址無直接關(guān)系 必須進(jìn)行地址映
2、射,將邏輯地址轉(zhuǎn)換為物理地址,靜態(tài)重定位,地址映射在程序裝入時(shí)進(jìn)行,以后不再更改程序地址 靜態(tài)重定位不允許程序在內(nèi)存中移動(dòng)。這不便于進(jìn)程交換和緊湊拼接操作,也很難實(shí)現(xiàn)多道程序環(huán)境下,多個(gè)程序同時(shí)裝入內(nèi)存的要求 靜態(tài)重定位只適合于單道程序環(huán)境下,運(yùn)行時(shí)動(dòng)態(tài)裝入,程序的地址轉(zhuǎn)換不是在裝入時(shí)進(jìn)行,而是在程序運(yùn)行時(shí)動(dòng)態(tài)進(jìn)行 運(yùn)行時(shí)動(dòng)態(tài)裝入需要硬件支持,即重定位寄存器,用于保存程序在內(nèi)存中的起始地址 程序被執(zhí)行時(shí),通過重定位寄存器內(nèi)的起始物理地址和指令或數(shù)據(jù)的邏輯地址計(jì)算其物理地址 運(yùn)行時(shí)動(dòng)態(tài)裝入有利于多道程序環(huán)境下,進(jìn)程的換進(jìn)/換出及實(shí)現(xiàn)緊湊技術(shù),程序在內(nèi)存中是如何組織的?,程序在內(nèi)存中的組織,連續(xù)存
3、儲: 需要內(nèi)存中一塊連續(xù)的、足夠大的分區(qū) 如果內(nèi)存中沒有足夠大的連續(xù)空閑分區(qū),但存在總量足夠的獨(dú)立小分區(qū),系統(tǒng)要么拒絕分區(qū),要么采用緊湊技術(shù)將獨(dú)立小分區(qū)拼接起來供程序使用。,非連續(xù)存儲:允許進(jìn)程的程序和數(shù)據(jù)分別裝在內(nèi)存的不同分區(qū)中,必須把一個(gè)進(jìn)程分到的所有分區(qū)的位置、大小、使用情況(如是否共享等)等信息記錄下來。 常用的非連續(xù)存儲技術(shù):分頁存儲技術(shù)、分段存儲技術(shù)及段頁式存儲技術(shù)。 動(dòng)態(tài)地址轉(zhuǎn)換和非連續(xù)存儲是虛擬內(nèi)存技術(shù)的關(guān)鍵。,連續(xù)存儲與非連續(xù)存儲,內(nèi)存的連續(xù)存儲與非連續(xù)存儲,非連續(xù)存儲-分頁存儲管理,分頁存儲管理技術(shù)是一種特殊的固定分區(qū)方法。 系統(tǒng)事先將物理內(nèi)存劃分成許多尺寸相等的頁幀 (P
4、age Frame),并將進(jìn)程分割成許多大小相同的頁面 (Page),頁面與頁框大小相同。,分區(qū) 分頁,分區(qū):進(jìn)程的邏輯地址空間是連續(xù)的、一維的、線性地址,進(jìn)程的每一條指令和數(shù)據(jù)的地址相對于第一條語句的地址而定。 分頁:進(jìn)程被分割成許多頁面。每個(gè)頁面內(nèi)的指令和數(shù)據(jù)是連續(xù)的,它們的地址相對于其所屬頁的第一條語句的地址,稱為頁內(nèi)偏移量。 邏輯地址被分為兩部分:頁號和頁內(nèi)偏移量 。 當(dāng)進(jìn)程被裝入內(nèi)存時(shí),系統(tǒng)將為進(jìn)程的每個(gè)頁面分配一個(gè)頁框 同一個(gè)進(jìn)程的多個(gè)頁面不必存放在連續(xù)的多個(gè)頁框中,分頁,,實(shí)現(xiàn)了虛擬機(jī)的高可用性。,進(jìn)程裝入到離中散的頁幀,頁表與頁表寄存器,頁表:系統(tǒng)為每個(gè)進(jìn)程建立一張頁面映射表,
5、用于記載進(jìn)程中各個(gè)頁面到到物理內(nèi)存中頁幀的映射信息。 進(jìn)程的每個(gè)頁面依次對應(yīng)頁表中的一個(gè)表項(xiàng),其中包含相應(yīng)頁在內(nèi)存中對應(yīng)的物理頁幀號和頁面存取控制權(quán)限等字段。,頁表寄存器:存儲執(zhí)行進(jìn)程的頁表起始地址,執(zhí)行快速地址映射。 進(jìn)程的每個(gè)頁面依次對應(yīng)頁表中的一個(gè)表項(xiàng),其中包含相應(yīng)頁在內(nèi)存中對應(yīng)的物理頁幀號和頁面存取控制權(quán)限等字段。,分頁地址直接映射,分頁地址直接映射缺點(diǎn),系統(tǒng)把被轉(zhuǎn)換的邏輯地址和頁表的基址放在處理器的高速寄存器中以保證在一個(gè)指令執(zhí)行器內(nèi)快速完成這些值的運(yùn)算。 系統(tǒng)把直接映射的頁表保存在主存中,對頁表的一次飲用就需要一個(gè)完整的主存周期,而一個(gè)指令執(zhí)行周期的最大部分都停留在主存訪問上,再加
6、上頁到頁幀之間的映射也需要一個(gè)主存訪問,這就可能導(dǎo)致系統(tǒng)運(yùn)行程序的速度下降一半。 有人提出把直接映射頁表放在高速緩沖存儲器以加快轉(zhuǎn)換速度,但如果邏輯地址空間可能會很大,鑒于高速緩沖存儲器的高成本,此方案很快被認(rèn)為不可行。,快表,又稱后備式轉(zhuǎn)換緩沖器(TLB),只存儲當(dāng)前進(jìn)程完整頁表的一小部分內(nèi)容,也即最近訪問過的頁表項(xiàng)。 快表基于局部性原理,即被訪問過的頁可能在不久的將來被再次訪問。,快表地址轉(zhuǎn)換,多級頁表,直接地址映射中,一個(gè)頁表中的所有頁表項(xiàng)都必須在映射表中,按頁號連續(xù)存儲。這會消耗大量的內(nèi)存空間。 假設(shè)一個(gè)頁大小為4KB(212)的32位地址空間,將會有220(232-12)個(gè)頁編號,這
7、就相當(dāng)于需要100萬個(gè)頁表項(xiàng),而一個(gè)使用4MB的64位地址空間大約需要4萬億個(gè)頁表項(xiàng),這就會嚴(yán)重占用程序?qū)嶋H可使用的內(nèi)存。 多級頁表使得系統(tǒng)把一個(gè)進(jìn)程經(jīng)常使用的那部分頁表保存在內(nèi)存的不連續(xù)地址中。而進(jìn)程頁表的其它部分可以在第一次使用時(shí)創(chuàng)建,并在不再被經(jīng)常使用時(shí)移出內(nèi)存。 多級頁表的層次結(jié)構(gòu)每級一個(gè)表,存儲指向下一級表的指針,最低級由包含頁到頁幀的映射的表組成。,二級頁表尋址,分段存儲管理,分段:在模塊化程序設(shè)計(jì)中,每個(gè)程序的指令和數(shù)據(jù)被劃分成大小不同的子程序,稱為分段。物理內(nèi)存被動(dòng)態(tài)劃分成大小不等的分區(qū),當(dāng)進(jìn)程被裝入內(nèi)存時(shí),系統(tǒng)為進(jìn)程的每一段分配一個(gè)分區(qū),同一進(jìn)程的不同段不必存放在連續(xù)的分區(qū)中
8、。 段表同樣被保存在物理內(nèi)存中,并用段表寄存器來存放當(dāng)前執(zhí)行進(jìn)程的段表在物理內(nèi)存中的的起始地址。,分段直接地址映射,分段與分頁技術(shù)比較,都采用非連續(xù)存儲,由地址映射實(shí)現(xiàn)地址變換。 頁是信息的物理單位,大小固定。段是信息的邏輯單位,各段的長度不固定。每一段都具有一定邏輯含義。 分頁的地址空間是一維的,邏輯地址的劃分由機(jī)器硬件實(shí)現(xiàn),對用戶透明。分段的地址空間是二維或多維的,程序員知道段名和段內(nèi)偏移量。 分頁活動(dòng)源于系統(tǒng)管理物理內(nèi)存的需要,在系統(tǒng)內(nèi)部進(jìn)行,由系統(tǒng)實(shí)施,用戶看不見。分段活動(dòng)源于用戶進(jìn)行模塊化程序設(shè)計(jì)的需要,在系統(tǒng)外部進(jìn)行,由用戶實(shí)施,用戶是知道的。,段頁式存儲,基本思想:采用分段方法組
9、織用戶程序,采用分頁方法分配和管理內(nèi)存。即用戶程序可以用模塊化思想進(jìn)行設(shè)計(jì),一個(gè)用戶序由若干段構(gòu)成。系統(tǒng)將內(nèi)存劃分成固定大小的頁幀,并將程序的每一段分割成若干頁以后裝入內(nèi)存執(zhí)行時(shí)。 邏輯地址由3部分組成:段號、段內(nèi)頁號、頁內(nèi)偏移量。,段頁式存儲,段頁式存儲直接地址映射,段頁式存儲,在整個(gè)地址轉(zhuǎn)換過程中,搜索段表時(shí)可能會發(fā)現(xiàn)要找的分段不在段表中,從而產(chǎn)生分段缺失錯(cuò)誤,操作系統(tǒng)將獲得控制權(quán)并在輔助存儲上找到對應(yīng)分段,創(chuàng)建對應(yīng)分段的頁表,再把相應(yīng)的頁裝入內(nèi)存。如果分段在內(nèi)存中,對頁表的查找可能會發(fā)現(xiàn)要找的頁不在內(nèi)存中,發(fā)出一個(gè)缺頁錯(cuò)誤,操作系統(tǒng)又將獲得控制權(quán),將輔助存儲上的對應(yīng)的頁裝入內(nèi)存。 進(jìn)程還
10、可能要引用一個(gè)不在分段范圍內(nèi)的邏輯地址,從而產(chǎn)生一個(gè)分段溢出異常。 為了保護(hù)每個(gè)進(jìn)程不受其它進(jìn)程破壞,操作系統(tǒng)為每個(gè)進(jìn)程分配對一些分段的訪問權(quán),如果不具有對被引用地址的訪問權(quán)限,還會產(chǎn)生一個(gè)分段保護(hù)異常。,處理器調(diào)度,現(xiàn)代操作系統(tǒng)里,多為多道程序設(shè)計(jì),即內(nèi)存駐留的進(jìn)程不止一個(gè) 在某一特定時(shí)刻,一個(gè)CPU只能運(yùn)行一個(gè)進(jìn)程 多道程序設(shè)計(jì)環(huán)境下,CPU如何協(xié)調(diào)處理多個(gè)進(jìn)程之間的運(yùn)行?,處理器調(diào)度,操作系統(tǒng)處理器調(diào)度分三個(gè)級別:高級調(diào)度、中級調(diào)度和處級調(diào)度。 高級調(diào)度:也稱作業(yè)調(diào)度,它負(fù)責(zé)決定哪些作業(yè)準(zhǔn)許進(jìn)入系統(tǒng)。一旦作業(yè)進(jìn)入系統(tǒng),作業(yè)就會初始化,并成為進(jìn)程或進(jìn)程組。 中級調(diào)度:作業(yè)被高級調(diào)度準(zhǔn)許進(jìn)入
11、系統(tǒng)后,將由中級調(diào)度決定允許哪些進(jìn)程競爭處理器。它臨時(shí)掛起并恢復(fù)進(jìn)程,確保系統(tǒng)流暢工作。 低級調(diào)度:負(fù)責(zé)決定在處理器可用時(shí),將哪個(gè)就緒狀態(tài)的進(jìn)程分配給處理器。,處理器調(diào)度,具三級調(diào)度的調(diào)度隊(duì)列模型,處理機(jī)資源管理,處理機(jī)資源管理要解決三個(gè)問題: 依什么原則分配處理機(jī),即確定處理機(jī)調(diào)度算法 什么時(shí)候分配處理機(jī),即確定處理機(jī)調(diào)度實(shí)際 如何分配處理機(jī),即給出處理機(jī)調(diào)度過程,調(diào)度算法,調(diào)度算法要考慮一下幾個(gè)指標(biāo): CPU利用率:盡量讓CPU處于運(yùn)行狀態(tài),在一定的I/O等待時(shí)間的百分比,運(yùn)行的進(jìn)程越多,則CPU的閑置時(shí)間越低。 吞吐率:單位時(shí)間內(nèi)所處理的進(jìn)程數(shù)。 周轉(zhuǎn)時(shí)間:從進(jìn)程等待進(jìn)入內(nèi)存開始直到進(jìn)程
12、完成為止的時(shí)間總和。 響應(yīng)時(shí)間:就是從進(jìn)程就緒到處理開始。 系統(tǒng)開銷:處理機(jī)調(diào)度過程中所付出的時(shí)空開銷。,處理機(jī)調(diào)度算法類型,先來先服務(wù)調(diào)度算法 短進(jìn)程優(yōu)先調(diào)度算法 高優(yōu)先權(quán)優(yōu)先調(diào)度算法 高響應(yīng)比優(yōu)先調(diào)度算法 基于時(shí)間片的輪轉(zhuǎn)調(diào)度算法 多級反饋隊(duì)列調(diào)度算法,處理器調(diào)度時(shí)機(jī),創(chuàng)建進(jìn)程:創(chuàng)建進(jìn)程時(shí) 進(jìn)程終止時(shí):一個(gè)進(jìn)程終止時(shí)必須進(jìn)行調(diào)度。如果沒有就緒進(jìn)程,系統(tǒng)通常會啟動(dòng)一個(gè)空轉(zhuǎn)進(jìn)程(休閑進(jìn)程)等待(硬/軟)中斷的發(fā)生。 等待事件:進(jìn)程由于等待I/O、信號量或其它原因而放棄CPU,這樣就必須選擇另外一個(gè)進(jìn)程。 中斷發(fā)生:當(dāng)發(fā)生I/O中斷,原先等待I/O的進(jìn)程就從阻塞態(tài)轉(zhuǎn)變成就緒態(tài),是否可強(qiáng)占。 運(yùn)行
13、到時(shí):在分時(shí)系統(tǒng)中,當(dāng)前進(jìn)程用完給定的時(shí)間片,時(shí)鐘中斷使該進(jìn)程讓出CPU進(jìn)入調(diào)度。,處理器調(diào)度,某一特定時(shí)間片里,一個(gè)處理器只能被一個(gè)進(jìn)程占用。 宏觀上并行,微觀上串行。,死鎖,死鎖的四個(gè)充分必要條件: 互斥條件:一個(gè)資源每次只能由一個(gè)進(jìn)程獨(dú)占式地獲得 保持和等待條件:獲取了一個(gè)獨(dú)占資源的一個(gè)進(jìn)程可以在獲取其它資源時(shí)持有那個(gè)資源。 一旦進(jìn)程獲取了一個(gè)資源,系統(tǒng)就不能把它從進(jìn)程的控制中移出,除非進(jìn)程結(jié)束資源。 循環(huán)等待條件:兩個(gè)或多個(gè)進(jìn)程在一個(gè)循環(huán)鏈中鎖定。其中,每個(gè)進(jìn)程都等待由鏈中的下一個(gè)進(jìn)程所持有的一個(gè)或多個(gè)資源。,無限延期,假定系統(tǒng)采用優(yōu)先級來調(diào)度資源,當(dāng)一個(gè)進(jìn)程因?yàn)橘Y源分配及進(jìn)程調(diào)度策略
14、而等待的過程中,大量具有高優(yōu)先級的進(jìn)程持續(xù)到來,這個(gè)進(jìn)程就進(jìn)入了無盡的等待資源的境況。 無限延期不同于死鎖,但同樣也會給系統(tǒng)造成嚴(yán)重的后果。,預(yù)防死鎖,杜絕“等待”條件:一個(gè)進(jìn)程完成任務(wù)所需的全部資源必須同時(shí)請求,系統(tǒng)要么全部批準(zhǔn),要么全部拒絕,進(jìn)程等待時(shí),將不能持有任何資源。 杜絕“不可搶占”條件:假如持有資源的一個(gè)進(jìn)程在請求附加資源時(shí)被拒,它必須釋放以前持有的資源。 杜絕“循環(huán)等待”條件:為系統(tǒng)的每個(gè)資源分配一個(gè)不重復(fù)的編號,創(chuàng)建資源的一個(gè)線性順序,進(jìn)程必須嚴(yán)格按升序來請求它的資源。,死鎖解決辦法,死鎖預(yù)防:杜絕發(fā)生死鎖的四個(gè)必要條件之一 死鎖避免:允許進(jìn)程動(dòng)態(tài)地申請資源,但系統(tǒng)在進(jìn)行資源
15、分配之前,應(yīng)先計(jì)算此次資源分配的安全性。若此次分配不會導(dǎo)致系統(tǒng)進(jìn)入不安全狀態(tài),則將資源分配給進(jìn)程; 否則,令進(jìn)程等待。,文件管理,進(jìn)程需要把內(nèi)存中的數(shù)據(jù)往外存上寫,如何找到數(shù)據(jù)要寫入的位置 數(shù)據(jù)在外存是如何組織的,數(shù)據(jù)層次結(jié)構(gòu),最底層按位組合在一起來標(biāo)識有意義的數(shù)據(jù)項(xiàng) 次層就是固定長度的位模式,如字節(jié)、字符和字。字是處理器一次能操作的位數(shù)。 一組字符就組成了字段 一組字段組成了記錄 一組記錄則組成了文件 一個(gè)卷則可以包含多個(gè)文件,分邏輯卷和物理卷。,文件系統(tǒng),文件系統(tǒng)負(fù)責(zé)對文件進(jìn)行組織并管理對數(shù)據(jù)的訪問。 文件管理:提供存儲、引用、共享文件和保護(hù)文件安全的機(jī)制。 輔助存儲器管理:在輔助存儲設(shè)備
16、或第三季存儲設(shè)備上位文件分配空間。 文件完整性機(jī)制:確保文件中存儲的信息未被破壞。 訪問方法:如何訪問存儲的數(shù)據(jù)。,文件系統(tǒng)管理,同虛擬內(nèi)存管理一樣,文件系統(tǒng)管理也要: 分配存儲器 向應(yīng)用程序隱藏存儲器的物理視圖 控制對存儲器的訪問,文件分配方式,連續(xù)文件分配 鏈表式文件分配 表格式文件分配 索引式文件分配,連續(xù)文件分配,連續(xù)文件分配:把文件數(shù)據(jù)存放在存儲設(shè)備的連續(xù)地址上。,連續(xù)文件分配,連續(xù)文件分配:把文件數(shù)據(jù)存放在存儲設(shè)備的連續(xù)地址上。 連續(xù)分配方式下文件數(shù)據(jù)的定位非常直接,只要找到第一個(gè)數(shù)據(jù)塊以后就不需要執(zhí)行繁瑣的尋道操作,加快了訪問速度。 但容易產(chǎn)生碎片。 隨著文件的增大,導(dǎo)致沒有相鄰
17、的空閑塊可供使用,就必須把文件傳輸?shù)揭粋€(gè)新的有足夠大小的區(qū)域,這就會引起額外的I/O操作。 適合一次性寫入CD和DVD,它們不允許文件隨著時(shí)間的過去而增大或縮小。,鏈表式非連續(xù)文件分配,在可重寫的輔助存儲介質(zhì)上實(shí)現(xiàn)的大多數(shù)文件系統(tǒng)都使用非連續(xù)分配。,鏈表式非連續(xù)文件分配采用塊(由連續(xù)扇區(qū)組成)分配策略,系統(tǒng)給文件分配新塊時(shí),選擇與已有文件數(shù)據(jù)塊盡量接近的空閑塊,最好是在同一個(gè)柱面上。每次訪問文件時(shí),都需要確定相應(yīng)的數(shù)據(jù)塊和相應(yīng)數(shù)據(jù)塊內(nèi)的扇區(qū)。 塊分配策略下,每個(gè)塊都由一個(gè)數(shù)據(jù)塊和一個(gè)指向下一個(gè)數(shù)據(jù)塊的指針組成,塊鏈上的所有塊就是文件的組成。 塊散列在整個(gè)磁盤中,增加了尋道時(shí)間。,鏈表式非連續(xù)文
18、件分配,鏈表式非連續(xù)文件分配,只適合于順序訪問,對隨機(jī)訪問效率低。,塊散列在整個(gè)磁盤中,增加了尋道時(shí)間。,表格式非連續(xù)文件分配,該策略將各物理塊的指針顯示地放在內(nèi)存的一張鏈接表中。該表整個(gè)磁盤中設(shè)一張,表的序號為盤塊號,在文件的FCB的物理地址中填寫其鏈?zhǔn)字羔標(biāo)鶎?yīng)的盤塊號。,FAT(File Allocation Table):文件分配表,整個(gè)磁盤設(shè)置一張,放在內(nèi)存中。 缺點(diǎn):不能直接存??;FAT占較大內(nèi)存空間。,表格式非連續(xù)文件分配,表格式非連續(xù)文件分配,FAT(File Allocation Table):文件分配表,整個(gè)磁盤設(shè)置一張,放在內(nèi)存中。 缺點(diǎn):不能直接存?。籉AT占較大內(nèi)存空
19、間。,索引分配,該策略使用索引塊指向一個(gè)文件中的數(shù)據(jù)。每個(gè)文件都有一個(gè)或多個(gè)索引塊,索引塊包含一系列指向文件數(shù)據(jù)塊的指針。,索引分配,設(shè)備管理,I/O設(shè)備: 獨(dú)占設(shè)備 在一段時(shí)間內(nèi)只允許一個(gè)進(jìn)程訪問的設(shè)備,也即臨界資源。 共享設(shè)備 在一段時(shí)間內(nèi)允許多個(gè)進(jìn)程訪問的設(shè)備??蓪ぶ返?、可隨機(jī)訪問的。如磁盤。 虛擬設(shè)備 通過虛擬技術(shù)將一臺獨(dú)占設(shè)備變?yōu)槿舾膳_邏輯設(shè)備,供若干進(jìn)程使用。,I/O控制方式,程序I/O方式:早期CPU沒有中斷機(jī)構(gòu),須循環(huán)測試I/O設(shè)備狀態(tài)以判斷設(shè)備的忙閑狀態(tài)。由于CPU與I/O設(shè)備速度的不一致性,導(dǎo)致CPU絕大部分時(shí)間都處于循環(huán)測試中。 中斷驅(qū)動(dòng)I/O方式:當(dāng)進(jìn)程要啟動(dòng)某個(gè)I/O
20、設(shè)備工作時(shí),由CPU向相應(yīng)的設(shè)備控制器發(fā)出一條I/O指令,然后立即返回繼續(xù)執(zhí)行原來的任務(wù)。設(shè)備完成相應(yīng)的操作后便向CPU發(fā)送一個(gè)中斷,CPU隨機(jī)處理。實(shí)現(xiàn)了CPU與I/O設(shè)備的并行。,I/O控制方式,直接存儲器訪問DMA I/O方式:中斷驅(qū)動(dòng)I/O方式時(shí)的CPU是以字(節(jié))為單位進(jìn)行干預(yù)的。用于塊設(shè)備的I/O時(shí),效率將極其低下。DMA以數(shù)據(jù)塊為基本傳輸單位,數(shù)據(jù)塊是直接在內(nèi)存與設(shè)備之間傳送的,且僅在傳輸?shù)拈_始和結(jié)束時(shí)需要CPU的干預(yù)。 I/O通道控制方式:把對一個(gè)數(shù)據(jù)塊的讀寫干預(yù),改為對一組數(shù)據(jù)塊讀寫的干預(yù)。實(shí)現(xiàn)CPU、通道和I/O設(shè)備三者的并行操作。,盡量減少CPU對I/O控制的干預(yù),提高系
21、統(tǒng)效率。,緩沖區(qū),緩和CPU與I/O設(shè)備間速度不匹配的矛盾。 減少對CPU的中斷頻率。 提高CPU與I/O設(shè)備之間的并行性。,SPOOLing,SPOOLing 技術(shù)實(shí)際上是一種外圍設(shè)備同時(shí)聯(lián)機(jī)操作技術(shù),又稱為排隊(duì)轉(zhuǎn)儲技術(shù)。它在輸入和輸出之間增加了“輸入井”和“輸出井”的排隊(duì)轉(zhuǎn)儲環(huán)節(jié)。 提高了I/O速度。從對低速I/O設(shè)備進(jìn)行的I/O操作變?yōu)閷斎刖蜉敵鼍牟僮鳎缤摍C(jī)操作一樣,提高了I/O速度,緩和了CPU與低速I/O設(shè)備速度不匹配的矛盾。 設(shè)備并沒有分配給任何進(jìn)程。在輸入井或輸出井中,分配給進(jìn)程的是一存儲區(qū)和建立一張I/O請求表。 實(shí)現(xiàn)了虛擬設(shè)備功能。多個(gè)進(jìn)程同時(shí)使用一獨(dú)享設(shè)備,而對每
22、一進(jìn)程而言,都認(rèn)為自己獨(dú)占這一設(shè)備,不過,該設(shè)備是邏輯上的設(shè)備。,設(shè)備驅(qū)動(dòng)程序,接收由I/O進(jìn)程發(fā)來的命令和參數(shù),并將命令中的抽象要求轉(zhuǎn)換為具體要求。,檢查用戶I/O請求的合法性,了解I/O設(shè)備的狀態(tài),傳遞有關(guān)參數(shù),設(shè)置設(shè)備的工作方式。,發(fā)出I/O命令,設(shè)備閑則啟動(dòng)以完成指令,忙則將請求放到等待隊(duì)列。,及時(shí)響應(yīng)控制器或通道發(fā)來的終端請求,并調(diào)用相應(yīng)的中斷處理程序來處理。,進(jìn)程遷移,進(jìn)程遷移就是將一個(gè)進(jìn)程的狀態(tài),從一臺機(jī)器轉(zhuǎn)移到另一臺上,從而使該進(jìn)程能在目標(biāo)機(jī)上執(zhí)行。,為什么要進(jìn)程遷移,負(fù)載平衡:通過將進(jìn)程從負(fù)載較重的系統(tǒng)遷移到負(fù)載較輕的系統(tǒng),系統(tǒng)負(fù)載就可以平衡,從而提高整體執(zhí)行效率。 獲得特定
23、資源:一個(gè)進(jìn)程可以遷移,以利用一特定節(jié)點(diǎn)上獨(dú)有的資源。如一個(gè)進(jìn)程可能要訪問一個(gè)只能通過另外一個(gè)節(jié)點(diǎn)才能方位的陣列。 提高通信性能:相互間緊密作用的進(jìn)程可以移到同一節(jié)點(diǎn),以減少他們作用期間的通信耗費(fèi)。,誰來激發(fā)遷移,由誰來激發(fā)遷移取決于進(jìn)程遷移的目的: 負(fù)載平衡:由操作系統(tǒng)中掌管負(fù)載平衡的組件來決定什么時(shí)候激發(fā)遷移。組件需要掌握其它系統(tǒng)的負(fù)載情況,以決定進(jìn)程遷移到哪里。 問題1:如何獲取系統(tǒng)負(fù)載情況? 問題2:以什么方式來選中要被遷移的進(jìn)程? 獲得特定資源:進(jìn)程需要自己遷移。此時(shí)進(jìn)程須了解系統(tǒng)的負(fù)載情況。,遷移過程,第1步:兩個(gè)節(jié)點(diǎn)同意遷移進(jìn)程。,第2步:發(fā)送節(jié)點(diǎn)將被遷移進(jìn)程掛起,并創(chuàng)建一個(gè)消息
24、隊(duì)列,以保存發(fā)往該進(jìn)程的所有消息,發(fā)送節(jié)點(diǎn)還會提取該進(jìn)程的狀態(tài),包括復(fù)制進(jìn)程的存儲器內(nèi)容(在該進(jìn)程的虛擬內(nèi)存中標(biāo)記為有效的頁)、寄存器內(nèi)容、打開文件的狀態(tài)和其它與進(jìn)程有關(guān)的信息。接收節(jié)點(diǎn)創(chuàng)建一個(gè)新進(jìn)程。,第3步:在兩個(gè)節(jié)點(diǎn)中傳送進(jìn)程狀態(tài)。,第4步:兩個(gè)節(jié)點(diǎn)將遷移進(jìn)程的新地址通知給所有其它進(jìn)程。,第5步:發(fā)送節(jié)點(diǎn)轉(zhuǎn)發(fā)被遷移進(jìn)程消息隊(duì)列中的消息,并撤銷該進(jìn)程的本地實(shí)例。,進(jìn)程遷移的剩余依賴性,剩余依賴性:進(jìn)程對原節(jié)點(diǎn)的依賴性。,進(jìn)程原節(jié)點(diǎn)可能包含該進(jìn)程的部分工作集,或者可能正在執(zhí)行與被遷移進(jìn)程進(jìn)行通信的其它進(jìn)程。導(dǎo)致執(zhí)行該進(jìn)程時(shí),接收節(jié)點(diǎn)必須與發(fā)送節(jié)點(diǎn)通信,增加了IPC,降低了性能。,被遷移進(jìn)程的執(zhí)行需要依賴于兩個(gè)節(jié)點(diǎn)的正常工作,降低了容錯(cuò)性。,進(jìn)程遷移策略,進(jìn)程遷移策略必須平衡傳輸大量進(jìn)程數(shù)據(jù)的性能代價(jià)與最小化一個(gè)進(jìn)程的剩余依賴性的好處。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鋼結(jié)構(gòu)幕墻隔音設(shè)計(jì)方案
- 四級試題及答案
- 司爐工考試題及答案
- 稅種題目及答案高中
- 數(shù)字電子題目及答案
- 2025年健身房健身指導(dǎo)員服務(wù)手冊
- 2025年零售業(yè)客戶服務(wù)規(guī)范與操作手冊
- 2025年銷售渠道管理與維護(hù)指南
- 企業(yè)環(huán)境與安全管理手冊
- 動(dòng)火作業(yè)安全培訓(xùn)制度
- 種植業(yè)合作社賬務(wù)處理
- 【麗江玉龍旅游薪酬制度的創(chuàng)新研究6100字】
- 公司兩權(quán)分離管理制度
- 車輛叉車日常檢查記錄表
- 廣東高校畢業(yè)生“三支一扶”計(jì)劃招募考試真題2024
- 膠帶機(jī)硫化工藝.課件
- 種雞免疫工作總結(jié)
- 河南省商丘市柘城縣2024-2025學(xué)年八年級上學(xué)期期末數(shù)學(xué)試題(含答案)
- 河南省信陽市2024-2025學(xué)年高二上學(xué)期1月期末英語試題(含答案無聽力原文及音頻)
- 給女朋友申請書
- 八下《桃花源記》《小石潭記》全文背誦(原文+譯文)
評論
0/150
提交評論