1. 程式人生 > >操作系統常考知識點總結

操作系統常考知識點總結

可見 兩種 unix 可靠性 最好 系統 最大 nbsp 快的

1、進程管理

1、進程是並發過程中程序的執行過程

2、進程的特征:結構特征動態性並發性獨立性異步性

3、臨界區指在每個進程中訪問臨界資源的那段代碼

4,現在操作系統中申請資源的基本單位是進程,在CPU得到執行的基本單位是線程,進程是由程序段、數據段、PCB組成的

5,對臨界資源應采取互斥訪問方式來實現共享

6,P.V操作是一種低級進程通信原語

7,對於記錄性信號量,在執行一次P操作時,信號量的值應當減1,當其值為小於0時進程應阻塞;在執行V操作時,信號量的值應當加1;當其值小於等於0時,應喚醒阻塞隊列中的進程

9,短作業優先算法,T1<T2<T3平均周轉時間為:T1+2XT2/3+T3/3

10,響應比Rp=(等待時間+要求服務時間)/要求服務器時間=響應時間/要求服務時間

24、什麽是死鎖?其條件是什麽?怎樣避免死鎖?

  死鎖的概念:在兩個或多個並發進程中,如果每個進程持有某種資源而又都等待別的進程釋放它或它們現在保持著的資源,在未改變這種狀態之前都不能向前推進,稱這一組進程產生了死鎖。通俗地講,就是兩個或多個進程被無限期地阻塞、相互等待的一種狀態。

  死鎖產生的原因主要是:

(1)系統資源不足;(2)進程推進順序非法。

  產生死鎖的必要條件:

  (1)互斥(mutualexclusion),一個資源每次只能被一個進程使用;

  (2)不可搶占(nopreemption),進程已獲得的資源,在未使用完之前,不能強行剝奪;

  (3)占有並等待(hold andwait),一個進程因請求資源而阻塞時,對已獲得的資源保持不放;

  (4)環形等待(circularwait),若幹進程之間形成一種首尾相接的循環等待資源關系。

  這四個條件是死鎖的必要條件,只要系統發生死鎖,這些條件必然成立,而只要上述條件之一不滿足,就不會發生死鎖。

  死鎖的解除與預防:理解了死鎖的原因,尤其是產生死鎖的四個必要條件,就可以最大可能地避免、預防和解除死鎖。所以,在系統設計、進程調度等方面註意如何不讓這四個必要條件成立,如何確定資源的合理分配算法,避免進程永久占據系統資源。此外,也要防止進程在處於等待狀態的情況下占用資源。因此,對資源 的分配要給予合理的規劃。

  死鎖的處理策略:鴕鳥策略、預防策略、避免策略、檢測與恢復策略。

13,若系統采用輪轉法調度進程系統采用的是剝奪式調度

15,資源的有序分配策略可以破壞死鎖的“循環等待”

16,並非所有的不安全狀態都必然會轉為死鎖狀態,但當系統進圖不安全按狀態後變有可能進入死鎖狀態,

2、內存管理

17,重定位:在作業地址空間中使用的邏輯地址變為內存物理地址

19,適合多道程序運行的存儲管理中,存儲保護是為了防止各道作業的相互幹擾

21,段頁式存儲管理中的地址映像表每個作業或進程一張段表,每個段一張頁表

22,在虛擬頁式存儲管理方案中,完成將頁面調入內存的工作的是缺頁中斷處理

23,分段管理和分頁管理的主要區別是分頁管理有存儲保護,分段管理沒有

25,不使用中斷機構的I/O控制方式是程序I/O方式

26,spooling技術能獨占設備改造成可以共享的虛擬設備

28,共享設備指同一時間內運行多個進程同時訪問的設備

29,虛擬設備:通過軟件的功能擴充,把原來獨占的設備改造成若幹個可共享的設備

30,DMA方式如果I/O設備不通過CPU來完成

31,設備獨立性用戶程序獨立於具體物理設備的一種特性

32,虛擬設備一個物理設備變換成多個對應的邏輯設備

33,通道是一種特殊的處理機,通道按傳遞數據的方式分為:字節多路通道,數組選擇通道,數組多路通道,通道涉及的數據結構是設備控制器,控制器控制塊,通道控制塊,系統設備表

34,磁盤高速緩沖設在內存中,目的是提高I/O磁盤速度

35,磁盤空間的地址有盤面號,柱面號,扇區號組成。訪問磁盤的時間有 尋道時間,旋轉等待時間,讀寫時間

36,將系統段用參數翻譯成設備操作命令的工作由設備無關的操作系統完成

37,向設備寄存器寫入控制命令由設備驅動程序完成

38,尋找設備驅動程序由設備無關的操作系統軟件完成

39,設備管理的功能是設備分配,緩沖區管理和實現物理I/O設備的操作

40,根據設備的固有屬性特點,設備可分為獨占設備,共享設備和虛擬設備

41,引入緩沖區技術提高處理器執行程序設備的輸入輸出操作的並行程序文件管理

42,物理文件的組織方式是由操作系統確定的,文件的順序存取是按文件的邏輯號逐一存取

