系統架構設計師(十二)——操作系統

操作系統,在系統架構師考試裡,佔比不會很多一般也就是前趨和存儲地址、地址偏移幾個方面。

但是我們還是從基礎的開始說吧,也許通過這用方式,能夠重新認識到一些不一樣的世界。

操作系統

操作系統我們一般以資源管理的方式去理解,本質來說其實就是計算機資源管理和程序的執行控制。

計算機分軟硬件,操作系統是最基本的系統軟件,即管理軟硬件資源,又進行控制程序(我怎麼感覺又把上面的東東,說了一遍。)

操作系統分類

一般我們按照模式劃分為:批處理操作系統、分時操作系統、實時操作系統、網絡操作系統、分佈式操作系統、嵌入式操作系統、微內核操作系統……

他提供計算機與人之間的一種接口,比如命令、菜單、窗口……,也為程序提供接口——API。

操作系統主要進行進程管理、存儲管理、設備管理、文件管理、作業管理方面的工作。

進程管理

說到操作系統,第一印象就是和進程相關,比如經常看到的萬能按鍵Ctrl+Alt+Del

系統架構設計師(十二)——操作系統

尤其是任務管理器中的進程管理,更是一個特點鮮明

1、資源共享,系統中的資源不是某一程序專用,而是共同使用,比如cpu、內存、磁盤、網絡……。

2、併發/並行執行,如多處理器系統,在每一個處理器上運行的進程,時間是重疊的,但在單處理器上,進程只是交替運行,說白了就是插空。

結合資源共享,理解並不難,兩者相輔相成。

剛剛提到了進程的交替運行,我們可以聯想出,進程會有狀態:

就緒狀態、執行狀態和阻塞狀態。

就緒狀態:萬事俱備,只欠CPU,明白了吧?

執行狀態:CPU給你,運行ing,但在處理器中只有一個進程能處於執行狀態,多處理器就可以有多個。

阻塞狀態:或者叫等待、睡眠,意思是一樣的,需要的資源沒有準備好,或者其他人已經在用了,我們要等,簡單不。等的人多了,就要排隊,就是阻塞隊列。

當然這三個狀態中,進程只能處於某一個狀態。

那麼當系統出現某些情況後,三種狀態不能滿足需要時,我們需要一種特殊狀態——掛起狀態,這種狀態在很多系統中已經有了,那麼引起掛起狀態的原因一般為:

1、對換需求,當進程處於一種有別於阻塞的狀態,也就是說,完事具備,你也不能就緒,還需要等待某些事件發生的時候,進程無法進入就緒隊列,這個時候需要掛起;

2、用戶請求,進程運行中,用戶希望進程暫停,並保持當前靜止狀態,需要掛起;

3、父進程請求,同上,由父進程發起的,需要掛起;

4、負載調節,系統資源不夠運行所有的進程,需要將某些低等級進程暫停,需要颳起;

5、系統需要,房主都讓你暫停了,你還想啥啊,需要颳起。

看完後,是不是很悲催,誰都能掛起你,so,掛起有三個屬性:

1、就緒能掛起,叫掛起就緒;阻塞能掛起,叫掛起阻塞,同時,掛起後,你不能被調度,只能等著解掛,也就是恢復

2、掛起阻塞的進程,阻塞條件和掛起條件沒有關係,也就是說,完事具備,你,繼續掛起,只是變為掛起就緒。

3、主動掛起,被自己、用戶或系統掛起的,目的在於阻止運行的,只能用顯示方式激活/恢復

說到這裡,又TMD出現一個新的東東,進程互斥與同步進程互斥,互斥好理解,概念不說了,整體說一下就好,互斥就是資源競爭,同步是進程協作,

互斥,我要蘋果,你也要蘋果

同步,我拍一,你拍二,我拍三,你拍四

明白?

繼續,剛剛提到了資源,有些資源一次只能被一個進程使用,我們叫他——臨界資源,For example,一個板栗:打印機,程序中的某個數據……

併發執行中,可以共享資源,沒錯,但臨界資源的訪問,必須互斥,比如,你不想打印的時候,你的打印材料中出現另外一個人的東西,或者材料的正面是你的,反面是別人的。臨界資源的那段程序也是一樣。那麼為此,需要一個專門的同步機制進行協調:

1、空閒讓進,不解釋,多直白

2、忙則等待,一樣直白

3、有限等待,結合上面,不要傻等

4、讓權等待,通過權值,決定誰進入,誰等待

ok,這一部分,我該覺,~~~~~~~~~~~~~~~~~真沒什麼用,能考上面呢???

下一部分學習前趨圖等內容,這個是個考點,至少能作為考試題目出,不像上面講的,嘰裡呱啦的半天,沒毛關係。

明兒~見,也可能後兒,或者大後兒,不管了,反正有時間會見的


分享到:


相關文章: