計算機操作系統(tǒng)知識點歸納_第1頁
計算機操作系統(tǒng)知識點歸納_第2頁
計算機操作系統(tǒng)知識點歸納_第3頁
計算機操作系統(tǒng)知識點歸納_第4頁
計算機操作系統(tǒng)知識點歸納_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選優(yōu)質文檔-傾情為你奉上精選優(yōu)質文檔-傾情為你奉上專心-專注-專業(yè)專心-專注-專業(yè)精選優(yōu)質文檔-傾情為你奉上專心-專注-專業(yè)操作系統(tǒng)的目標:方便性,有效性,可擴充性,開放性操作系統(tǒng)的作用:作為用戶和計算機硬件系統(tǒng)之間的接口,作為計算機系統(tǒng)資源的管理者,實現了對計算機資源的抽象單道批處理系統(tǒng)的缺點:系統(tǒng)的資源得不到充分的利用多道批處理系統(tǒng)的優(yōu)缺點:資源利用率高,系統(tǒng)吞吐量大,平均周轉時間長,無交互能力需要解決的問題:處理機爭用問題,內存分配和保護問題,I/O設備分配問題,文件管理和組織問題,作業(yè)管理問題,用戶與系統(tǒng)的接口問題分時系統(tǒng)(滿足人機交互的需求) 特征:多路性,獨立性,及時性,交互性

2、及時響應實時系統(tǒng)的特征:多路性,獨立性,及時性,交互性,可靠性 實時實時任務的類型:周期性實時任務和非周期性實時任務,硬實時任務和軟實時任務單用戶多任務OS:一個用戶,把程序分為若干任務并發(fā)執(zhí)行多用戶多任務OS:多個用戶,一臺機器,共享資源 UNIX OS操作系統(tǒng)的四大特性:并發(fā),共享,虛擬,異步并行與并發(fā):并行是多個事件在同一時間發(fā)生,并發(fā)是多個事件在同一時間間隔內發(fā)生(進程的引入:多個程序并發(fā)執(zhí)行,提高了系統(tǒng)資源利用率,增加了系統(tǒng)的吞吐量)。進程同步與互斥;進程間的通信;死鎖問題互斥共享:一段時間內只允許一個進程訪問該資源同時訪問:宏觀上是同時的,微觀上進程對資源的訪問是交替的時分復用技術

3、:虛擬機處理,虛擬設備空分復用技術:對存儲空間的管理,提高利用率OS具備的功能:1.處理機管理:進程控制,進程同步,進程通信,作業(yè)調度,進程調度2.存儲器管理:內存分配(為每道程序分配內存,提高存儲器利用率,允許正在運行的程序申請附加的內存)內存分配方式:靜態(tài):不允許申請新的內存,不允許作業(yè)在內存中的移動 動態(tài):上面說的都允許內存保護:確保每道用戶程序都僅在自己的內存空間內運行,決不允許用戶程序訪問操作系統(tǒng)的程序和數據地址映射:邏輯地址和物理地址,硬件支持內存擴充:邏輯上擴充內存容量(請求調入功能,置換功能)3.設備管理主要任務:完成用戶進程提出的I/O請求,為用戶進程分配所需要的I/O設備,

4、并完成指定的操作 提高CPU和I/O設備的利用率應具有緩沖管理,設備分配,設備處理和虛擬設備(spooling技術)4.文件管理文件存儲空間的管理,目錄管理,文件的讀和寫管理和保護操作系統(tǒng)與用戶之間的接口:1.用戶接口:聯機用戶接口,脫機用戶接口,圖形用戶接口2.程序接口:為用戶程序在執(zhí)行中訪問系統(tǒng)資源設置的,是用戶程序取得操作系統(tǒng)服務的唯一途徑模塊接口法的優(yōu)缺點優(yōu)點:提高OS設計的正確性、可理解性和可維護性 增強OS的可適應性 加速OS的開發(fā)過程問題:對各模塊間的接口規(guī)定很難滿足在模塊設計完成后對接口的實際需求決定的無序性分層式結構OS 在目標系統(tǒng)和邏輯系統(tǒng)之間鋪設若干個參次的軟件(自底向上

5、)優(yōu)缺點:易保證系統(tǒng)的正確性,易擴充和易維護性 系統(tǒng)效率降低(執(zhí)行一個功能要穿越多個層次)客戶/服務器模式優(yōu)點:數據的分布處理和存儲,便于集中管理,靈活性和可擴充性,易于改編應用軟件微內核OS并非一個完整的OS,有OS中最基本的部分,包含有:與硬件處理緊密相關的部分,一些較基本的功能,客戶和服務器之間的通信基于客戶/服務器模式應用“機制與策略分離”原理基本功能:進程管理,低級存儲器管理, 中斷和陷入處理優(yōu)點:提高系統(tǒng)的可擴展性,增強系統(tǒng)的可靠性,可移植性強,提供了對分布式系統(tǒng)的支持,融入了面向對象技術程序在順序執(zhí)行時的三個特征:順序性,封閉性,可再現性程序在并發(fā)執(zhí)行時的三個特征:間斷性,失去封