43,系統通過樹形目錄結構來解決重名問題

44,在UNIX操作系統中,把輸入輸出設備看做特殊文件

45,打開文件操作的主要工作是把指定的目錄復制到內存指定區域

46,文件路徑名是指從根目錄到該文件所經歷的路徑中各符號名的集合

47,按邏輯結構劃分,文件主要有兩類:記錄是文件,流式文件,文件系統的主要目的是實現對文件的按名存取

48連續結構文件必須采用連續分配方式,而鏈接結構文件和索引結構文件都可采取離散分配方式

49,文件系統中,若文件的物理結構采用連續結構有關文件的物理位置的信息包括首塊地址和文件長度

50,位示圖可用於磁盤空間管理,在文件系統中,為實現文件保護,一般采用口令,密碼和訪問控制

1、進程具有獨立功能程序在某個數據集合上的一次執行過程線程進程內的一個執行實體或執行單元

進程和線程的區別:

(a)不同進程的地址空間是獨立的,而同一進程內的線程共享同一地址空間。一個進程的線程在另一個進程內是不可見的。

(b) 在引入線程的操作系統中,進程是資源分配和調度的單位,線程是處理機調度和分配的單位,資源是分配給進程的,線程只擁有很少資源,因而切換代價比進程切換低。

程序進程區別

(1)進程是一個動態概念,而程序是一個靜態概念。

(2)進程具有並行特征,而程序不反映執行所以沒有並行特征

(3)進程是競爭計算機系統資源的基本單位,而程序不反映執行也就不會競爭計算機系統資源

(4)不同的進程可以包含同一程序,只要該程序所對應的數據集不同。

2、死鎖多道程序系統中當一組進程中的每個進程均無限期地等待被該組進程中的另一進程所占有且永遠不會釋放的資源,此時的系統處於死鎖狀態

死鎖產生的原因:

(a)系統提供的資源有限;(b)進程推進順序不當。

產生死鎖的必要條件:互斥條件、不可剝奪條件、請求和保持條件、循環等待條件

4、什麽是操作系統的基本功能?

1).處理機管理。在多道程序或多用戶的情況下,要組織多個作業同時運行,就要解決對處理機分配調度策略、分配實施和資源回收等問題。

2).存儲管理。存儲管理的主要工作是對內部存儲器進行分配、保護和擴充和管理。

3).設備管理。涉及到通道、控制器、輸入輸出設備的分配和管理以及設備獨立性。

4).信息管理(文件系統管理) 是對系統的軟件資源的管理。

5).用戶接口。操作系統還為用戶提供一個友好的用戶接口。一般來說,操作系統提供兩種方式的接口來為用戶服務。

5、分級調度分為4級:

(1) 作業調度 (2) 交換調度 (3) 進程調度 (4) 線程調度。

7、頁式管理的基本原理是什麽?

(1)進程的虛擬空間被劃分成長度相等的頁。

(2)內存空間也按頁的大小劃分成長度相等的頁面。

(3)采用請求調頁或預調技術實現內外存儲器的統一管理。

8、進程調度有哪些功能?

(1)記錄系統中所有進程的執行情況。

(2)選擇占有處理機的進程

(3)進行進程上下文切換

9、批處理操作系統、分時操作系統和實時操作系統的特點各是什麽?

(1) 批處理操作系統的特點:成批處理,系統吞吐量高,資源利用率高,用戶不能直接幹預作業的執行。

(2)分時操作系統的特點:多路性、獨立性、及時性、交互性。

(3)實時操作系統的特點:及時響應、快速處理;高可靠性和安全性;不要求系統資源利用率。

11、Windows消息調度機制是(C)

  A)指令隊列;B)指令堆棧;C)消息隊列;D)消息堆棧

解析:

  處理消息隊列的順序。首先Windows絕對不是按隊列先進先出的次序來處理的,而是有一定優先級的。優先級通過消息隊列的狀態標誌來實現的。首先, 最高優先級的是別的線程發過來的消息(通過sendmessage);其次,處理登記消息隊列消息;再次處理QS_QUIT標誌,處理虛擬輸入隊列,處理 wm_paint;最後是wm_timer。

12、描述實時系統基本特性

 在特定時間內完成特定的任務,實時性與可靠性。

  所謂“實時操作系統”,實際上是指操作系統工作時,其各種資源可以根據需要隨時進行動態分配。由於各種資源可以進行動態分配,因此,其處理事務的能力較強、速度較快。

13、中斷輪詢特點

  對I/O設備的程序輪詢的方式,是早期的計算機系統對I/O設備的一種管理方式。它定時對各種設備輪流詢問一遍有無處理要求。輪流詢問之後,有要求的,則加以處理。在處理I/O設備的要求之後,處理機返回繼續工作。盡管輪詢需要時間,但輪詢要比I/O設備的速度要快得多,所以一般不會發生不能及時處理的問題。當然,再快的處理機,能處理的輸入輸出設備的數量也是有一定限度的。而且,程序輪詢畢竟占據了CPU相當一部分處理時間,因此,程序輪詢是一種效率較低的方式,在現代計算機系統中已很少應用。

  程序中斷通常簡稱中斷,是指CPU在正常運行程序的過程中,由於預先安排或發生了各種隨機的內部或外部事件,使CPU中斷正在運行的程序,而轉到為響應的服務程序去處理。

  輪詢——效率低,等待時間很長,CPU利用率不高。

  中斷——容易遺漏一些問題,CPU利用率高。

