考研操作系统题目整理
操作系統題目整理
大家覺得有用點點贊啊啊我升到3級就可以自定義標簽了謝謝~
說復試題目過于牽強,只是自己整理的一些知識點而已,為了便于理解和背誦,有些部分定義和說明盡量簡明扼要,如有錯誤請多多指教!(不可轉載)
1.(補)什么是物理內存?什么是虛擬內存?兩者的關系?
1.物理內存(內存條):物理內存就是實際的內存條,當打開程序時,系統會自動將程序加載到內存條上。
2.虛擬內存(硬盤):虛擬內存是在硬盤上虛擬一個文件,代替物理內存形式存儲功能。
關系:當物理內存是夠用時,便將程序存入虛擬內存中。
2.cache的作用是什么?
高速緩沖存儲器:位于內存和CPU之間,容量小,速度快,用來解決CPU和內存速度不匹配的問題。
3.操作系統的作用
1.操作系統作為計算機資源的管理者
2.作為用戶與計算機之間的接口
3.作為擴充機器
4.操作系統的特征
并發:指兩個或多個事件在同一時間間隔發生。(并發與并行)
共享:系統中的資源可供并發執行的多個進程共同使用。(互斥共享與同時共享)
并發與共享互為存在條件,(1)資源的共享是以程序的并發為條件的,若系統不支持并發執行,就不存在資源共享問題。(2)若系統不能對資源共享實施有效的管理,就會影響到進程的并發執行。
虛擬:將物理上的實體變為邏輯上的對應物。比如操作系統中的虛擬處理機技術,虛擬存儲器技術。
異步:系統中允許多個程序并發執行,進程的執行不是一貫到底而是以不可預知的速度向前推進。
方便,有效,可擴充性,開放
5.操作系統具有的功能
處理機管理,存儲器管理,文件管理,設備管理,接口
6.操作系統提供的接口
命令接口:
(1)聯機命令接口:用戶與操作系統可以進行交互,用戶每輸入一條命令,操作系統就完成制定的功能。適用于分時或實時系統的接口。
(2)脫機命令接口:一次輸入一批命令,用戶不直接干預作業的執行。適用于批處理系統。
程序接口:由一組系統調用組成,用戶通過在程序中使用這些系統調用來請求操作系統為其服務。
7.庫函數與系統調用的區別于聯系
庫函數是語言或應用程序的一部分,工作在用戶空間中,而系統調用是操作系統的一部分,工作在內核空間中,許多庫函數都會使用系統調用來實現功能,而未使用系統調用的庫函數運行速度往往比使用了的速度快,因為系統調用需要上下文的切換和狀態的轉換。
8.操作系統的發展
大體上就是一段想法設法不斷提高資源利用率的過程。
手工操作階段:
批處理階段(單道批,多道批):批處理操作系統的用戶脫機使用計算機,作業是成批處理的,系統內多道程序并發執行,交互能力差。
分時操作系統:可讓多個用戶同時使用計算機,人機交互較強,具有每個用戶獨立使用計算機的獨占性,但是實時性比較差。
實時操作系統(硬實時操作系統,軟實時):能夠做出及時反應,可靠性高,響應及時,但是資源利用率低。
9.操作系統的運行機制
計算機系統中,通常CPU執行兩種不同性質的程序,一種是操作系統內核程序,一種是應用程序。出于安全性考慮,提出了特權指令的概念。特權指令就是用戶不能直接使用的指令,比如I/O指令,關中斷指令等。在具體實現上,把CPU分為用戶態和核心態,操作系統內核程序運行在核心態,應用程序運行在用戶態。通過中斷或異常來進行用戶態到核心態的切換。
10.什么是內核,內核包含那些功能?
內核是計算機系統最底層的軟件,是計算機功能的延伸。
時鐘管理:主要是計時功能,向用戶提供標準的系統時間,通過時鐘中斷的管理來實現進程之間的切換。
中斷機制:提高多道程序運行環境中CPU的利用率。
原語:是一些特殊的程序,處于操作系統的最底層,是最接近硬件的部分;程序的運行具有原子性,其運行必須一氣呵成不能中斷;這些程序的運行時間都很短且調用頻繁。
系統控制的一些管理:進程管理,存儲器管理,設備管理。
11.操作系統的體系結構
操作系統形成了兩種主要的體系結構:大內核和微內核
大內核:是將操作系統的主要功能模塊都作為一個緊密連接的整體運行在核心態,從而提供高性能的系統服務,但是由于功能復雜所以內核代碼過多難以維護。
微內核:就是將內核中最基本的功能(如進程管理)保留在核心態,將那些不需要在核心態執行的功能更轉移到用戶態執行,從而降低了內核的復雜性,維護代價大大降低,各部分獨立執行高了可靠性,但是因為需要頻繁的進行用戶態和和心態之間的切換,所以性能不好。
12.中斷和異常
中斷的本質:發生中斷時需要操作系統介入開展管理工作。
中斷也稱外中斷:通常是與當前執行指令無關的事件,比如說I/O請求、時間片到。。
異常也稱內中斷:是與當前執行指令有關的事件,比如地址越界、缺頁中斷、執行訪管指令。。
引入中斷機制,才能實現多道程序并發執行,提高資源利用率。
13.中斷處理的過程
(1)執行完每個指令后,CPU都要檢查當前是否有外部中斷信號。
(2)如果檢測到外部中斷信號,則需要保護被中斷進程的CPU環境(如程序狀態字PSW、程序計數器、各種通用寄存器)。
(3)根據中斷信號類型轉入相應的中斷處理程序。
(4) 恢復進程的CPU環境并退出中斷,返回原進程繼續往下執行。
14.為什么引入核心態和用戶態?兩者的切換需要什么條件?
用戶不能直接執行對系統影響非常大的操作,即特權指令,必須通過系統調用的方式請求操作系統代為執行,防止用戶更改或訪問重要的系統資源,影響其它程序的執行,以保證系統的穩定性和安全性。
用戶態到核心態的轉換發生在中斷產生時
核心態到用戶態的轉換發生在中斷返回應用程序時。
15.為什么說引入了中斷和通道技術之后,多道程序概念變成現實?
多道程序的并發執行是指有的程序在CPU上運行,而另一些程序則在I/O上傳輸,這種情況的實現必須要中斷技術和通道技術的支持。
通道是一種控制一臺或多臺硬件設備的硬件機構,它一旦啟動就獨立于CPU運行,所以就實現了I/O操作與CPU并行工作。
中斷就是當I/O操作完成時,或者硬件出現故障時,由中斷機構向CPU發出信號,此時CPU停下手頭的工作轉而處理中斷請求,待處理完中斷后再繼續原來的工作。
因此,通道技術和中斷技術結合能夠實現I/O操作與CPU并行工作,即CPU啟動通道進行數據傳輸工作,CPU轉而處理其他程序的計算工作,當通道工作結束時,就通知中斷機構向CPU發出中斷請求,CPU暫停正在處理的操作,對出現的中斷進行處理,處理完成后再進行原來的工作,這樣就是多道程序能夠并發執行,使多道程序的概念變成現實。
16.并行性與并發性的區別與聯系
并行性是指在同一時刻有兩個或兩個以上的事件發生,并發性是指在同一時間間隔內有兩個或兩個以上的事件發生。在多道程序環境下,宏觀上有多個程序同時運行,在單處理機系統中,微觀上是多個程序交替執行,若為多處理機,則并發執行的程序就可以分配到多個處理機上實現并行執行。
17.特權指令與非特權指令
特權指令是指具有特殊權限的指令,這類指令只能用于操作系統和其他的系統軟件,不能直接提供給用戶使用,特權指令只能在核心態下執行。用戶態下只能使用非特權指令,核心態下可以使用全部指令,保證了計算機系統的安全可靠,從用戶態轉到核心態的唯一途徑是中斷或異常。
18.訪管指令與訪管中斷
訪管指令是一條可以在用戶態下執行的指令,本身不是特權指令,功能是為產生一個中斷事件,將操作系統由用戶態轉換為核心態,稱為訪管中斷。
19.什么是進程,進程的作用和特征
進程:進程是進程實體的一次運行過程,系統進行資源分配和處理機調度的一個獨立單位。進程實體由PCB,程序段,數據段組成。
引入進程的目的:為了更好地描述程序的并發執行,實現操作系統的并發行和共享性。
PCB的作用:使一個在多道程序環境下不能獨立運行的程序成為一個能夠獨立運行的基本單位,即一個能與其他進程并發執行的進程。
進程的特征:動態性,并發性,獨立性,異步性。
動態性:進程是程序的一次運行過程,是動態的產生和消亡的,具有一定的生命周期。
并發性:多個進程可以在同一時間間隔同時運行。
獨立性:進程是一個能夠獨立運行,獨立分配計算機資源,獨立接收調度的基本單位。
異步性:由于進程的并發執行,各進程以不可預知的速度向前推進。
20.進程的狀態與切換
運行態:進程正在處理機上運行。
就緒態:進程獲得了除處理機以外的所有資源。
阻塞態:進程由于等待某一事件而暫停運行。
創建態:進程正在被創建。
創建進程的4個步驟:
(1)先申請一個空白的PCB
(2)向PCB中寫入一些控制和管理進程的信息
(3)系統為該進程分配資源
(4)把進程轉為就緒態
結束態:進程從系統中結束。
21.進程控制
進程終止:(正常結束,異常結束,外界干預)
(1)根據終止進程的標識符,檢索PCB,讀出此時進程的狀態
(2)若進程處于運行態,則立即停止運行,并將處理機資源分配給其他進程
(3)若進程還有子孫進程,則所有子孫進程也終止
(4)將該進程所用的全部資源歸還給父進程或操作系統
(5)將PCB從所在的隊列中刪除
進程的阻塞與喚醒:
阻塞:(自動執行block原語,由運行態轉為阻塞態)
(1)根據要阻塞進程的標識符找到對應PCB
(2)若為運行態則保護現場轉為阻塞態,停止運行
(3)把PCB轉入相應的等待序列,把處理機資源調度給其他就緒進程
喚醒:(系統調用喚醒原語,將進程由等待態轉為就緒態)
(1)從等待隊列中找到相應的PCB
(2)將其從等待隊列中移除,并改為就緒態
(3)將PCB插入就緒隊列,等待調度
進程切換:
(1)保存現場
(2)更新PCB信息
(3)把進程的PCB移入相應的隊列中
(4)選擇另一個進程執行并更新PCB
(5)更新內存管理的數據結構
(6)恢復現場
22.簡述進程通信的方式
共享存儲:在通信的進程之間開辟一個共享空間,進程通過對該共享空間的讀寫操作來實現消息傳遞。
消息傳遞:以格式化的消息來進行進程的數據交換。(直接通信,間接通信)
管道通信:管道是先入先出的信息流,允許多個進程向管道中寫入數據,允許多個進程用管道中讀出數據。
23.線程的概念和作用
線程:由線程ID,程序計數器,堆棧等組成,是進程的一個實體,是處理機調度的基本單位。
引入線程的目的:減少程序在并發執行的時空開銷,提高系統并發性。
24.進程和線程的區別
進程是計算機資源分配的基本單位,線程是處理機調度的基本單位。在同一進程的線程之間切換不會引起進程的切換,不同進程的線程切換會引起進程的切換。
進程是計算機資源的擁有者,線程幾乎不擁有資源,同屬于一個進程的線程共享該進程的所有資源。
不僅進程之間可以并發執行,多個線程之間也可以并發執行。
同屬于一個進程的各線程之間的通信無需操作系統的干預。
25.線程的實現方式
線程的實現方式可分為用戶級線程和內核級線程。
用戶級線程:有關線程管理的所有工作由應用程序完成,內核意識不到線程的存在。
內核級線程:線程管理的工作由內核完成,應用程序只有一個到內核線程的接口。
26.多線程模型
多線程模型是實現用戶級線程和內核級線程的連接方式
多對一:多個用戶級線程映射到一個內核級線程
優點:線程管理由用戶負責,效率高
缺點:一個線程在使用內核服務時被阻塞,整個進程都會被阻塞
一對一:一個用戶級線程映射一個內核級線程
優點:并發能力強,一個線程阻塞時可以用另外一個線程
缺點:開銷比較大
多對多:n個用戶級線程映射到m個內核級線程(m<=n)
優點:集兩者之所長
27.進程與程序在什么情況下形成一對一,一對多,多對一,多對多的關系?
執行一條命令或運行一個應用程序時,進程與程序之間形成一對一關系;
進程在執行過程中可以加載不同的應用程序,從而形成一對多的關系;
以不同的參數和數據執多次執行同一個應用程序時,形成多對一的關系;
多個進程并發執行不同的應用程序時,形成多對多的關系。
28.為什么進程之間的通信必須借助于操作系統內核?
每個進程有自己獨立的地址空間,在操作系統和硬件地址保護機制下,進程無法訪問其他進程的地址空間,所以必須借助于操作系統的系統調用來實現進程之間的通信。
29.什么是多線程,多線程與多任務有什么區別?
多線程是指在一個程序中可以定義多個線程并同時運行它們,每個線程可以執行不同的任務。
多線程和多任務的區別:多任務是針對操作系統而言的,代表操作系統可以同時執行的程序個數;多線程是針對一個程序而言的,代表一個程序可以同時執行的線程個數,每個線程可以完成不同的任務。
30.調度的層次
一個作業從提交開始直到完成,往往要經歷三級調度:
作業調度:按一定的原則從外存上處于后備隊列的作業中挑選一個作業為其分配內存等資源,每個作業只調入一次,調出一次。
內存調度:將暫時不能運行的進程調入外存等待,把具有運行條件的進程重新調入內存。
進程調度:按照某種方法從就緒隊列中選擇一個進程為其分配處理機。
31.在什么情況下不能進行進程的調度與切換?
(1)在處理中斷的過程中。
(2)進程在操作系統內核臨界區中。
(3)其他需要屏蔽中斷的原子操作過程中。
如果在上述過程中需要進行調度,只能等上述過程結束后,才能進行相應的調度與切換。
32.中斷處理過程
33.進程調度方式
非搶占式:當一個進程正在處理機上運行時,若有一個更緊迫優先級更高的進程進入就緒隊列,只能讓該進程運行完畢之后,才能將處理機分配給他。
搶占式:若一個進程正在處理機上運行,若有一個更緊迫優先級更高的進程進入,則暫停正在運行的進程,將處理機分配給這個進程。
34.進程調度的準則
35.進程調度的功能
36.內存管理的功能
內存空間的分配與回收
地址轉換
內存空間的擴充
內存空間的保護
37.進程調度的算法
(1)先來先服務算法:按照進程到達的順序依次將處理機分配給它。
優點:公平,實現簡單。
缺點:效率低,對長作業有利對短作業不利。
(2)短進程優先算法:從就緒隊列中選擇一個運行時間最短的進程將處理機分配給它。
優點:效率高,平均等待時間少。
缺點:長作業會長時間得不到運行,產生饑餓。
(3)優先級調度算法:選擇優先級最高的進程將處理機分配給它。
搶占式:
非搶占式:
進程優先級的設置原則
(1)系統進程>用戶進程:系統進程作為系統的管理者,理應擁有更高的優先級。
(2)交互型進程>非交互型進程:與用戶交互的進程應該優先被響應。
(3)I/O型進程>計算型進程:將I/O進程優先級設置的高就有可能讓I/O設備盡早開始工作,進而提高系統的整體效率。
(4)高響應比優先算法:根據 (等待時間+運行時間)/運行時間 算出作業的響應比,響應比高的作業優先運行。
優點:兼顧長短作業
缺點:計算響應比開銷大
(5)時間片輪轉調度算法:按照進程到達的順序依次為其分配一個時間片運行直到進程運行完成。
優點:兼顧長短作業
缺點:平均等待時間比較長
(6)多級反饋隊列調度算法:是優先級調度算法和時間片輪轉調度算法的綜合。
多級反饋隊列調度算法的基本思想
(1)設置多個就緒隊列,并未多個隊列賦予不同的優先級。第一個隊列的優先級最高然后逐級遞減。
(2)各個隊列中進程執行時間片的大小各不相同。優先級越高時間片越小。
(3)一個進程進入內存后,先被放在第一級隊列的末尾,按先來先服務調度算法等待調度,如果該進程能在時間片內完成,就可以撤離系統。如果不能就將其放到下一級隊列的末尾,同樣按先來先服務調度算法進行調度,重復上述步驟,若該進程降到最后一個隊列后,就在該隊列采用時間片輪轉調度運行。
(4)當第一級隊列為空時,調度程序才會調度第二級隊列中的進程運行,這樣依次往下。
優點:兼顧長短作業,由較好的響應時間,可行性強。
缺點:
38.為什么要引入進程同步
在多道程序環境下,進程是并發執行的,不同進程之間存在不同的相互制約關系,為了協調進程之間的相互制約關系而引入了進程同步的概念。
39.臨界資源,臨界資源的訪問過程
將一次僅允許一個進程使用的資源成為臨界資源。
臨界資源的訪問過程分為4部分
(1)進入區:在進入區檢查是否可以進入臨界區,若可以進入要設置正在訪問臨界區的標志。
(2)臨界區:進程中訪問臨界資源的那段代碼
(3)退出區:將正在訪問臨界區的標志清除
(4)剩余區:代碼中的剩余部分
40.同步與互斥的區別與聯系
同步是直接制約關系,是指為完成某些任務的兩個或多個進程在運行過程中存在順序等待關系。
互斥是間接制約關系,當一個進程使用臨界資源時,另外的進程若想訪問必須等待該進程釋放資源。
41.互斥機制應當遵循的準則
空閑讓進:臨界區空閑時,可以允許一個請求進入臨界區的進程進入臨界區
忙則等待:當已有進程進入臨界區時,其他試圖進入臨界區的進程必須等待
有限等待:對于請求訪問的進程,應保證能在有限時間內進入臨界區
讓權等待:當進程不能進入臨界區時,應該立即釋放處理器。
42.實現臨界區互斥的基本方法
軟件實現方法:
(1)單標志法
(2)雙標志先檢查法
(3)雙標志后檢查法
(4)皮特森算法(單標志法與雙標志法的結合)
硬件實現方法:
(1)中斷屏蔽法(通過屏蔽中斷的方式來實現,進區關中斷,出區開中斷)
(2)硬件指令法(TestAndSet指令:是原子操作,執行該指令時不允許中斷)
43.什么是管程,作用是啥?
系統中的各種硬件和軟件資源,均可用數據結構抽象的描述其資源特性,忽略內部結構和實現細節。用共享數據結構抽象的表示系統中的共享資源,這個代表共享資源的數據結構,以及對該共享數據結構進行操作的一組過程所組成的資源管理程序,稱為管程。
作用:解決臨界區分散所帶來的管理和控制問題。在沒有管程之前,對臨界區的訪問分散在各個進程之中,管程將這些分散在各進程中的臨界區集中起來,并加以控制和管理。管程內的共享數據結構只能被管程內的過程所訪問。
每次只允許一個進程進入管程,從而實現進程互斥。
44.什么是死鎖,死鎖產生的原因?產生死鎖的必要條件?
死鎖:是指多個進程因競爭資源而造成的一種僵局,若無外力作用,這些進城都將無法向前推進。
死鎖產生的原因:
(1)系統資源的競爭,通常系統中擁有的不可剝奪資源,無法滿足多個進程的需要。
(2)進程推進速度非法,進程在運行過程中,請求和釋放資源的順序不當,也同樣會導致死鎖。
死鎖產生的必要條件:
(1)互斥條件:
(2)不可剝奪條件:
(3)請求與保持條件:
(4)循環等待條件:
45.如何解決死鎖問題?
死鎖預防:破壞死鎖的4個必要條件的一個或幾個,以防發生死鎖。
死鎖避免:用某種方法防止系統進入不安全狀態,避免死鎖的發生。
死鎖的檢測與解除:無需采取任何措施,允許進程在運行過程中發生死鎖。通過系統的檢測機構及時的檢測出死鎖的發生,然后采取某些措施解除死鎖。
46.死鎖預防
互斥條件:一般不太可行。
不可剝奪條件:當請求的資源得不到滿足時,就立即釋放自身所占有的資源。
請求與保持條件:預先分配法,進程在運行前一次申請完它所需要的所有資源。
循環等待條件:順序資源分配法,給系統中的資源編號,規定每個進程只能按編號遞增的順序請求資源。
47.死鎖避免
當進程請求資源時,系統先按照銀行家算法進行檢查,若請求的資源小于等于需要的資源且請求的資源小于等于可利用的資源,就將資源假定分配給它,并修改有關數據,進行安全性檢查,若系統存在安全序列,系統就不會進入死鎖狀態,則就將資源確定分配給該進程。
48.死鎖的檢測與解除
死鎖的檢測:通過簡化資源分配圖可以檢測系統是否處于死鎖狀態,若資源分配圖中的存在邊不能被消去,則該分配圖是不可完全簡化的存在死鎖。
死鎖的解除:
(1)資源剝奪法:掛起某些死鎖進程,并搶占它的資源。
(2)撤銷進程法:強制撤銷部分或全部死鎖進程,剝奪其資源。
(3)進程回退法:讓一個或多個進程回退到足以回避死鎖的狀態。
49.程序的裝入和鏈接
將用戶源程序變為可在內存中執行的程序通常需要以下幾個步驟:
(1)編譯:由編譯程序將用戶源代碼編譯成若干目標模塊
(2)鏈接:將目標模塊與庫函數鏈接在一起,形成一個完整的裝入模塊。
(3)裝入:由裝入程序將裝入模塊裝入內存運行。
50.程序鏈接的方式
(1)靜態鏈接:在程序運行之前,將各目標模塊和庫函數鏈接成一個完整的可執行程序,以后不再拆開。
(2)裝入時動態鏈接:在裝入內存時,采用邊裝入邊鏈接的方式。
(3)運行時動態鏈接:在程序執行中需要該目標模塊時才進行。
51.程序裝入的方式
程序的裝入:
靜態裝入:事先知道程序在內存中的地址,按照裝入模塊中的絕對地址將數據和程序裝入內存。
靜態重定位裝入:地址變換是在裝入時一次完成的。特點:在作業裝入內存時,必須一次將其內存空間全部分配,裝入后在內存中不能移動,也不能申請新的空間。
動態重定位裝入:裝入模塊裝入內存時,不立即將相對地址轉換為絕對地址,地址變換等到程序執行時才進行。
特點:在程序運行之前可以只裝入他的部分代碼即可運行,在程序運行之間可以動態的申請內存。
重定位:將程序的邏輯地址空間轉換為內存的實際物理地址空間的過程。是實現多道程序在內存中同時運行的基礎。
52.內存保護
(1)在CPU中設置一對上下限寄存器,存放用戶作業在主存中的下限和上限地址,每當CPU要訪問一個地址時,分別和寄存器中的值比較判斷是否越界。
(2)采用重定位寄存器和界地址寄存器,重定位寄存器含最小的物理地址值,界地址寄存器含邏輯地址的最大值。內存管理機構動態的將邏輯地址與界地址寄存器進行比較,若未發生地址越界,則加上重定位寄存器的值后映射成物理地址。
53.擴充內存的方法
覆蓋:將用戶空間分為一個固定區和若干覆蓋區,將經常活躍的部分放在固定區,剩余部分分段,將即將要訪問的段放入覆蓋區,其他段放在外存中,在需要調用時,再與覆蓋區中的段進行交換。
交換:把處于等待狀態的程序從內存轉移到外存,轉備好運行的程序調入內存。(內存調度)
虛擬內存:在邏輯上擴充內存。
54.內存管理方式
連續分配管理,非連續分配管理
55.連續分配管理方式
單一連續分配:內存分為系統區和用戶區,系統區僅供操作系統使用,用戶區工用戶使用,內存中永遠只有一道程序。
優點:簡單,無外部碎片,可采用覆蓋技術
缺點:有內部碎片,存儲器的利用率很低
固定分區分配:將內存空間分為若干大小的分區,分區可以大小相等,也可以大小不等。
存在兩個問題。
優點:可用于多道程序設計,簡單,無外部碎片。
缺點:存儲器的利用率低,存在內部碎片。
可變分區分配:按照程序的需要將內存進行動態的劃分。
優點:內存利用率高,不存在內部碎片
缺點:存在外部碎片,可通過緊湊技術解決。
動態分區分配算法:
首次適應:將空閑分區按地址從小到大排列,分配第一個符合條件的分區。
最佳適應:將空閑分區按容量從小到大排列,分配第一個符合條件的分區。
最壞適應:將空閑分區按容量從大到小排列,分配第一個符合條件的分區,即選擇最大的分區。
鄰近適應:在首次適應算法的基礎上,分配內存時從上次查找結束的位置開始繼續查找。
56.非連續分配管理方式
非連續分配允許程序裝入不相鄰的內存分區。非連續分配管理方式根據分區的大小是否固定,分為分頁存儲管理方式,分段存儲管理方式。
分頁存儲管理方試:
將內存分為相對較小且固定大小的塊,每個進程也以塊為單位進行劃分。邏輯地址第一部分是頁號,第二部分是頁內偏移量。
頁表:為了便于在內存中找到進程的每個頁面所對應的物理塊,系統為每個進程建立一張頁表,記錄頁面在內存中對應的物理塊號。頁表項第一部分是頁號,第二部分是塊號。作用是實現從頁號到物理塊號的映射。
頁表寄存器PTR:存放頁表在內存的起始地址F和頁表長度M。
地址變換過程:
(1)由邏輯地址得出頁號和頁內偏移量
(2)將頁號與頁表寄存器中的頁表長度相比較判斷是否發生越界中斷
(3)若沒有越界,根據頁表起始地址和頁號取出對應頁表項中的物理塊號
(4)由物理塊號和頁內偏移量得出物理地址
(5)通過得到的物理地址去訪問內存。
引入塊表:為了提高地址變換的速度
地址變換過程(具有快表)
(1)由邏輯地址得出頁號和頁內偏移量
(2)先將頁號與快表中的所有頁號進行對比,若有匹配的頁號,則直接得出對應的物理塊號,與頁內偏移量結合得出物理地址,由物理地址區訪問內存。
(3)若沒有匹配的頁號,則還需要訪問內存中的頁表,從頁表中取出物理塊號,與頁內偏移量結合得到物理地址,并將此次的頁表項寫入快表。
兩級頁表:
有時候頁表可能會非常大,頁表必需連續存放很占內存,所以就在原有頁表的基礎上再加上一層頁表。邏輯地址結構為:一級頁號,二級頁號,頁內偏移量
(多級頁表中,各級頁表的大小不能超過一個頁面,若兩級頁表不夠,可以分多級)
地址變換過程
(1)由邏輯地址得出一級頁號,二級頁號,頁內偏移量
(2)從PCB中讀出頁目錄表始址,再根據一級頁號查目錄表,找到下一級頁表在內存中的存放位置。
(3)根據二級頁號查表,得到最終的物理塊號
(4)與頁內偏移量結合得到物理地址并訪問。
分段存儲管理方式:
將程序按自身的邏輯關系劃分為若干個段,內存以段為單位進行分配,每個段在內存中占用連續空間,各段之間可以不相鄰。邏輯地址由段號和段內偏移量組成。
段表:各段離散的裝入內存,為了能夠找到各段的存放位置,為每個進程建立一張段映射表,每個段對應一個段表項,記錄了該段在內存中的起始地址和段長。各個段表項的長度是相同的。
地址變換過程:
(1)由邏輯地址得到段號,段內偏移量
(2)將段號與段表寄存器中的段長比較判斷是否發生越界
(3)若不越界,由段表始址和段號找到對應的段表項,將段內偏移量與段表項中的段長比較判斷是否發生越界
(4)若不越界,由起始地址和段內偏移量得出對應的物理地址
(5)由物理地址訪問內存
段頁式存儲管理方式:
先將程序按邏輯關系劃分為段,每個段都有自己的段號,再將段分成若干固定大小的頁,將內存空間也分為與頁大小相等的塊,進程以塊為單位分配內存。邏輯地址分為三部分,段號,頁號,頁內偏移量
為實現地址變換,系統為每個進程建立一張段表,每個分段有一張頁表,段表表項中包括段號,頁表長度,頁表始址。頁表表項中包括頁號和塊號。
地址變換過程:
(1)由邏輯地址得出段號,頁號,頁內偏移量
(2)段號與段表寄存器中的段長比較,檢查是否越界
(3)沒有越界的話根據段表始址,段號找到對應的段表項
(4)根據段表中的頁表長度檢查頁號是否越界
(5)由段表中的頁表地址,頁號查詢頁表,得到對應的頁表項
(6)由頁表項中的塊號和頁內偏移量得到最后的物理地址
(7)根據物理地址去訪問目標單元
57.分頁,分段管理的比較
頁是信息的物理單位,分頁主要是為了實現離散分配,提高內存利用率,對用戶不可見
段是信息的邏輯單位,分段主要是為了更好地滿足用戶需求,對用戶可見。
頁的大小固定且由系統決定,段的長度不固定,取決于程序的邏輯關系。
分頁的地址空間是一維的,分段的地址空間是二維的。
分段比分頁更容易實現信息的共享和保護。
58.為什么要進行內存管理?
進程在并發執行的過程中,共享的不僅僅是處理機,還有存儲空間,如果不對內存進行管理,則容易導致內存數據的混亂,限制進程的并發執行。
59.多級頁表解決了什么問題?
多級頁表解決了當邏輯地址空間過大時,也表的長度會大大增加的問題,但是采用多級頁表時,一次訪盤需要多次訪問內存或磁盤,大大增加一次訪存的時間。
60.虛擬存儲技術
虛擬內存:這種存儲器實際上并不存在,能給用戶提供一個比實際內存大的多的存儲空間。
虛擬存儲器的三個特征:
多次性:是指無需再作業運行時一次性的裝入內存,只調入部分代碼即可運行。
對換性:允許作業在運行過程中,進行換入換出
虛擬性:從邏輯上擴充內存的容量,是用戶看到的內存容量遠遠大于實際的。
虛擬內存技術的實現:
請求分頁存儲管理
請求分段存儲管理
請求段頁存儲管理
61.請求分頁存儲管理
請求分頁存儲管理是在基本分頁存儲管理的基礎上,增加了請求調頁和頁面置換功能,只要將當前需要的一部分頁面裝入內存便可運行。當所要訪問的頁面不在內存中時,可以通過請求調頁功能將其調入,同時可以用頁面置換功能將暫時不用的頁面換入到外存上。
頁表:物理塊號,狀態位,訪問字段,修改位,外存地址
62.
63.頁面置換算法
最佳置換算法:每次選擇淘汰的頁面時以后永不使用或最長時間不使用的頁面。
先進先出置換算法:選擇淘汰的頁面是最早進入內存的頁面
(可能會產生belady異常:當為進程分配的物理塊數增大時,缺頁次數不減反增的現象。)
最近最久未使用置換算法:選擇淘汰的頁面是最近最長時間未被使用過的頁面。
時鐘置換算法:循環掃描各頁面,第一輪淘汰訪問位=0的,并將掃描過的頁面訪問位=0,若第一輪沒有選中,就進行第二輪。
改進的時鐘置換算法:在訪問位的基礎上增加一個修改位,如果有未使用過的頁面,則應該先將他換出,若全部頁面都被使用過,就優先把未被修改過的頁面換出。
64.頁面分配策略
固定分配局部置換:為每個進程分配一定數目的物理塊,在運行期間不能改變,當發生缺頁時,只能在自身頁面中選擇一個頁面換出。
可變分配全局置換:為每個進程分配一定數目的物理塊,當發生缺頁時,系統可以再為其分配新的物理塊。
可變分配局部置換:為每個進程分配一定數目的物理塊,當發生缺頁時,使進程從自身頁面中選擇一個頁面換出。若進程在運行期間頻繁的缺頁,系統就為其分配更多的物理塊,反之,若缺頁率很低,就適當減少為其分配的物理塊數。
65.內部碎片和外部碎片的區別
【外部碎片】
外部碎片指的是還沒有被分配出去(不屬于任何進程),但由于太小了無法分配給申請內存空間的新進程的內存空閑區域。
外部碎片是出于任何已分配區域或頁面外部的空閑存儲塊。這些存儲塊的總和可以滿足當前申請的長度要求,但是由于它們的地址不連續或其他原因,使得系統無法滿足當前申請。
【內部碎片】
內部碎片就是已經被分配出去(能明確指出屬于哪個進程)卻不能被利用的內存空間;
內部碎片是處于區域內部或頁面內部的存儲塊。占有這些區域或頁面的進程并不使用這個存儲塊。而在進程占有這塊存儲塊時,系統無法利用它。直到進程釋放它,或進程結束時,系統才有可能利用這個存儲塊。
66.抖動
抖動:在頁面置換過程中,剛剛換出的頁面馬上又被換入,剛剛換入的頁面馬上又被換出主存,這種頻繁的頁面調度行為稱之為抖動。
產生的原因:為進程的運行分配的物理塊數太少。
工作集:在某段時間間隔內,進程要訪問的頁面集合。
一般來說分配給進程的物理塊數(駐留集:系統為進程分配的物理頁框的集合)要大于工作集大小
67.覆蓋技術與虛擬存儲技術有什么本質上的不同?交換技術與虛擬存儲技術的調入調出技術有啥不同?
覆蓋程序段的最大長度要受內存容量大小的限制,而虛擬存儲器中程序的最大長度不受內存容量的限制。
相同點:都要在內存和外存之間交換信息
不同點:交換技術交換的是整個進程,一個進程的大小又收到內存容量的限制;
虛存中使用的調入調出技術交換的是頁面或分段,而不是整個進程。
68.什么是文件,什么是文件系統?
文件:是以計算機硬盤為載體的存儲在計算機上的信息的集合。在用戶進行的輸入輸出中,以文件作為基本單位。
操作系統中負責管理和存儲文件信息的軟件機構成為文件管理系統。
69.文件的邏輯結構
文件可劃分為無結構文件和有結構文件
無結構文件又叫流式文件,是數據按順序組織成記錄并積累保存。
有結構文件(記錄文件)可以分為:
(1)順序文件:文件中的記錄順序排列(順序存取時速度較快,文件存儲需要連續的存儲空間,不利于文件的擴充)
(2)索引文件:引入一張索引表,通過索引表中的指針來訪問文件。(可以進行隨機訪問,增加和刪除記錄也很方便,索引表的使用增加了開銷,索引表的查找策略對文件系統的效率影響較大)
(3)索引順序文件:是索引與順序兩種組織形式的結合,將順序文件的所有記錄分成若干組,為順序文件建立一張索引表,在索引表中為每組的第一條記錄建立一個索引項,其中含有該記錄的關鍵字和指針。(大大提高了順序存取的速度,索引表需要占用額外的開銷)
(4)散列文件:通過散列函數直接得出記錄的物理地址(有很高的存取速度,但是可能會引發沖突)
70.文件的打開與關閉
當用戶對一個文件實施多次讀/寫或其他操作時,每次都要從檢索條目開始,為了避免多次重復地檢索目錄,引入“打開”(open)文件系統調用,當用戶第一次請求對某文件進行操作時,用系統調用open將文件的屬性從外存復制到內存的打開文件表的一個表目中,并將該表目的索引返回給用戶。即在用戶和指定文件之間建立一個連接。關閉(close)調用則將該文件從打開文件表的表目上刪除,即斷開連接。顯著地提高了對文件的操作速度。
系統打開文件表的每個文件時,還用一個文件打開計數器。當打開計數器為0時表示該文件不再被使用,系統將回收分配給改文件的內存空間等資源。若文件被修改過,則將文件寫回外存。
71.目錄結構
FCB:文件控制塊,用來存放控制文件所需要的的各種信息。
(1)單級目錄結構:整個文件系統中只建立一張目錄表,每個文件占用一個目錄項。
(查找速度慢,文件不允許重名,不便于共享)
(2)兩級目錄結構:將文件目錄分為主文件目錄和用戶文件目錄,主文件目錄項記錄用戶名及用戶文件目錄在的存儲位置,用戶文件目錄記錄該用戶文件的FCB信息。(能實現文件重名,但不能對文件進行分類)
(3)多級目錄結構:各級目錄之間的關系是樹形的。(方便對文件進行分類不便于共享)
(4)無環圖目錄結構:在樹形目錄結構的基礎上增加了指向同一節點的有向邊,使整個結構成為一個有向無環圖。(實現了文件的共享)
72.文件共享方式
硬鏈接方式:多個指針指向同一個索引節點,只要還有一個指針指向該結點,結點就不能刪除。
軟鏈接方式:系統創建一個LINK類型的文件,把到達共享文件的路徑記錄下來,當要訪問文件時,根據路徑尋找文件。只有文件的擁有者才能擁有指向文件的指針,而共享該文件的用戶只有該文件的路徑名。
73.文件保護的方式
口令保護:建立一個文件時設置一個口令,用戶請求訪問時需要提供口令。
加密保護:對文件進行加密,文件被訪問時需要提供秘鑰。
訪問控制:為每個文件和目錄增加一個訪問控制列表,規定每個用戶名及其所允許的訪問類型。
74.文件系統的層次結構
用戶接口:為用戶提供文件及目錄有關的調用。文件目錄系統:主要功能是管理文件目錄。存取控制驗證:實現文件保護,判斷訪問是否合法。
邏輯文件系統與文件信息緩沖區:獲取相應文件的邏輯地址。
物理文件系統:將邏輯地址轉換為實際的物理地址。
輔助分配模塊:管理輔存空間。
設備管理模塊:管理物理設備。
75.在目錄中查找某個文件可以使用什么方法?
線性查找:把文件名組織成一個線性表,查找時依次與線性表中的每個表項進行比較。
散列查找:運用哈希函數得到一個指向文件的指針。
76.文件的物理結構(文件的分配方式)
連續分配:每個文件在磁盤上占有一組連續的塊(存儲空間利用率低,會產生難以利用的外部碎片)
鏈接分配:為文件分配離散的磁盤塊,分為隱式鏈接和顯式鏈接
隱式鏈接:除文件的最后一個盤塊外,每個盤塊都存儲指向下一個盤塊的指針(可解決碎片問題,外存利用率高,只能順序訪問,不能隨機訪問,盤塊指針會消耗一定的存儲空間,不穩定)
顯式鏈接:把用來鏈接文件各物理塊的指針提取出來,建立一張文件分配表FAT,顯示記錄盤塊的先后關系。同時還標記了空閑的磁盤塊,FAT表在系統啟動時就會被讀入內存,因此不僅顯著的提高了檢索速度,還減少了訪問磁盤的次數(FAT表需要占用一定的存儲空間)
索引分配:為每個文件建立一張索引表,索引表中記錄了文件各個邏輯塊對應的物理塊。若文件太大可采用:
(1)鏈接方案:將多個索引塊鏈接存放
(2)多層索引:使第一層索引塊指向第二層索引塊,可根據大小再繼續擴展
(3)混合索引:多種索引分配方式的集合。
77.文件存儲空間管理
(1)空閑表法:系統為外存上的所有空閑區建立一張空閑盤塊表,每個空閑區對應一個空閑表項。
(2)空閑鏈表法:將所有空閑盤區拉成一條空閑鏈(空閑盤塊鏈和空閑盤區鏈)
(3)位示圖法:利用二進制的一位來表示磁盤中的一個盤塊的使用情況,磁盤上的每一個盤塊都有一個二進制位與之對應。
(4)成組鏈接法:把順序的n個空閑扇區地址保存在第一個空閑扇區內,其后一個空閑扇區內則保存另一順序空閑扇區的地址。直到所有空閑扇區均已鏈接。
78.文件的邏輯結構和物理結構有什么區別?
文件的邏輯結構是用戶可見的結構,即用戶使用文件的結構;文件的物理結構是文件在存儲器上的組織結構。如果物理結構選擇不當,就很難體現出邏輯結構的特點。
79.磁盤調度算法
先來先服務算法:
最短尋道優先算法:
掃描算法:
循環掃描算法:克服了掃描算法存在的不公平現象。
80.假脫機技術(Spooling技術)
將獨占設備改造成共享設備,從而提高了設備利用率和系統的效率,這種技術稱為假脫機技術。
Spooling系統的組成
輸入井和輸出井:是在磁盤上開辟的兩個存儲區域,輸入井用于收容I/O設備的輸入數據,輸出井用于收容用戶程序的輸出數據。
輸入緩沖區和輸出緩沖區:是在內存中開辟的兩個緩沖區,輸入緩沖區用來暫存由輸入設備送來的數據,以后再轉送到輸入井,輸出緩沖區用來暫存輸出井送來的數據,以后在傳送到輸出設備。
輸入進程和輸出進程:模擬脫機輸入輸出時的外圍控制機。
81.假脫機技術(Spooling技術)的特點
(1)提高了I/O速度;
(2)設備沒有分配給任何進程;
(3)實現了虛擬設備的功能;
(4)除了是一種速度匹配的技術,也是一種虛擬設備技術;
82.I/O控制的方式
程序直接控制,中斷驅動方式,DMA方式,通道控制方式
操作系統知識點也很碎,建議與思維導圖一起食用,我自己做的思維導圖以后再上傳(要尊重原創哦)
整理不易拜托大家多點點關注和收藏吧謝謝啦!
總結
以上是生活随笔為你收集整理的考研操作系统题目整理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nn.Dropout
- 下一篇: css3指南针效果