6、閉性,不可再現性進程的定義:進程時程序的一次執(zhí)行,是一個程序及其數據在處理機上順序執(zhí)行時所發(fā)生的活動,是具有獨立功能的程序在一個數據集合上運行的進程,他是系統(tǒng)進行資源分配和調度的一個獨立單位進程的特征:動態(tài)性,并發(fā)性,獨立性,異步性進程的三種基本狀態(tài):就緒(Ready)狀態(tài),執(zhí)行(Running)狀態(tài),阻塞(Block)狀態(tài)創(chuàng)建狀態(tài):如果進程所需的資源不能得到滿足,進程不能被調度,此時為創(chuàng)建狀態(tài)終止狀態(tài):自然結束,被其他有終止權的進程終結,出現無法克服的錯誤,被操作系統(tǒng)終結掛起操作的引入:終端用戶的需要,父進程請求,負荷調節(jié)的需要,操作系統(tǒng)需要引入掛起操作之后三個進程可能會有以下幾種狀態(tài)轉化:

7、活動就緒-靜止就緒,活動阻塞-靜止阻塞,靜止就緒-活動就緒,靜止阻塞-活動阻塞進程信息表(資源信息表)包含了資源或進程的標識,描述,狀態(tài)等信息以及一批指針OS管理的這些數據結構一般分為:內存表,設備表,文件表和用于進程管理的進程表(進程控制塊PCB)進程控制塊(PCB)的作用作為獨立運行基本單位的標志,能實現間斷性運行方式,提供進程管理所需要的信息,提供進程調度所需要的信息,實現與其他進程的同步與通信進程控制塊包含的信息:1.進程標識符(外部標識符,內部標識符)2.處理機狀態(tài)3.進程調度信息 (進程狀態(tài),優(yōu)先級,進程調度所需的其他信息,事件(進程狀態(tài)發(fā)生改變的事件,如阻塞原因)4.進程控制信息

8、(程序和數據的地址,進程同步和通信機制,資源清單,鏈接指針(下一個PCB的首地址)PCB的組織方式1.線性方式 線性表2.鏈接方式 隊列3.索引方式 索引表進程控制 創(chuàng)建進程,終止已完成的進程,將無法繼續(xù)運行的進程置于阻塞狀態(tài),運行進程的狀態(tài)轉換。 內核原語實現操作系統(tǒng)內核1.支撐功能:中斷處理,時鐘管理,原語操作2.資源管理功能:進程管理,存儲器管理,設備管理進程的創(chuàng)建進程的層次結構 允許父進程創(chuàng)建子進程進程圖 有向樹引起創(chuàng)建進程的事件 用戶登錄,作業(yè)調度,提供服務,應用請求進程的終止過程1.根據被終止進程的標識符,從PCB中檢索出改進程的PCB,從中讀出該進程的狀態(tài)2.若被終止進程正處于執(zhí)

9、行狀態(tài),應立即終止改進程的執(zhí)行,并置調度標志為真3.如果有子孫進程,子孫進程也終止4.將終止進程所擁有的全部資源歸還給父進程或系統(tǒng)5.將終止進程從所在隊列或鏈表中移除引起進程阻塞或被喚醒的事件:1.向系統(tǒng)請求共享資源失敗2.等待某種操作的完成3.新數據尚未到達4.等待新任務的到達阻塞是進程自身的一種主動行為 進程通過阻塞原語block將自己阻塞進程喚醒 調用喚醒原語wakeup 把被阻塞的進程從等待該事件的阻塞隊列中移除,狀態(tài)變?yōu)榫途w,把PCB插到就緒隊列中臨界資源 打印機,磁帶機。進程間采用互斥方式臨界區(qū) 每個進程訪問臨界資源的那段代碼同步機制應遵循的規(guī)則:空閑讓進,忙則等待,有限等待,讓權

10、等待實現互斥的三種方法:1.關中斷:在進入鎖測試之前關閉中斷,直到完成鎖測試并上鎖之后才能打開中斷。缺點:關中斷時間過長,影響系統(tǒng)效率,限制處理器交叉執(zhí)行程序的能力關中斷方法不適用于多CPU系統(tǒng)2.硬件指令 測試并建立指令 TS3.對換指令信號量機制1.整型信號量:資源數目的整型量S:只能通過兩個原子操作:P、V操作2.記錄型信號量:一種不存在的忙等機制 增加一個進程鏈表指針list,鏈接上述所有的等待進程3.and型信號量:將進程在整個運行過程中需要的所有資源,一次性全部給進程,使用完后一起釋放。只要有一個資源未能分配給進程,其他的也不會給進程。(要么全給,要么不給)4.信號量集:上述信號量

11、 每次只能對某類臨界資源進行一個單位的申請或釋放,當一次需要N個單位時,便要進行N次wait操作,這樣不僅低效,而且會增加死鎖概率。為確保安全性,設置一個下限值,當所申請的系統(tǒng)資源低于下限值時,不予以分配。信號量的應用:1.實現互斥:設置一個互斥信號量mutex,設其初值為1,然后將各進程訪問該資源的臨界區(qū)CS置于wait和signal之間。wait(mutex);臨界區(qū);signal(mutex);剩余區(qū);2.利用信號量實現前趨關系: P1 S1 ; signal(s). P2 wait(s); S2管程機制管程:用少量的信息和對資源的操作來表征該資源(管程的名稱,局部于管程的共享數據結構說

12、明,對該數據結構進行操作的一組過程,對局部于管程的共享數據設置初始值的語句)利用管程實現同步,必須設置同步工具,如同步操作原語wait和signal生產者-消費者問題1.利用記錄型信號量empty和full分別表所緩沖池中空緩沖區(qū)和滿緩沖區(qū)的數量。緩沖池未滿,生產者便將消息送入緩沖池,緩沖池未空,便從其中取走一個消息2.利用AND信號量Swait(empty,mutex)代替wait(empty)和wait(mutex)等3.利用管程。 首先建立一個管程,其中包括兩個過程put(x)生產者把自己生產的東西投入到緩沖池中,并用cnt記錄產品數量,get(x)取產品,同理。還有cwait/csig

13、nal(condition)。管程給占用時,其他進程相調用就阻塞。哲學家進餐問題1.記錄型信號量 筷子是臨界資源,一個信號量表示一個筷子,組成一個信號量組,初始值為12.AND型信號量 要求每個哲學家先獲得兩個臨界資源后方能進餐讀者-寫者問題1.記錄型信號量 互斥信號量Wmutex 整型變量Readcount表示正在讀的進程數目。只要有一個在讀,便不允許writer去寫。2.利用信號量集 允許L個讀者同時讀,執(zhí)行wait(L,1,1)表示有一個讀者進入,L=L-1進程通信(進程間的信息交換)1.共享存儲器系統(tǒng),相互通信的進程共享某些數據結構或共享存儲區(qū)2.管道通信系統(tǒng),所謂管道是指用于連接一個

14、讀進程和一個寫進程以實現它們之間通信的一個共享文件,又名pipe文件。以字符流形式送入管道,又從管道中讀取,首創(chuàng)于UNIX需要有三個協調能力互斥:一個在用,另一個等待同步:寫進程把數據送入管道后就去睡覺,別人取走后再醒來工作。讀進程想來取數據發(fā)現是空的也要去睡覺,有數據后再醒來取。確定對方是否存在:確認對方存在后才能進行通信3.消息傳遞系統(tǒng)(高級通信方式):以格式化的消息為單位,將通信數據封裝在消息中。4.客戶機-服務器系統(tǒng)套接字 網絡通信接口遠程過程調用 消息傳遞通信的實現方式1.直接消息傳遞系統(tǒng) 發(fā)送進程利用OS所提供的發(fā)送命令(原語)直接把消息發(fā)給目標進程對稱尋址方式 send(P1,m

15、essage) receive(P1,message)非對稱尋址方式 send(P,message) receive(id,message)單機系統(tǒng)環(huán)境一般采用定長消息格式,以減少對信息的處理和存儲開銷變長消息,方便用戶進程在消息的發(fā)送和接受后存在兩種可能性:繼續(xù)發(fā)送/接收貨阻塞為使發(fā)送進程和接收進程間能通信,在兩者之間建立一條通信鏈路。兩種方式(自建后消除,系統(tǒng)建)2.信箱通信信箱定義為一種數據結構,由信箱頭和信箱體構成系統(tǒng)為信箱提供的原語:信箱的創(chuàng)建和撤銷,消息的發(fā)送和接收由操作系統(tǒng)或用戶創(chuàng)建信箱分為私有,公有,共享信箱消息緩沖對列通信機制數據結構:消息緩沖區(qū),PCB中有關通信的數據項發(fā)送

16、進程在發(fā)送消息之前要把待發(fā)送的消息正文,發(fā)送進程標識符,消息長度填入發(fā)送區(qū)。發(fā)送原語根據長度申請一緩沖區(qū),把發(fā)送區(qū)的信息復制到緩沖區(qū),然后掛在消息隊列上。接收進程從自己的隊列中摘下緩沖區(qū),復制。線程(調度和分派的基本單位)(進程是爸爸,線程是兒子們)區(qū)別:進程和線程的區(qū)別:(a)不同進程的地址空間是獨立的,而同一進程內的線程共享同一地址空間。(b)在引入線程的操作系統(tǒng)中,進程是資源分配和調度的單位,線程是處理機調度和分配的單位,資源是分配給進程的,線程只擁有很少資源,因而切換代價比進程切換低。引入線程是為了減少程序在并發(fā)執(zhí)行時所付出的時空開銷,使OS具有更好的并發(fā)性線程的三種狀態(tài)同進程線程控制

17、塊TCB多線程OS中的進程具有以下屬性1.進程是一個可擁有資源的基本單位2.多個線程并發(fā)執(zhí)行3.進程已不是可執(zhí)行的實體,線程才是調度和分派的基本單位開個QQ,開了一個進程;開了迅雷,開了一個進程。在QQ的這個進程里,傳輸文字開一個線程、傳輸語音開了一個線程、彈出對話框又開了一個線程。所以運行某個軟件,相當于開了一個進程。內核支持線程KST優(yōu)點:1.在多處理器系統(tǒng)中,內核可以同時調度一個進程中的多個線程并執(zhí)行 2.如果進程中的一個線程阻塞,內核可以調度該進程中的其他線程占有處理器或運行其他進程的線程 3.內核支持線程具有很小的數據結構和堆棧,線程切換快,切換開銷小 4.內核本身也可以采用多線程技

18、術,可以提高系統(tǒng)執(zhí)行速度和效率用戶級線程ULT用戶空間實現,無需內核支持優(yōu)點:1.線程切換不需要轉換到內核空間 2.調度算法可以是進程專用的 3.用戶級線程的實現與OS平臺無關,所有的應用程序都可以共享缺點:1.系統(tǒng)調用的阻塞問題2.進程中只有一個線程可以執(zhí)行內核支持線程的實現:系統(tǒng)創(chuàng)建一個新進程時,便為它分配一個任務數據區(qū)PTDA,其中包括若干個線程控制塊空間用戶級線程的實現:1.運行時系統(tǒng):管理和控制線程函數的集合。所有函數都駐留在用戶空間,并作為用戶級線程與內核之間的接口2.內核控制線程(輕型進程LWP):用戶級線程運行時 只需將它連接到一個LWP上,LWP可通過系統(tǒng)調用來獲得內核提供的

19、服務線程的創(chuàng)建和終止應用程序在啟動時,初始化線程在執(zhí)行,主要功能用于創(chuàng)建新線程創(chuàng)建新線程時,需要一個線程創(chuàng)建函數或系統(tǒng)調用,并提供相應的參數。創(chuàng)建完后返回一個線程標識符。終止線程通過調用相應的函數進行終止操作。有些線程(主要是系統(tǒng)線程),一旦被建立起來后,便一直運行下去不被終止。在大多數的OS中,線程被終止并不立即釋放所占有的資源,只有當進程中的其他線程執(zhí)行了分離函數,資源才分離調度的實質是一種資源分配。處理機調度的三個層次(高級調度,中級調度,低級調度)處理機調度算法的共同目標資源利用率。公平性。所有進程都獲得合理的CPU時間,不會出現饑餓現象。平衡性。為使系統(tǒng)中的CPU和各種外部設備都能經

20、常處于忙碌狀態(tài),要保持系統(tǒng)資源使用的平衡性。策略強制執(zhí)行。即使造成某些工作的延遲也要執(zhí)行批處理系統(tǒng)的目標平均周轉時間短。周轉時間和平均周轉時間都要短周轉時間=作業(yè)完成時間作業(yè)提交時間帶權周轉時間=周轉時間/服務時間系統(tǒng)吞吐量高。單位時間內系統(tǒng)所完成的作業(yè)數 與批處理作業(yè)的平均長度有關。比如單純?yōu)榱颂岣呦到y(tǒng)吞吐量,就選短作業(yè)運行處理器利用率高。分時系統(tǒng)的目標 響應時間快 均衡性實時系統(tǒng)的目標 截止時間的保證 可預測性在多道批處理系統(tǒng)中,作業(yè)被輸入設備輸入到磁盤存儲器中,并保存在一個后背作業(yè)隊列中,再由作業(yè)調度程序將其從外存調入內存。作業(yè) 運行的三種狀態(tài)收容狀態(tài),運行狀態(tài),完成狀態(tài),(后備狀態(tài))作

