操作系统知识点总结+最终版
1、測試題要搞明白 點擊可得測試題詳解
2、操作系統的四個基本特征,基本功能
操作系統的目標:方便性、有效性、可擴充性、開放性。
操作系統的四大基本特征:1、并發2、共享3、虛擬4、異步;
操作系統的五大功能分別是處理器管理、存儲器管理、設備管理、文件管理和(作業管理)。
1、處理器管理
處理器管理最基本的功能是處理中斷事件,配置了操作系統后,就可對各種事件進行處理。處理器管理還有一個功能就是處理器調度,針對不同情況采取不同的調度策略。
2、存儲器管理
存儲器管理主要是指針對內存儲器的管理。主要任務是分配內存空間,保證各作業占用的存儲空間不發生矛盾,并使各作業在自己所屬存儲區中不互相干擾。
3、設備管理
設備管理是指負責管理各類外圍設備,包括分配、啟動和故障處理等。主要任務是當用戶使用外部設備時,必須提出要求,待操作系統進行統一分配后方可使用。
4、文件管理
文件管理是指操作系統對信息資源的管理。在操作系統中,將負責存取的管理信息的部分稱為文件系統。文件管理支持文件的存儲、檢索和修改等操作以及文件的保護功能。
文件邏輯結構分類
按文件的有無結構分:1:有結構文件(記錄式文件) 2:無結構文件(流式文件) 按文件組織方式分: 1:順序文件,2:索引文件,3:索引順序文件
5、作業管理
每個用戶請求計算機系統完成的一個獨立的操作稱為作業。作業管理包括作業的輸入和輸出,作業的調度與控制,這是根據用戶的需要來控制作業運行的。
3、多道批處理系統、分時系統、實時系統為什么引入,以及特征
為什么引入多道批處理系統:為了進一步提高資源的利用率和系統吞吐量。特點:(優點:)資源利用率高、系統吞吐量大、(缺點:)平均周轉時間長、無交互能力。
為什么引入分時系統:為了滿足用戶對人—機交互的需求。特點:多路性、 獨立性、及時性、交互性。
為什么引入實時系統:為了滿足實時控制和實時信息處理兩個領域的要求。特點:時間約束性、可預測性、可靠性、交互性、多路性、獨立性、及時性。
1.多道批處理系統
在單道批處理系統中,內存中僅有一道作業,它無法充分利用系統中的所有資源,致使系統性能較差。
在多道批處理系統中,用戶所提交的作業都先存放在外存上并排成一個隊列,稱為“后備隊列”。然后,由作業調度程序按一定的算法從后備隊列中選擇若干個作業調入內存,使它們共享CPU和系統中的各種資源。其優缺點為:
(1)資源利用率高;
(2)系統吞吐量大:系統吞吐量是指系統在單位時間內所完成的總工作量。能提高系統吞吐量的主要原因可歸納為:第一,CPU和其它資源保持“忙碌”狀態;第二,僅當作業完成時或運行不下去時才進行切換,系統開銷小;
(3)平均周轉時間長;
(4)無交互能力。
2.分時系統
分時系統與多道批處理系統之間有著截然不同的性能差別,它能很好地將一臺計算機提供給多個用戶同時使用,提高計算機的利用率。分時系統是指,在一臺主機上連接了多個帶有顯示器和鍵盤的終端,同時允許多個用戶通過自己的終端,以交互方式使用計算機,共享主機中的資源。其特征為:
(1)多路性:允許在一臺主機上同時聯接多臺聯機終端,系統按分時原則為每個用戶服務。
(2)獨立性:每個用戶各占一個終端,彼此獨立操作,互不干擾。
(3)及時性:用戶的請求能在很短的時間獲得響應。
(4)交互性:用戶可通過終端與系統進行廣泛的人機對話。
3.實時系統
所謂“實時”,是表示“及時”,而實時系統是指系統能及時響應外部事件的請求,在規定的時間內完成對該事件的處理,并控制所有實時任務協調一致的運行。其應用需求主要在實時控制和實時信息處理。將作業按照它們的性質分bai組(或du分批),然后再成組(或成批zhi)地提交給dao計算機系統,由計算機自動完成后再輸出結果,從而減少作業建立和結束過程中的時間浪費。根據在內存中允許存放的作業數,批處理系統又分為單道批處理系統和多道批處理系統。
優缺點
現在的批處理系統主要指多道批處理系統,它通常用在以科學計算為主的大中型計算機上,由于多道程序能交替使用CPU,提高了CPU及其他系統資源的利用率,同時也提高了系統的效率。多道批處理系統的缺點是延長了作業的周轉時間,用戶不能進行直接干預,缺少交互性,不利于程序的開發與調試。
特點
多道-在內存中同時存放多個作業,使之同時處于運行狀態,這些作業共享CPU和外部設備等資源。
成批-用戶和他的作業之間沒有交互性。用戶自己不能干預自己的作業的運行,發現作業錯誤不能及時改正
便于多用戶對一個終端同時進行操作。
4、進程同步機制四條基本準則,要明白其含義
空閑讓進、忙則等待、有限等待、讓權等待。
進程在并發執行i時為了保證結果的可再現性,各進程執行序列必須加zhi以限制以保證互斥地使用臨界資源,相互合作完成任務。多個相關進程在執行次序上的協調稱為進程同步。用于保證多個進程在執行次序上的協調關系的相應機制稱為進程同步機制。
所有的進程同步機制應遵循下述四條準則:
空閑讓進
當無進程進入臨界區時,相應的臨界資源處于空閑狀態,因而允許一個請求進入臨界區的進程立即進入自己的臨界區。
忙則等待
當已有進程進入自己的臨界區時,即相應的臨界資源正被訪問,因而其它試圖進入臨界區的進程必須等待,以保證進程互斥地訪問臨界資源。
有限等待
對要求訪問臨界資源的進程,應保證進程能在有限時間進入臨界區,以免陷入“饑餓”狀態。
讓權等待
當進程不能進入自己的臨界區時,應立即釋放處理機,以免進程陷入忙等。
5、記錄型信號量PPT好好看看,理解信號量含義,PV具體操作
S是與臨界區內所使用的的公有資源有關的信號量;
wait(s) :即P操作,表示申請一個資源;
signal(s):即V操作,表示釋放一個資源;
初始化指定一個非負整數值,表示空閑資源總數;
在信號量經典定義下,信號量s的值不可能為負值;
S≥0時 S表示可供并發使用的資源數;
S<0時 其絕對值表示等待使用該資源的進程個數。
在信號量機制中,除了需要一個用于代表資源數目的整型變量value外,還有一個進程鏈表L,用于鏈接所有等待該信號量代表資源的進程。
wait操作(P操作)
申請一個資源,得到繼續,得不到阻塞,可描述為if(s.value>0)s.value--;if(s.value≤0)s.value--;block(s.L);簡練為: s.value--;if(s.value<0)block(s.L);wait原語: void wait(static semaphore s) {s.value--;if (s.value<0)block(s.L);}signal操作(V操作)
釋放一個資源,有進程等待則喚醒一個(被喚醒的進程進入就緒狀態),可描述為if(s.value≥0)s.value++;if(s.value<0)s.value++;wakeup(s.L);簡練為: s.value++;if(s.value≤0)wakeup(s.L);signal原語void signal(static semaphore s) {s.value++;if (s.value≤0)wackup(s.L);}
tips:P、V操作必須成對出現。缺少P操作,將導致系統混亂,無法保證互斥;缺少V操作,臨界資源得不到釋放,從而使因等待該資源而阻塞的進程不再被喚醒。一般互斥信號量初始值都設置為1。
6、死鎖的概念,產生死鎖的四個必要條件(充分理解),處理死鎖的四種方法
概念:死鎖是指多個進程在運行過程中因爭奪資源而造成的一種僵局,當進程處于這種僵持狀態時,若無外力作用,它們都將無法再向前推進。 也就是說,一組等待的進程,其中每一個進程都持有資源,并且等待著由這個組中其他進程所持有的資源。這時這組進程就處于死鎖狀態。
定義:所謂死鎖是指在多道程序系統中,一組進程中的每一個進程均無限期地等待被該組進程中的另一個進程所占有且永遠不會釋放的資源;這種現象稱系統處于死鎖狀態,簡稱死鎖。處于死鎖狀態的進程稱為死鎖進程。 死鎖發生后,死鎖進程將一直等待下去,發生死鎖時死鎖進程至少有兩個;所有死鎖進程都在等待資源,并且其中至少有兩個進程已占有資源。死鎖不僅會浪費大量系統資源,甚至會導致整個系統崩潰,帶來災難性后果。
產生死鎖的四個必要條件:互斥、請求和保持、不可搶占、循環等待。
處理死鎖的四種方法:目前處理死鎖的方法可歸結為五種:鴕鳥策略、預防死鎖、避免死鎖、檢測死鎖、 解除死鎖。
※忽略這個問題,假裝系統中從未出現過死鎖。這個方法被大部分的操作系統采用,包括UNIX)鴕鳥策略
※ (確保系統永遠不會進入死鎖狀態)預防死鎖,避免死鎖
※允許系統進入死鎖狀態,然后恢復系統)死鎖檢測 (靜態分配、可剝奪、有序分配)
什么是死鎖,死鎖產生的4個條件
死鎖定義:
在兩個或多個并發進程中,如果每個進程持有某種資源而又都等待別的進程釋放它或它們現在保持著的資源,在未改變這種狀態之前都不能向前推進,稱這一組進程產生了死鎖。通俗地講,就是兩個或多個進程被無限期地阻塞、相互等待的一種狀態。
產生條件:
1:互斥條件 – 一個資源一次只能被一個進程使用
2:請求保持條件– 一個進程因請求資源而阻塞時,對已經獲得資源保持不放
3:不可搶占條件 – 進程已獲得的資源在未使用完之前不能強行剝奪
4:循環等待條件 – 若干進程之間形成一種頭尾相接的循環等待資源的關系
預防避免死鎖的方法
1:破壞“請求和保持”條件:規定所有進程在開始運行之前,都必須一次性的申請其在整個運行過程所需要的全部資源。
優點:簡單,安全。 缺點:資源嚴重浪費,惡化了系統的利用率;
2:破壞“不剝奪”條件:進程逐個的提出資源請求,當一個已經保持了某些資源的進程,再提出新的資源請求而不能立即得到滿足時,必須釋放它已經保持了的所有資源,待以后需要時再重新申請。
缺點:實現復雜,代價大,反復地申請和釋放資源,而使進程的執行無限的推遲、延長了進程的周轉時間增加系統開銷、降低系統吞吐量。
3:破壞“環路等待”條件:將所有的資源按類型進行線性排隊,并賦予不同的序號。所有進程請求資源必須按照資源遞增的次序提出,防止出現環路。
缺點:1、序號必須相對穩定,限制了新設備類型的增加2、作業(進程)使用資源順序和系統規定的順序不同而造成資源的浪費3、限制了用戶編程
注意:由于互斥條件是非共享設備所必需的,不能改變
死鎖預防:破壞產生死鎖的四個必要條件之一
死鎖預防是計算機操作系統,在設計時確定資源分配算法,為保證不發生死鎖,而破壞產生死鎖的必要條件的行為過程。
破壞“互斥”條件
就是在系統里取消互斥。若資源不被一個進程獨占使用,那么死鎖是肯定不會發生的。
但一般來說在所列的四個條件中,“互斥”條件是無法破壞的。因此,在死鎖預防里主要是破壞其他幾個必要條件,而不去涉及破壞“互斥”條件。
.破壞“占有并等待”條件
破壞“占有并等待”條件,就是在系統中不允許進程在已獲得某種資源的情況下,申請其他資源。即要想出一個辦法,阻止進程在持有資源的同時申請其他資源。
方法一:
創建進程時,要求它申請所需的全部資源,系統或滿足其所有要求,或什么也不給它。這是所謂的 “ 一次性分配”方案。
方法二:
要求每個進程提出新的資源申請前,釋放它所占有的資源。這樣,一個進程在需要資源S時,須先把它先前占有的資源R釋放掉,然后才能提出對S的申請,即使它可能很快又要用到資源R。
破壞“不可搶占”條件
破壞“不可搶占”條件就是允許對資源實行搶奪。
方法一:如果占有某些資源的一個進程進行進一步資源請求被拒絕,則該進程必須釋放它最初占有的資源,如果有必要,可再次請求這些資源和另外的資源。
方法二:如果一個進程請求當前被另一個進程占有的一個資源,則操作系統可以搶占另一個進程,要求它釋放資源。只有在任意兩個進程的優先級都不相同的條件下,方法二才能預防死鎖。
破壞“循環等待”條件
破壞“循環等待”條件的一種方法,是將系統中的所有資源統一編號,進程可在任何時刻提出資源申請,但所有申請必須按照資源的編號順序(升序)提出。這樣做就能保證系統不出現死鎖。
7、響應比公式,課本98頁
響應比 =(等待時間+要求服務時間) / 要求服務時間;Q:一個作業8:00到達系統,估計運行時間為1小時,若10:00開始執行該作業,其響應比為( 3 )。(2+1)/1=3
8、動態分區分配算法思想
由于動態分區分配不是事先劃分好區域,而是“按需分配”,所以不會出現區域劃分出去后無法完全得到利用的情況,也即不會產生內部碎片;但是可能出現內存空間太小而無法被分配出去的情況,也即可能產生外部碎片。
9、磁盤的3種文件物理結構,好好看看第八章PPT
文件的物理結構:文件在物理存儲空間中的存放方法和組織關系。文件的物理結構與存儲設備的特性有很大關系。文件的存儲設備通常劃分為大小相等的物理塊,物理塊是分配及傳輸信息的基本單位。一個物理塊中可以存放若干個邏輯記錄,一個邏輯記錄也可以存放在若干個物理塊中。
順序/連續文件:將一個文件中邏輯上連續的信息存放到磁盤上的依次相鄰的塊上便形成順序結構,這類文件叫順序/連續文件, 文件控制塊需要記錄該文件第一個盤塊的盤塊號和文
長度。最簡單的物理文件結構,它將邏輯上連續的文件信息依次存放在外存連續的物理塊中。
優點:簡單 支持隨機存取和順序存取、順序存取速度快、所需的磁道尋道次數和尋道時間最少。
缺點:要求有連續的存儲空間,出現許多外部碎片、必須事先知道文件的長度、不能靈活地刪除和插入記錄、不支持動態擴充。
鏈接/串聯文件:順序的邏輯記錄被存放在不連續的磁盤塊上,用指針把這些磁盤塊按邏輯記錄的順序鏈接起來,則形成了文件的鏈接結構,鏈接結構的文件稱為鏈接/串聯文件。
優點:消除了外部碎片、顯著地提高外存,空間的利用率、無需事先知道文件長度 、對文件的增、刪、改很容易。
最大的缺點是不支持隨機存取。
索引文件:順序結構支持隨機存取,但有外碎片;鏈接結構沒有外碎片,但不能直接存取; FAT可以隨機存取,但需要占用較大的內存空間;事實上,打開某個文件時,只需知道該文件所在的盤塊號;一個文件的信息存放在若干不連續物理塊中,系統為每個文件建立一個索引表,并將這些塊的塊號存放在索引表中; 一個索引表就是磁盤塊地址數組,其中第i個條目指向文件的第i塊
定義:為每個文件分配一個索引塊(用來存放索引的盤塊),把分配給該文件的所有盤塊號都記錄在該索引塊中,按照這種分配方式存儲的文件就是索引文件 。索引分配支持隨機存取而沒有外碎片,但需要索引表(索引表需要占內存空間)。
保持鏈接結構的優點,又克服了其缺點。
優點:既能順序存取又能隨機存取、滿足了文件動態增長/插入刪除要求、能充分利用外存空間。
缺點:較多的尋道次數和尋道時間、索引表本身帶來了系統開銷,如:內外存空間,存取時間 。
10、文件存儲空間的管理概念,四種方法
空閑表法(空閑文件目錄、空閑區索引法):屬于連續分配方式,它與內存的動態分配方式雷同,它為每個文件分配一塊連續的存儲空間。.空閑文件目錄適用于連續文件結構的文件儲存區的分配和回收.
空閑鏈表法(自由鏈法):是將所有的空閑盤區拉成一條空閑鏈。根據構成鏈的基本元素的不同,可有兩種鏈表方式:空閑盤塊鏈、空閑盤區鏈。
空閑盤塊鏈
它是將磁盤上的所有空閑存儲空間,以盤塊為基本元素拉成一條鏈。優點是用于分配和回收一個盤塊的過程非常簡單;缺點是空閑盤塊鏈可能很長。
空閑盤區鏈
這是將磁盤上的所有空閑盤區(每個盤區可包含若干個盤塊)拉成一條鏈。在每個盤區上除了含有用于指示下一個空閑盤區的指針外,還應標有指明本盤區大小(盤塊數)的信息。這方法分配和回收過程較復雜,但空閑盤區鏈較短。
位示圖法:位示圖是利用二進制的一位來表示磁盤中一個盤塊的使用情況。用于分頁式存儲管理中內存空閑塊的分配和回收
成組鏈接法空閑表法和空閑鏈表由于空閑表太長而不適合大型文件系統的使用。成組鏈接法是兩種方法相結合的一種管理方法,兼備了兩種方法的優點而克服了兩種方法的缺點。其大致的思想是:把空閑的n個順序(可以是地址,也可以說是其他)空閑扇區的地址保存在其第一個空閑扇區內,其后一個空閑扇區內則保存另一組順序空閑扇區的地址,以此類推,直至所有空閑扇區都予以鏈接。
進程的特征與三種基本狀態
1、特征:
1:動態性,2:并發性,3:獨立性,4:異步性。
2、狀態:
1:就緒狀態 當進程已分配到除CPU以外的所有必要的資源,只要獲得處理機便可立即執行,這時的進程狀態稱為就緒狀態。
2:執行狀態 當進程已獲得處理機,其程序正在處理機上執行,此時的進程狀態稱為執行狀態。
3:阻塞狀態 正在執行的進程,由于等待某個事件發生而無法執行時,便放棄處理機而處于阻塞狀態。引起進程阻塞的事件可有多種,例如,等待I/O完成、申請緩沖區不能滿足、等待信件(信號)等。
3、三種基本狀態轉換:
(1) 就緒→執行
處于就緒狀態的進程,當進程調度程序為之分配了處理機后,該進程便由就緒狀態轉變成執行狀態。
(2) 執行→就緒
處于執行狀態的進程在其執行過程中,因分配給它的一個時間片已用完而不得不讓出處理機,于是進程從執行狀態轉變成就緒狀態。
(3) 執行→阻塞
正在執行的進程因等待某種事件發生而無法繼續執行時,便從執行狀態變成阻塞狀態。
(4) 阻塞→就緒
處于阻塞狀態的進程,若其等待的事件已經發生,于是進程由阻塞狀態轉變為就緒狀態。
在引入掛起原語Suspend和激活原語Active后,在它們的作用下,進程將可能發生以下幾種狀態的轉換:
(1) 活動就緒→靜止就緒。
(2) 活動阻塞→靜止阻塞。
(3) 靜止就緒→活動就緒。
(4) 靜止阻塞→活動阻塞。
12、程序的裝入方式,好好看第四章PPT
用戶程序要在系統中運行,必須先將它裝入內存,然后再將其轉變為一個可以執行的程序,通常都要經過以下幾個步驟:
(1) 編譯,由編譯程序對用戶源程序進行編譯,形成若干個目標模塊;
(2) 鏈接,由鏈接程序將編譯后形成的一組目標模塊以及它們所需要的庫函數鏈接在一起,形成一個完整的裝入模塊;
(3) 裝入,由裝入程序將裝入模塊裝入內存。
在將一個裝入模塊裝入內存時,可以有如下三種裝入方式:
絕對裝入方式(單道程序環境);
靜態可重定位裝入方式(多道程序環境);
動態運行時裝入方式(運動中移動位置)。
13、幾種頁面置換算法理解
最佳置換算法
方法:淘汰那些以后永不使用,或者是在最長時間內不再被訪問的頁。可以保證獲得最低的缺頁率。
實現:確定要替換的時刻t;找出主存中每個頁將來要用到的時刻ti;ti -t最大的頁將被替換。
特點:命中率高,但難于實現(必須運行一遍,才能知道未來的時刻ti),是理想算法,只能作為其它置換算法的衡量標準 。
先進先出(FIFO)頁面置換算法
方法:最早裝入主存的頁作為被替換的頁,即選擇在內存中駐留時間最久的頁面予以淘汰。
實現:只需把一個進程已調入內存的頁面,按先后次序鏈接成一個隊列,并設置一個指針,稱為替換指針,使它總可以指向最老的頁面。
特點:利用歷史信息,但不反映程序的局部性(最先進入的頁可能是現在經常使用的頁)。
LRU(Least Recently Used)置換算法
方法:近期最久未訪問過的頁作為被替換的頁。
實現:賦予每個頁面一個訪問字段,用來記錄一個頁面自上次被訪問以來所經歷的時間t,當須淘汰一個頁面時,選擇現有頁面中其t值最大的頁面予以淘汰。
特點:根據“歷史”預測“未來”。 LRU算法是較好的一個算法,但是開銷太大,要求系統有較多的支持硬件(移位寄存器或棧)。
最少使用(Least Frequently Used,LFU)置換算法
在采用LFU算法時,應為在內存中的每個頁面設置一個移位寄存器,用來記錄該頁面被訪問的頻率。該置換算法選擇在最近時期使用最少的頁面作為淘汰頁。
簡單的Clock置換算法
當利用簡單Clock算法時,只需為每頁設置一位訪問位,再將內存中的所有頁面都通過鏈接指針鏈接成一個循環隊列。
在將一個頁面換出時,如果該頁已被修改過,便須將該頁重新寫回到磁盤上;但如果該頁未被修改過,則不必將它拷回磁盤。換而言之,對于修改過的頁面,在換出時所付出
的開銷比未修改過的頁面大,或者說,置換代價大。在改進型Clock算法中,除須考慮頁面的使用情況外,還須再增加一個因素——置換代價。
改進型Clock置換算法
算法:對于修改過的頁面,在換出時所付出的開銷比未修改過的頁面大,或者說,置換代價大。因此,對簡單Clock置換算法進行了改進:增加了置換代價。選擇換出頁面時,既要是未使用過的頁面,又要是未被修改過的頁面,把同時滿足兩條件的頁面作為首選被淘汰的頁。
特點:該算法與簡單Clock算法比較,可減少磁盤的I/O操作次數 ,但實現該算法本身的開銷將有所增加。
頁面緩沖算法
影響頁面換進換出效率的若干因素:頁面置換算法、寫回磁盤的頻率、讀入內存的頻率。
頁面緩沖算法PBA
PBA算法的主要特點是:① 顯著地降低了頁面換進、換出的頻率,使磁盤I/O的操作次數大為減少,因而減少了頁面換進、換出的開銷;② 正是由于換入換出的開銷大幅度減
小,才能使其采用一種較簡單的置換策略,如先進先出(FIFO)算法,它不需要特殊硬件的支持,實現起來非常簡單。
1) 空閑頁面鏈表
2) 修改頁面鏈表
計算題
1、四種磁盤調度算法
例:若干個等待訪問磁盤者依次要訪問的磁道為20,44,40,4,80,12,76,假設每移動一個磁道需要3ms時間,移動臂當前位于40號磁道,請按下列算法分別計算為完成上述各次訪問總共花費的尋道時間以及尋道次序。
(1)先來先服務算法;
(2)最短尋道時間優先算法。
(3)電梯SCAN調度
(4)CSCAN
詳解:
FIFO先來先服務算法
按照順序
磁道訪問順序:20、44、40、4、80、12、76
尋道時間=(20+24+36+76+68+64+4)*3=876
SSTF最短尋道時間優先算法。
選擇從當前磁頭位置所需尋到時間最短的請求
(簡單來說:每次選擇與上一次距離最近的點,畫圖,最后相加)
磁道訪問順序:40、44、20、12、4、76、80
尋道時間=(4+24+8+8+72+4)3 = 360*
電梯SCAN調度
掃描算法/電梯算法
與磁頭當前移動方向一致,而且是離當前磁頭最近的那個點。
(題目會給方向)指定了磁頭朝磁道號減小的方向(0的方向)
磁道訪問順序:40、20、12、4、44、76、80
尋道時間=(20+8+8+40+32+4)*3 = 336
CSCAN 循環掃描算法(順時針或逆時針走到黑)
提供更均衡的等待時間。
和SCAN不同的是:當它到了另一端,就立刻回到磁盤開始處。
(題目會給方向)規定磁頭朝著磁道號增加的方向移動。
磁道訪問順序:40、44、76、80、4、12、20
尋道時間=(4+32+4+76+8+8)3=396*
2、磁盤索引組織方式中混合式索引(直接、一級、二級索引)
例:某文件系統采用索引文件結構,設文件索引表的每個表目占3個字節,存放一個盤塊的塊號,磁盤塊大小為512B。試問該文件系統采用直接、二級和三級索引能管理的最大磁盤空間為多少字節?
答:計算索引表項的大小,索引表項=512/3≈170個
直接索引,每項對應一個物理塊,能管理的最大磁盤空間=170*512B=87040B=85KB
二級索引,能管理的最大磁盤空間=170170512B=28900*512B=7255KB
三級索引,能管理的最大磁盤空間=170170170512B=4913000512B=2456500KB
3、請求分頁系統,頁面置換算法缺頁率
例:在一個請求分頁存儲系統中,一個進程的頁面走向為4,3,2,1,4,3,5,3,2,1,設分配給該進程的內存塊數M=4,采用FIFO和LRU頁面置換算法(每調進一個新頁認為發生一次缺頁中斷)。計算缺頁次數和缺頁率(寫出計算過程)。
答案:
詳解:(是該題的變形,思路都一樣的)
假設一個進程的邏輯空間為n頁,系統為其分配的內存物理塊數為m(m<n)。
S:進程運行的過程中,訪問頁面的次數。
F:訪問頁面失敗的次數為F。
A:該進程總的頁面訪問次數A=S+F。
那么該進程在其運行過程中的缺頁率:f=F/A=F/(S+F) (失敗/總訪問)
FIFO先進先出頁面置換算法:
最早裝入主存的頁被作為替換的頁。(往回看,誰先進來把誰先換下來,從前往后看當碰到i的時候,往i的前面看而不是后面看)
頁面置換看紅色的數字個數。
LRU置換算法(最近最久未使用置換算法):
當需要淘汰一個頁面時,選擇現有頁面中其t值最大的頁面淘汰。
響應比 = (等待時間+要求服務時間) / 要求服務時間 = 響應時間 / 執行時間
4、信號量wait,signal操作,參考用記錄型信號量解決生產者-消費者問題
注意:英文單詞統一小寫,括號用英文括號。
問題:
有一群生產者進程在生產產品,并將這些產品提供給消費者進程去消費。為使生產者進程與消費者進程能并發執行,在兩者之間設置了一個具有n個緩沖區的緩沖池,生產者進程將其所生產的產品放入一個緩沖區中;消費者進程可從一個緩沖區中取走產品去消費。盡管所有的生產者進程和消費者進程都是以異步方式運行的,但它們之間必須保持同步,既不允許消費者進程到一個空緩沖區去取產品,也不允許生產者進程向一個已裝滿產品且尚未被取走的緩沖區投放產品。
注意:
生產者與消費者進程對資源信號量的申請與釋放情況剛好相反(生產者是申請空,釋放滿;消費者是申請滿,釋放空)。
應先執行對資源信號量的申請,然后再對互斥信號量進行申請操作,否則會因起死鎖(如果先申請互斥信號量再申請資源信號量,則可能發生一個進程申請互斥信號量成功,得到臨界資源,再申請資源信號量失敗,導致該進程帶著臨界資源進入阻塞狀態,造成死鎖)。
解答代碼:
int in = 0, out = 0;//in: 輸入指針, out: 輸出指針; item buffer[n];//n個緩沖區組成的數組; semaphore mutex = 1, full = 0, empty = n; //mutex: 互斥信號量, 生產者進程和消費者進程都只能互斥訪問緩沖區; //full: 資源信號量, 滿緩沖區的數量; //empty: 資源信號量, 空緩沖區的數量;//信號量不允許直接參與運算, 故都要定義;//生產者程序; void Producer() {do {生產者生產一個產品nextp;wait(empty);//申請一個空緩沖區;wait(mutex);//申請臨界資源;buffer[in] = nextp;//將產品添加到緩沖區;in = (in + 1) % n;//類似于循環隊列;signal(mutex);//釋放臨界資源;signal(full);//釋放一個滿緩沖區;} while (TRUE); }//消費者程序; void Producer() {do {wait(full);//申請一個滿緩沖區;wait(mutex);//申請臨界資源;nextc = buffer[out];//將產品從緩沖區取出;out = (out + 1) % n;//類似于循環隊列;signal(mutex);//釋放臨界資源;signal(empty);//釋放一個空緩沖區;消費者將一個產品nextc消費; } while (TRUE); }分頁存儲管理方式
分頁存儲的基本方法:
1:頁面和物理快 頁面:分頁存儲管理將進程的邏輯地址空間分成若干頁,并從0開始編號,把內存的物理地址分成若干塊(物理快)
2:地址結構: 頁號P ----- 偏移量W(包括頁號P和偏移量W),對于特定的機器其地址結構一定,給定邏輯地址A,頁面的大小為
L,則頁號P和頁內地址D有一下關系:P = int[A/L]; d=[A] MOD L 例如:頁面大小1kb A=2170B 得:p=2 d=122
3:頁表:記錄相應頁在內存中對應的物理塊號
4:地址轉換機構:將用戶邏輯空間的地址,轉變為空間中的物理地址
臨界資源
一次僅允許一個進程使用的資源稱為臨界資源。輸入機、打印機、磁帶機等。
各進程采取互斥的方式,實現共享的資源稱作臨界資源。
在每個進程中訪問臨界資源的那段代碼稱為臨界區。
動態分區分配算法
首次適應算法、循環首次適應算法、最佳適應算法:從最小的分區開始分配、最壞適應算法:從最大的分區開始分配、快速適應算法/分類搜索法:將空閑分區根據其容量的大小進行分類。
磁盤文件的物理結構
連續文件、順序文件、鏈接文件(隱式鏈接、顯式鏈接)、索引文件。
進程和程序
進程是程序的一次執行。
進程是一個程序及其數據在處理機上順序執行時所發生的活動。
進程是具有獨立功能的程序在一個數據集合上運行的過程,它是系統進行資源分配和調度的一個獨立單位。
進程特點:具有程序沒有的PCB結構、動態性、并發性、獨立性、異步性。
進程之間存在的兩種形式制約關系
間接相互制約關系:間接相互制約源于資源共享。(資源:臨界資源。)
直接相互制約關系:主要源于進程間的合作。
同步、互斥
同步:因合作進程之間協調彼此的工作而控制自己的執行速度,即因相互合作,相互等待而產生的制約關系。
互斥:進程之間競爭臨界資源而禁止兩個以上的進程同時進入臨界區所發生的制約關系。
不對的地方歡迎指正,轉載請注明出處!謝謝!
總結
以上是生活随笔為你收集整理的操作系统知识点总结+最终版的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《扔手雷》全图文攻略1-30
- 下一篇: java信息管理系统总结_java实现科