1. 程式人生 > >找工作筆試面試那些事兒(13)---作業系統常考知識點總結 ZZ 【作業系統】

找工作筆試面試那些事兒(13)---作業系統常考知識點總結 ZZ 【作業系統】

http://blog.csdn.net/han_xiaoyang/article/details/11285485

上一節對資料庫的知識做了一個小總結,實際找工作過程中,因為公司或單位側重點不一樣,考察的知識也是不盡相同的,但是作為計算機類的學生,作業系統的知識也是必不可少的,去年參加筆試面試的時候,騰訊微軟阿里等公司的筆試題都或多或少對作業系統相關的知識點進行了考察。作為一個非計算機科班出生的學僧,當初並沒有學這門課,略尷尬,只有臨時啃書補一補了,這裡給出的是一份作業系統常考知識點的總結,希望能給大家帶來一些小小的幫助。

1、程序是併發過程中程式的執行過程

2、程序的特徵:結構特徵動態性併發性獨立性非同步性

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

4,現在作業系統中申請資源的基本單位是程序,在CPU得到執行的基本單位是執行緒,程序是由程式段、資料段、PCB組成的

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

6,P.V操作是一種低階程序通訊原語

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

8,N個程序共享某一臨界資源,(n-1)~1

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

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

11思索是指多個程序在執行過程中因爭奪資源,而造成的一種僵局,當程序處於這種僵局狀態時,若無外力作用,他們都將無法再向前推進。

死鎖的避免是根據防止系統進入不安全狀態。

產生死鎖的根本原因是資源分配不當和資源數量不足發生死鎖的四個必要條件是:互斥條件,請求和保持條件,不剝奪條件和環路等待條件,銀行家演算法用於避免死鎖

12,如果系統中有N個程序,最多為(N-1)個

13,若系統採用輪轉法排程程序系統採用的是剝奪式排程

14,既考慮作業等待時間,又考慮作業執行時間,的排程演算法是響應比優先排程演算法

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

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

17,重定位:在作業地址空間中使用的邏輯地址變為記憶體實體地址

18,支援程式放在不連續記憶體中儲存管理方法有分取式分配,分段式分配,段頁式分配頁式儲存主要特點是不要將作業同時全部裝入到主存的的連續區域

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

20,採用頁式儲存管理時,重定位的工作由地址轉換機

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

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

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

24,在股低估分割槽分配中,可以不同但預先固定的

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

26,spooling技術能獨佔裝置改造成可以共享的虛擬裝置  

27,磁碟防偽中把資料從磁碟讀出,叫做傳輸時間

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) 在引入執行緒的作業系統中,程序是資源分配和排程的單位,執行緒是處理機排程和分配的單位,資源是分配給程序的,執行緒只擁有很少資源,因而切換代價比程序切換低。

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

死鎖產生的原因:

(a)系統提供的資源有限;

(b)程序推進順序不當。

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

3、執行如下訪問頁號序列: 1,2,3,4,1,2,5,1,2,3,4,5 試說明採用先進(1)FIFO: 9次(2)LRU:10次 (3)OPT:7次   

4、什麼是作業系統的基本功能?

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

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

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

4.資訊管理(檔案系統管理) 是對系統的軟體資源的管理。

5.使用者介面。作業系統還為使用者提供一個友好的使用者介面。一般來說,作業系統提供兩種方式的介面來為使用者服務。

5、分級排程分為4級:

(1) 作業排程

(2) 交換排程

(3) 程序排程 

(4) 執行緒排程。

6、試寫出程式程序區別

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

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

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

(4)不同的程序可以包含同一程式,只要該程式所對應的資料集不同。 

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

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

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

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

8、程序排程有哪些功能?

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

(2)選擇佔有處理機的程序

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

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

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

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

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