21、業(yè)步(Job Step) 作業(yè)控制塊(JCB) 作業(yè)在系統(tǒng)中存在的標志,包含:作業(yè)標識,用戶名稱,用戶賬號,作業(yè)類型(CPU繁忙型,I/O繁忙型,批量型,終端型),作業(yè)狀態(tài),調度信息(優(yōu)先級,作業(yè)運行時間),資源需求(預計運行時間,要求內存大小),資源使用情況作業(yè)調度的主要任務:根據JCB中的信息,檢查系統(tǒng)中的資源是否滿足作業(yè)對資源的需求,以及按照一定的調度算法,從外存的后備隊列中選取某些作業(yè)調入內存,并為他們創(chuàng)建進程,分配必要的資源,然后將新創(chuàng)建的進程安排在就緒隊列上等待調度。每次執(zhí)行作業(yè)調度時的兩個決定:接納多少作業(yè)和接納哪些作業(yè)先來先服務(FCFS)調度算法按照作業(yè)到達的先后次序或在隊列

22、中等待時間最長的作業(yè)。調入內存,分配資源和創(chuàng)建進程,放到就緒隊列中。短作業(yè)優(yōu)先調度算法作業(yè)越短優(yōu)先級越高 作業(yè)的長短是以作業(yè)所要求的運行時間來衡量的缺點:必須預知作業(yè)的運行時間 對長作業(yè)非常不利,長作業(yè)的周轉時間會明顯增加采用SJF算法時,人機無法實現交互未考慮作業(yè)的緊迫程度優(yōu)先級調度算法基于作業(yè)的緊迫程度,從外部賦予作業(yè)的優(yōu)先級。高響應比優(yōu)先調度算法優(yōu)先級又相當于響應比進程調度的任務:保護處理機的現場信息,按照某種算法選取進程,把處理器分配給進程進程調度機制:排隊器(將進程插入到相應隊列),分派器(根據調度程序選擇進程,從就緒隊列取出,把處理機分配給新選出的進程),上下文切換器進程調度方式非