14、什麽是臨界區如何解決沖突

  每個進程中訪問臨界資源的那段程序稱為臨界區每次只準許一個進程進入臨界區進入後不允許其他進程進入

  (1)如果有若幹進程要求進入空閑的臨界區,一次僅允許一個進程進入;

  (2)任何時候,處於臨界區內的進程不可多於一個。如已有進程進入自己的臨界區,則其它所有試圖進入臨界區的進程必須等待;

  (3)進入臨界區的進程要在有限時間內退出,以便其它進程能及時進入自己的臨界區;

  (4)如果進程不能進入自己的臨界區,則應讓出CPU,避免進程出現“忙等”現象。

15、說說分段分頁

  頁是信息的物理單位,分頁是為實現離散分配方式,以消減內存的外零頭,提高內存的利用率;或者說,分頁僅僅是由於系統管理的需要,而不是用戶的需要。

  段是信息的邏輯單位,它含有一組其意義相對完整的信息。分段的目的是為了能更好的滿足用戶的需要。

  頁的大小固定且由系統確定,把邏輯地址劃分為頁號和頁內地址兩部分,是由機器硬件實現的,因而一個系統只能有一種大小的頁面。段的長度卻不固定,決定於用戶所編寫的程序,通常由編輯程序在對源程序進行編輯時,根據信息的性質來劃分。

  分頁的作業地址空間是一維的,即單一的線性空間,程序員只須利用一個記憶符,即可表示一地址。分段的作業地址空間是二維的,程序員在標識一個地址時,既需給出段名,又需給出段內地址。

16、說出你所知道的保持進程同步的方法

  進程間同步的主要方法有原子操作、信號量機制、自旋鎖、管程、會合、分布式系統等。

20、什麽是中斷中斷時CPU做什麽工作

  中斷是指在計算機執行期間,系統內發生任何非尋常的或非預期的急需處理事件,使得CPU暫時中斷當前正在執行的程序而轉去執行相應的事件處理程序。待處理完畢後又返回原來被中斷處繼續執行或調度新的進程執行的過程。

21、你知道操作系統的內容分為幾塊嗎?什麽叫做虛擬內存?他和主存的關系如何?內存管理屬於操作系統的內容嗎

  操作系統的主要組成部分:進程和線程的管理,存儲管理,設備管理,文件管理。虛擬內存是一些系統頁文件,存放在磁盤上,每個系統頁文件大小為4K,物理內存也被分頁,每個頁大小也為4K,這樣虛擬頁文件和物理內存頁就可以對應,實際上虛擬內存就是用於物理內存的臨時存放的磁盤空間。頁文件就是內存頁,物理內存中每頁叫物理頁,磁盤上的頁文件叫虛擬頁,物理頁+虛擬頁就是系統所有使用的頁文件的總和。

22、線程是否具有相同的堆棧dll是否有獨立的堆棧

  每個線程有自己的堆棧。

  dll是否有獨立的堆棧?這個問題不好回答,或者說這個問題本身是否有問題。因為dll中的代碼是被某些線程所執行,只有線程擁有堆棧。如果dll中 的代碼是exe中的線程所調用,那麽這個時候是不是說這個dll沒有獨立的堆棧?如果dll中的代碼是由dll自己創建的線程所執行,那麽是不是說dll 有獨立的堆棧?

  以上講的是堆棧,如果對於堆來說,每個dll有自己的堆,所以如果是從dll中動態分配的內存,最好是從dll中刪除;如果你從dll中分配內存,然後在exe中,或者另外一個dll中刪除,很有可能導致程序崩潰。

23、什麽是緩沖區溢出?有什麽危害?其原因是什麽?

  緩沖區溢出是指當計算機向緩沖區內填充數據時超過了緩沖區本身的容量,溢出的數據覆蓋在合法數據上。

  危害:在當前網絡與分布式系統安全中,被廣泛利用的50%以上都是緩沖區溢出,其中最著名的例子是1988年利用fingerd漏洞的蠕蟲。而緩沖區溢出中,最為危險的是堆棧溢出,因為入侵者可以利用堆棧溢出,在函數返回時改變返回程序的地址,讓其跳轉到任意地址,帶來的危害一種是程序崩潰導致拒絕服務,另外一種就是跳轉並且執行一段惡意代碼,比如得到shell,然後為所欲為。通過往程序的緩沖區寫超出其長度的內容,造成緩沖區的溢出,從而破壞程序的堆棧,使程序轉而執行其它指令,以達到攻擊的目的。

  造成緩沖區溢出的主原因是程序中沒有仔細檢查用戶輸入的參數。

操作系統常考知識點總結