1. 程式人生 > >讀書筆記之《操作系統概念》

讀書筆記之《操作系統概念》

dea 非共享 body any ber 編程 進程 分享 系統

非常小型的操作系統,如篇首的小恐龍所使用的驅動手持設備的操作系統,是Silberschatz、Galvin和Gagne第七版《操作系統概念》中的一種前沿應用。通過保留最新的,保持有意義的,並改編為課程最需要的內容,這本引導市場潮流的教材繼續指導著操作系統課程。

第二部分 進程管理

第四章 進程

進程狀態

創建、運行、等待、就緒、終止

進程:一個具有單個控制線程的執行程序。

第五章 線程

線程:是CPU使用的基本單元

多線程編程優點:

  • 響應度高
  • 資源共享
  • 經濟
  • 多處理器體系結構的利用

多線程模型

  1. 多對一 Many-to-one

優點:

線程之間切換快

可以用用戶自己的方式管理線程庫

缺點:

如果一個線程執行了阻塞系統調用,那麽整個系統就會阻塞。

  1. 一對一 One - to - one

優點:更好的並發能力

缺點:創建一個用戶線程就需要創建一個相應的內核線程

  1. 多對多 Many-to - many

優點:沒有many-to-One和 one-to -one的缺點


  • 線程池

在進程開始時創建一定數量的線程,並放入到池中坐以等待工作。

如果池中沒有可用的線程,那麽服務器會一直等待直到有空線程為止。

優點:

  1. 用現有線程處理請求要比等待創建新的線程要快
  2. 線程池限制了在任何時候可存在線程的數量

第七章 進程同步

多個進程並發訪問和操作同一數據且執行結果與訪問發生的特定順序有關,稱為競爭條件。

兩個或多個進程無限地等待一個事件,而該事件只能由這些等待進程之一來產生。當出現這樣的狀態時,這些進程稱為死鎖(deadlocked)。


第八章 死鎖

  • 必要條件
  1. 互斥:至少有一個資源必須處於非共享模式,即一次只有一個進程使用。
  2. 占有並等待:一個進程必須占有至少一個資源,並等待另一資源,而該資源為其他進程所占有。
  3. 非搶占:資源不能被搶占;即,只有進程完成其任務之後,才會釋放其資源。
  4. 循環等待:一組進程,循環等待下一個的資源。

所有四個條件必須同時滿足才會出現死鎖。

為了預防死鎖,要確保這四個必要條件中的一個不成立。


  • 死鎖恢復
  1. 進程終止

終止所有死鎖進程

一次只終止一個進程直到取消死鎖循環為止

  1. 資源搶占

選擇一個犧牲品

回滾

饑餓


從理論上來說,有三種方法可以處理死鎖:

  1. 使用一些協議來預防或避免死鎖,確保系統永遠都不會進到死鎖狀態。
  2. 允許系統進入死鎖狀態,檢測死鎖,並恢復。
  3. 忽視所有問題,並假設系統中永遠都不會出現死鎖。

技術分享圖片

讀書筆記之《操作系統概念》