23、搶占方式一旦把處理機分配給某進程后,不會因為時間中斷或任何其他原因去搶占當前正在運行進程的處理機,直到進程完成,或發(fā)生某事件而阻塞時,才把處理機分配給其他進程。搶占方式根據某種原則暫停正在執(zhí)行的進程?,F代OS廣泛采用搶占方式,因為搶占方式可以防止一個長進程長時間占用處理機。分時系統(tǒng)中只有采用搶占方式才能實現人機交互。實時系統(tǒng)中,搶占方式能滿足實時任務的需求,但搶占方式比較復雜,所需付出的系統(tǒng)開銷比較大。輪轉調度算法(RR算法)系統(tǒng)將所有就緒的進程按FCFS的策略排成一個就緒隊列。系統(tǒng)設置每隔一定時間便產生一次中斷,去激活進程調度程序進行調度,把CPU分配給隊首進程,并令其執(zhí)行一個時間片,運行完

24、畢后,把處理機給就緒隊列中的新的隊首進程,也執(zhí)行一個時間片。若一個時間片尚未用完,正在運行的進程已經完成,立即激活調度程序,把它從就緒隊列中刪除,再調度就緒隊列中隊首的進程運行。若時間片用完,進程還沒完,則先把它送到隊列末尾。優(yōu)先級調度算法把處理機分給就緒隊列中優(yōu)先級最高的進程非搶占式優(yōu)先級調度算法 搶占式優(yōu)先級調度算法優(yōu)先級的類型靜態(tài)優(yōu)先級 創(chuàng)建進程時確定 保持不變確定優(yōu)先級大小的依據:進程類型,進程對資源的需求,用戶要求動態(tài)優(yōu)先級 隨進程的推進或等待時間的增加而改變多級反饋隊列調度算法1.設置多個就緒隊列2.每個隊列都采用先來先服務算法。若進程在一個時間片沒有完成,調度程序將其轉入第二隊列

