應屆生都掌握的基本操做系統知識

1. 進程和線程的區別。

(1)進程是資源分配和保護的基本單位,線程是處理器調度和分派的基本單位,程序執行的最小單元。算法

(2)同一個進程中能夠包含多個線程,而且線程共享整個進程的資源(寄存器、堆棧、上下文),一個進程至少包含一個線程。數據結構

(3)進程結束後,它全部的線程都將銷燬,而線程的結束不會影響同個進程中其餘線程的結束。學習

(4)線程是輕量級的進程,它的建立和銷燬所需時間和空間都比進程小不少,全部操做系統的執行功能都是建立線程去完成的。操作系統

(5)線程有本身的私有屬性TCB,線程id,寄存器、硬件上下文,而進程也有本身的私有屬性進程控制塊PCB,這些私有屬性是不被共享的,用來標示一個進程或一個線程的標誌線程

2.進程的幾種狀態

(1)運行狀態:進程正在處理機上運行隊列

(2)就緒狀態:進程已經得到了除處理機以外的一切所需資源進程

(3)阻塞狀態:進程正在等待某一事件而暫停執行事件

(4)建立狀態:進程正在被建立,還沒有轉到就緒狀態。ip

(5)結束狀態:進程正在從系統中消失,分爲正常結束和異常退出。內存

3.進程通信的幾種方式

(1)共享存儲:

  低級方式:基於數據結構的共享

  高級方式:基於存儲區的共享

(2)消息傳遞:

  直接通訊方式:直接把消息掛到接收進程的消息隊列。

  間接通訊方式:掛到某個中間實體,接收進程找實體接收消息,相似電子郵件。

(3)管道通訊:利用一種特殊的pipe文件鏈接兩個進程

4.內核態和用戶態

根據執行程序對資源和機器指令的使用權限能夠將處理器的狀態分爲內核態和用戶態。

內核是一組程序模塊,運行於內核態,具備直接訪問硬件設備和全部內存空間的權限,是僅有的可以執行特權指令的程序。

通常而言,內核具備如下功能:中斷處理、時鐘管理、原語、系統控制的數據結構及處理(進程管理、存儲管理、設備管理)。

三種狀況會發生用戶態向內核態轉換:(其實這三種狀況都算是經過中斷機制發生)

(1)系統調用(軟中斷)

(2)中斷(外中斷)

(3)異常(內中斷)

4.什麼是中斷?

中斷是指處理器接收到了來自硬件或者軟件的信號,提示發生了某個事件,應該被注意,這種狀況就稱爲中斷。

中斷分爲內中斷和外中斷:

(1)外中斷,也稱中斷,指來自CPU執行指令之外的事件的發生,如I/O結束中斷、時鐘中斷。

(2)內中斷,又稱異常,指源自CPU執行指令內部的事件,如程序的非法操做碼、地址越界、算術溢出、虛存系統的缺頁以及專門的陷入指令等引發的事件。

5.死鎖?死鎖產生的緣由,死鎖的必要條件?怎麼預防?怎麼處理死鎖?

死鎖:相互等待資源而產生的一種僵持狀態,若是沒有外力的干預將一直持續這個狀態。

產生緣由:系統資源不足、相互競爭資源、資源請求順序不當。

產生死鎖的必要條件:

互斥條件:指進程對所分配到的資源進行排它性使用,即在一段時間內某資源只由一個進程佔用。若是此時還有其它進程請求資源,則請求者只能等待,直至佔有資源的進程用畢釋放。

請求與保持條件:指進程已經保持至少一個資源,但又提出了新的資源請求,而該資源已被其它進程佔有,此時請求進程阻塞,但又對本身已得到的其它資源保持不

不剝奪條件:指進程已得到的資源,在未使用完以前,不能被剝奪,只能在使用完時由本身釋放。

循環與等待條件:存在一個循環鏈,互相等待資源的釋放 預防死鎖:破壞三個條件之一就能夠,常見的方法有有序資源分配法、銀行家算法。

處理死鎖:由於互斥是不可改變的,因此只能破壞其餘三個條件中的一個來解除死鎖,方法:剝奪資源、殺死其中一個線程

6. 什麼是虛擬內存。

基於局部性原理,咱們能夠把程序的一部分裝到內存,而將其他部分留在外存,就能夠啓動程序運行。

當所訪問的信息不存在時,操做系統就將所需部分調入內存。

此外,操做系統會將內存中暫不須要的部份換出到外存中,從而騰出空間存放將要調入內存的信息。

這樣系統好像爲用戶提供了一個比實際內存大得多的存儲器,稱爲虛擬存儲器。

你的點贊是我持續輸出的動力 但願能幫助到你們 互相學習 有任何問題下面留言 必定回覆

相關文章
相關標籤/搜索