10、Windows下的記憶體是如何管理的?

  Windows提供了3種方法來進行記憶體管理:虛擬記憶體,最適合用來管理大型物件或者結構陣列;記憶體對映檔案,最適合用來管理大型資料流(通常來自檔案)以及在單個計算機上執行多個程序之間共享資料;記憶體堆疊,最適合用來管理大量的小物件。

  Windows操縱記憶體可以分兩個層面:實體記憶體和虛擬記憶體。

  其中實體記憶體由系統管理,不允許應用程式直接訪問,應用程式可見的只有一個2G地址空間,而記憶體分配是通過堆進行的。對於每個程序都有自己的預設堆,當一個堆建立後,就通過虛擬記憶體操作保留了相應大小的地址塊(不佔有實際的記憶體,系統消耗很小)。當在堆上分配一塊記憶體時,系統在堆的地址表裡找到一個空閒塊(如果找不到,且堆建立屬性是可擴充的,則擴充堆大小),為這個空閒塊所包含的所有記憶體頁提交物理物件(在實體記憶體上或硬碟的交換檔案上),這時就可以訪問這部分地址。提交時,系統將對所有程序的記憶體統一調配,如果實體記憶體不夠,系統試圖把一部分程序暫時不訪問的頁放入交換檔案,以騰出部分實體記憶體。釋放記憶體時,只在堆中將所在的頁解除提交(相應的物理物件被解除),繼續保留地址空間。

  如果要知道某個地址是否被佔用/可不可以訪問,只要查詢此地址的虛擬記憶體狀態即可。如果是提交,則可以訪問。如果僅僅保留,或沒保留,則產生一個軟體異常。此外,有些記憶體頁可以設定各種屬性。如果是隻讀,向記憶體寫也會產生軟體異常。

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、說出你所知道的保持程序同步的方法

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

17、Linux中常用到的命令

  顯示檔案目錄命令ls        如ls

  改變當前目錄命令cd        如cd /home

  建立子目錄mkdir           如mkdir xiong

  刪除子目錄命令rmdir       如rmdir /mnt/cdrom

  刪除檔案命令rm            如rm /ucdos.bat

  檔案複製命令cp            如cp /ucdos /fox

  獲取幫助資訊命令man      如man ls

  顯示檔案的內容less        如less mwm.lx

  重定向與管道type          如type readme>>direct,將檔案readme的內容追加到文direct中

18、Linux檔案屬性有哪些?(共十位)

  -rw-r--r--那個是許可權符號,總共是- --- --- ---這幾個位。

  第一個短橫處是檔案型別識別符:-表示普通檔案;c表示字元裝置(character);b表示塊裝置(block);d表示目錄(directory);l表示連結檔案(link);後面第一個三個連續的短橫是使用者許可權位(User),第二個三個連續短橫是組許可權位(Group),第三個三個連續短橫是其他許可權位(Other)。每個許可權位有三個許可權,r(讀許可權),w(寫許可權),x(執行許可權)。如果每個許可權位都有許可權存在,那麼滿許可權的情況就是:-rwxrwxrwx;許可權為空的情況就是- --- --- ---。

  許可權的設定可以用chmod命令,其格式位:chmod ugoa+/-/=rwx filename/directory。例如:

  一個檔案aaa具有完全空的許可權- --- --- ---。

  chmod u+rw aaa(給使用者許可權位設定讀寫許可權,其許可權表示為:- rw- --- ---)

  chmod g+r aaa(給組設定許可權為可讀,其許可權表示為:- --- r-- ---)

  chmod ugo+rw aaa(給使用者,組,其它使用者或組設定許可權為讀寫,許可權表示為:- rw- rw- rw-)

  如果aaa具有滿許可權- rwx rwx rwx。

  chmod u-x aaa(去掉使用者可執行許可權,許可權表示為:- rw- rwx rwx)

  如果要給aaa賦予制定許可權- rwx r-x r-x,命令為:

  chmod u=rwx,go=rx aaa

19、簡術OSI的物理層Layer1,鏈路層Layer2,網路層Layer3的任務。

  網路層:通過路由選擇演算法,為報文或分組通過通訊子網選擇最適當的路徑。

  鏈路層:通過各種控制協議,將有差錯的物理通道變為無差錯的、能可靠傳輸資料幀的資料鏈路。

  物理層:利用傳輸介質為資料鏈路層提供物理連線,實現位元流的透明傳輸。

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,然後為所欲為。通過往程式的緩衝區寫超出其長度的內容,造成緩衝區的溢位,從而破壞程式的堆疊,使程式轉而執行其它指令,以達到攻擊的目的。

  造成緩衝區溢位的主原因是程式中沒有仔細檢查使用者輸入的引數。

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

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

  死鎖產生的原因主要是:

       (1)系統資源不足;

       (2) 程序推進順序非法。

  產生死鎖的必要條件:

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

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

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

  (4)環形等待(circularwait),若干程序之間形成一種首尾相接的迴圈等待資源關係。

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

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

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