25、的末尾等待,如果再未完成,以此類推。如果被降到最后一個隊列,則最后一個隊列采用的是RR方式運行3.按隊列優(yōu)先調度 即第一隊列的優(yōu)先級大于第二隊列等當1i-1的隊列為空式,才會調度i 隊列中的進程。如果中途有優(yōu)先級更高的隊列里有進程,此時會立即把運行的進程放到i 隊列末尾,把處理機分配給剛來的。如果規(guī)定好第一個時間片略大于大多數人機交互所需處理的時間,便能滿足終端型用戶,長、短批處理作業(yè)用戶保證調度算法 沒有優(yōu)先級 如保證每個進程都獲得相同的處理機時間公平分享調度算法 分配給每個進程相同的處理機時間實時調度基本條件:提供就緒時間,開始截止時間或完成截止時間,處理時間,資源要求,優(yōu)先級系統(tǒng)處理能力

26、強 假設有m個周期性任務,他們的處理時間為Ci,周期時間表為Pi,必須滿足i=1mCiPi1提高處理能力:一是采用單處理機系統(tǒng),但必須增強其處理能力,以顯著的減少每一個任務的處理時間。二是采用多處理機系統(tǒng),則i=1mCiPiN即可。采用搶占式調度具有快速切換機制 面對中斷的快速響應能力 禁止中斷的時間間隔短快速的任務分派能力 系統(tǒng)中的每個運行功能單位要小根據實時任務性質,分為硬、軟實時調度算法根據調度方式,分為非搶占調度算法(*輪轉調度算法,*優(yōu)先調度算法)和搶占調度算法(基于時鐘中斷的,立即搶占的)最早截止時間優(yōu)先EDF最低松弛度優(yōu)先LLF優(yōu)先級倒置高優(yōu)先級被低優(yōu)先級進程延遲或阻塞解決方法:

