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

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

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

      

一、進程是併發過程當中程序的執行過程面試

二、進程的特徵:結構特徵動態性併發性獨立性異步性算法

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

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,位示圖可用於磁盤空間管理,在文件系統中,爲實現文件保護,通常採用口令,密碼和訪問控制                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         

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

進程和線程的區別:

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

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

 

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

死鎖產生的緣由:

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

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

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

 

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

 

四、什麼是操做系統的基本功能?

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

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

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

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

5.用戶接口。操做系統還爲用戶提供一個友好的用戶接口。通常來講,操做系統提供兩種方式的接口來爲用戶服務。

 

五、分級調度分爲4級:

(1) 做業調度

(2) 交換調度

(3) 進程調度 

(4) 線程調度。

 

六、試寫出程序進程區別

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

(2)進程具備並行特徵,而程序不反映執行因此沒有並行特徵

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

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

 

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

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

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

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

 

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

(1)記錄系統中全部進程的執行狀況。

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

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

 

九、批處理操做系統、分時操做系統和實時操做系統的特色各是什麼?

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

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

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

 

十、Windows下的內存是如何管理的?

  Windows提供了3種方法來進行內存管理:虛擬內存,最適合用來管理大型對象或者結構數組;內存映射文件,最適合用來管理大型數據流(一般來自文件)以及在單個計算機上運行多個進程之間共享數據;內存堆棧,最適合用來管理大量的小對象。

  Windows操縱內存能夠分兩個層面:物理內存和虛擬內存。

  其中物理內存由系統管理,不容許應用程序直接訪問,應用程序可見的只有一個2G地址空間,而內存分配是經過堆進行的。對於每一個進程都有本身的默認堆,當一個堆建立後,就經過虛擬內存操做保留了相應大小的地址塊(不佔有實際的內存,系統消耗很小)。當在堆上分配一塊內存時,系統在堆的地址表裏找到一個空閒塊(若是找不到,且堆建立屬性是可擴充的,則擴充堆大小),爲這個空閒塊所包含的全部內存頁提交物理對象(在物理內存上或硬盤的交換文件上),這時就能夠訪問這部分地址。提交時,系統將對全部進程的內存統一調配,若是物理內存不夠,系統試圖把一部分進程暫時不訪問的頁放入交換文件,以騰出部分物理內存。釋放內存時,只在堆中將所在的頁解除提交(相應的物理對象被解除),繼續保留地址空間。

  若是要知道某個地址是否被佔用/可不能夠訪問,只要查詢此地址的虛擬內存狀態便可。若是是提交,則能夠訪問。若是僅僅保留,或沒保留,則產生一個軟件異常。此外,有些內存頁能夠設置各類屬性。若是是隻讀,向內存寫也會產生軟件異常。

 

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

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

解析:

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

 

十二、描述實時系統基本特性

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

  所謂「實時操做系統」,其實是指操做系統工做時,其各類資源能夠根據須要隨時進行動態分配。因爲各類資源能夠進行動態分配,所以,其處理事務的能力較強、速度較快。

 

1三、中斷輪詢特色

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

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

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

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

1四、什麼是臨界區如何解決衝突

  每一個進程中訪問臨界資源的那段程序稱爲臨界區每次只准許一個進程進入臨界區進入後不容許其餘進程進入

  (1)若是有若干進程要求進入空閒的臨界區,一次僅容許一個進程進入;

  (2)任什麼時候候,處於臨界區內的進程不可多於一個。如已有進程進入本身的臨界區,則其它全部試圖進入臨界區的進程必須等待;

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

  (4)若是進程不能進入本身的臨界區,則應讓出CPU,避免進程出現「忙等」現象。

 

1五、說說分段分頁

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

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

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

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

 

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

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

 

1七、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中

 

1八、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

 

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

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

  鏈路層:經過各類控制協議,將有差錯的物理信道變爲無差錯的、能可靠傳輸數據幀的數據鏈路。

  物理層:利用傳輸介質爲數據鏈路層提供物理鏈接,實現比特流的透明傳輸。

 

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

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

 

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

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

 

2二、線程是否具備相同的堆棧dll是否有獨立的堆棧

  每一個線程有本身的堆棧。

  dll是否有獨立的堆棧?這個問題很差回答,或者說這個問題自己是否有問題。由於dll中的代碼是被某些線程所執行,只有線程擁有堆棧。若是dll中的代碼是exe中的線程所調用,那麼這個時候是否是說這個dll沒有獨立的堆棧?若是dll中的代碼是由dll本身建立的線程所執行,那麼是否是說dll有獨立的堆棧?

  以上講的是堆棧,若是對於堆來講,每一個dll有本身的堆,因此若是是從dll中動態分配的內存,最好是從dll中刪除;若是你從dll中分配內存,而後在exe中,或者另一個dll中刪除,頗有可能致使程序崩潰。

 

2三、什麼是緩衝區溢出?有什麼危害?其緣由是什麼?

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

  危害:在當前網絡與分佈式系統安全中,被普遍利用的50%以上都是緩衝區溢出,其中最著名的例子是1988年利用fingerd漏洞的蠕蟲。而緩衝區溢出中,最爲危險的是堆棧溢出,由於入侵者能夠利用堆棧溢出,在函數返回時改變返回程序的地址,讓其跳轉到任意地址,帶來的危害一種是程序崩潰致使拒絕服務,另一種就是跳轉而且執行一段惡意代碼,好比獲得shell,而後隨心所欲。經過往程序的緩衝區寫超出其長度的內容,形成緩衝區的溢出,從而破壞程序的堆棧,使程序轉而執行其它指令,以達到攻擊的目的。

  形成緩衝區溢出的主緣由是程序中沒有仔細檢查用戶輸入的參數。

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

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

  死鎖產生的緣由主要是:

       (1)系統資源不足;

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

  產生死鎖的必要條件:

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

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

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

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

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

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

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

相關文章
相關標籤/搜索