27、規(guī)定一個進程進入臨界區(qū)后,處理機不允許被搶占死鎖 在一組進程發(fā)生死鎖的情況下,這組死鎖進程的每一個進程都在等待另一個死鎖進程所占有的資源引起死鎖主要是采用互斥訪問方法,不能被搶占的資源可重用性資源 每一個可重用性資源中的單元只能分配給一個進程使用進程使用順序:請求資源(失敗會被阻塞或循環(huán)等待),使用資源,釋放資源系統(tǒng)中每一類可重用性資源中的單元數目是相對固定的,進程在運行期間不能創(chuàng)建也不能刪除它??上男再Y源 臨時性資源由進程動態(tài)地創(chuàng)建和消耗可搶占性資源 顧名思義不可搶占性資源 不能強行收回,只能進程用完后自行釋放競爭不可搶占性資源引起死鎖 數量不夠競爭可消耗資源引起死鎖 通信時的死鎖進程推進

28、順序不當引起死鎖 兩個持有資源的并發(fā)進程想相互訪問產生死鎖的必要條件互斥條件 請求和保持條件 不可搶占條件 循環(huán)等待條件處理死鎖1.預防死鎖 破壞必要條件中的一個或幾個互斥條件不能破壞 只能破壞后面的(1)破壞請求和保持條件系統(tǒng)保證做到一個進程在請求資源時他不能持有不可搶占資源 第一種協議:所有進程在運行開始前必須一次性申請全部資源第二張協議:只獲得初期所需的資源,后面逐步釋放,然后再請求(2)破壞不可搶占條件當一個已經保持了某些不可被搶占資源的進程,提出新的資源請求而不能滿足時,必須釋放已經保持的所有資源,以后需要再申請。(3)破壞等待條件對所有資源類型進行線性排序,并賦予不同的序號避免死鎖

29、 在資源動態(tài)分配過程中,防止系統(tǒng)進入不安全狀態(tài)安全狀態(tài) 系統(tǒng)不會死鎖 不安全 系統(tǒng)可能會死鎖死鎖檢測算法 保持資源的請求和分配信息根據死鎖定理消去資源分配圖中的所有邊 即無死鎖死鎖的解除從一個進程或多個進程搶占資源給死鎖進程終止所有死鎖進程逐個終止進程 付出代價最小的死鎖解除算法存儲器的多層結構最高為CPU存儲器 中間為主存 最底層為輔存主存(內存、可執(zhí)行存儲器) 保存進程運行時的程序和數據 輔存的高速緩存寄存器 與處理機速度相同高速緩存 介于寄存器和存儲器之間 減少CPU對主存的訪問次數磁盤緩存 并不實際存在 緩和磁盤和主存速度上的不匹配用戶程序變成可執(zhí)行程序:編譯 鏈接 裝入程序的裝入絕對

30、裝入方式:用戶程序經編譯產生絕對地址(物理地址) 適合系統(tǒng)小 只能運行單道程序可重定位裝入方式 相對于起始地址 不允許移動 多道程序動態(tài)運行時裝入方式 同上面的但是可以移動程序的鏈接靜態(tài)鏈接裝入時動態(tài)鏈接邊裝入邊鏈接 在裝入一個目標模塊時,若發(fā)生一個外部模塊調用事件,將引起裝入程序去找出相應的外部目標模塊,并將它裝入內存。 優(yōu)點是便于修改和更新、便于實現對目標模塊的共享。運行時動態(tài)鏈接將可能要運行到的模塊全部裝入內存,并在裝入時全部鏈接在一起。比如錯誤處理用的目標連續(xù)分配存儲器管理方式單一連續(xù)分配 在用戶去內存中,僅裝有一道用戶程序,即整個內存的用戶空間由該程序獨占。固定分區(qū)分配 分區(qū)大小相等

31、 大小不等按大小排序 分區(qū)記錄表記錄分區(qū)使用情況動態(tài)分區(qū)分配 分區(qū)空閑表 分區(qū)空閑鏈動態(tài)分區(qū)分配算法分區(qū)分配操作 系統(tǒng)從空閑分區(qū)表找到所需要大小的分區(qū)回收內存 當回收區(qū)與插入點的前一個空閑分區(qū)F1相連接,將回收區(qū)與F1合并,修改F1的大小,地址為F1若與后一個,也合并,改回收區(qū)大小,地址為回收區(qū)若與插入區(qū)前后兩個空閑分區(qū)相連,合并三個,取前一個為首地址若誰都不相連,為回收區(qū)建立一個新的表項基于順序搜索的動態(tài)分區(qū)分配算法首次適應算法 FF要求空閑分區(qū)鏈以地址遞增的次序鏈接,內存分配時,按順序查找,找到第一個滿足的就分配 這個方法最有可能使得高地址空間成為大的空閑區(qū)循環(huán)首次適應算法 NF。從上次找

32、到的空閑分區(qū)開始找 為了避免低地址有很多空閑分區(qū)最佳適應算法 BF 按容量從小到大形成分區(qū)鏈最壞適應算法 WF 挑最大的空閑分區(qū) 從中分割一部分給作業(yè)使用基于索引搜索的動態(tài)分區(qū)分配算法1.快速適應算法 分類搜索法將具有相同容量的空閑分區(qū)合到一起 并建立空閑分區(qū)鏈表2.伙伴系統(tǒng)3.哈希算法 類似1動態(tài)可重定位分區(qū)分配緊湊 一個系統(tǒng)或用戶程序必須被裝入一片連續(xù)的內存空間中動態(tài)重定位 重定位寄存器 程序在執(zhí)行時真正訪問的內存地址是相對地址與重定位寄存器中的地址相加動態(tài)重定位分區(qū)分配算法 如果找不到一個足夠大的分區(qū),會把小的拼起來對換的引入 進程的阻塞占用大量內存 迫使cpu等待對換即將一定數量的程序

33、或數據換入或換出內存 根據每次所對換的數量 分為整體對換和頁面分段對換在具有對換功能的OS中,通常把磁盤空間分為文件區(qū)和對換區(qū)為了實現對換區(qū)的管理,空閑分區(qū)表 對換區(qū)的首地址和大小 盤塊號和盤塊數對換區(qū)的分配算法與動態(tài)分區(qū)的分配雷同進程的換出:選擇被換出的進程 進程換出過程進程的換入:對換進程將定時執(zhí)行換入操作,先看PCB中所有進程狀態(tài),選擇就緒但已換出的進程,如果有多個,選換出到磁盤上時間最久的那個為他申請內存,如果成功,調入,涂過失敗,先把內存中的某些進程換出,騰出足夠空間再調入分頁存儲管理的基本方法頁面和物理塊 頁面和物理塊的大小一樣 設有8頁的邏輯空間,每頁有1024B,被影射到32塊

34、的物理內存中,那么邏輯地址的有效位是_物理地址至少是_2的三次方和2的十次方 13。 2的5次方和2的十次方 15地址結構 0-11 位移量 12-31 頁號=地址/頁面大小 頁內地址=地址MOD 頁面大小 頁表(在內存中) 允許進程的各個頁離散地存在內存中 為了進程正常運行,系統(tǒng)為每個進程建立了一張頁面映像表地址變換機構。基本的就是硬件實現,頁表采用一組專門的寄存器,一頁用一個。先從內存中找到邏輯地址,再找到對應的物理地址取出數據需要2t的時間快表的話就是直接得到邏輯頁所對應的物理塊號分段存儲管理方式 方便編程,信息共享 信息保護 動態(tài)增長 動態(tài)鏈接分段 作業(yè)的地址空間被劃分為若干個段。段號

35、+段內地址如主程序段,子程序段等2段表3.地址變換機構 段表始址和段表長度TL 進行變換時 若STL 越界 產生中斷信號 若未越界,得到段表項的位置 讀出該段在內存中的起始地址d 如果dTL 越界未越界則d+基址未物理地址分頁和分段的主要區(qū)別:頁是信息的物理單位,頁的大小固定且由系統(tǒng)決定,分頁的用戶程序地址空間是一維的段頁式存儲管理方式 地址結構段號+段內頁號+頁內地址用戶所感到的內存容量比實際內存容量大的多傳統(tǒng)存儲器的特征:一次性 駐留性虛擬存儲器的特征:多次性 對換性 虛擬性實現方法分頁請求系統(tǒng) 請求分頁的頁表機制 :將用戶地址空間中的邏輯地址映射為內存空間中的物理地址。缺頁中斷機構 :在

36、指令執(zhí)行期間產生和處理中斷信號 一條指令在執(zhí)行期間可能產生多次缺頁中斷地址變換機構 實現請求分頁軟件請求分頁內存分配固定分配:平均分配 按比例分配(根據進程的大小按比例分配物理塊)考慮優(yōu)先權的分配算法頁面調入:預調頁策略 請求調頁策略從何處調入頁面 :系統(tǒng)擁有足夠的對換區(qū)間,這時可以全部從對換區(qū)調入所需頁面 系統(tǒng)缺少足夠的對換區(qū)間 這時凡事不會被修改的文件會直接從文件區(qū)調入 頁面調入過程:每當程序所要訪問的頁面未再內存時 便發(fā)出缺頁中斷 中斷處理程序保留CPU環(huán)境 分析原因后轉入缺頁中斷處理程序缺頁率:訪問頁面成功次數為S,失敗次數為F,總次數A=S+F 缺頁率f=F/A假設被置換的頁面被修改

37、的概率為p,缺頁中斷處理時為ta,被置換頁面沒有被修改的缺頁中斷時間為tb,則t=p*ta+(1-p)*tb頁面置換算法最佳置換算法 選擇被淘汰的頁面時以后不使用或長時間內不再被訪問的。無法實現先進先出 淘汰最先進入內存的 不太好用有些頁面老是被訪問,如全局變量,常用函數最近最久未使用算法LRU。配置移位寄存器R=Rn-1Rn-2Rn-3R2R1R0當進程訪問時,將相應的R變?yōu)?,定時信號將每隔一定時間將寄存器右移一位或用棧 每當進程訪問某頁面時,將該頁面的頁號從棧中移出,將它壓入棧頂。棧頂始終是最新被訪問的編號,棧底則是最近最久未使用的頁面號最少使用置換算法LFU 移位寄存器記錄頁面被訪問的頻率,選擇最少使用的淘汰Clock置換算法:首先調出的頁是在最近一段時間內未被訪問的頁面。在將一個頁面換出時,如果該頁已被修改過,重新寫回磁盤,未被則不必 還需考慮置換代價頁面緩沖算法PBA 特點:顯著降低了頁面

溫馨提示

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

評論

0/150

提交評論