8.線程

線程

  • 進程:使多個程序能併發執行,以提升資源利用率和系統吞吐量。
  • 引入線程,是爲了救減小程序在併發執行時所付出的時空開銷,使OS具備更好的併發性。

引入線程的目的

  • 進程是可擁有資源的獨立單位和可獨立調度和分派的基本單位。
  • 建立、撤銷和切中,系統必須爲之付出較大的時空開銷。故進程,其數目不宜過多,進程切換的頻率也不宜太高。
  • 進程不該同時做爲擁有資源的單位和可獨立調度和分派的基本單位,應該「輕裝上陣」。

線程的屬性

(1)輕型實體。線程中的實體基本上不擁有系統資源。併發

(2)獨立調度和分派的基本單位。線程的切換很是迅速、開銷小。異步

(3)可併發執行。線程

(4)共享進程資源。blog

進程和程序的區別

  • 進程是動態的,程序是靜態的。
  • 進程具備併發性,而程序具備順序性
  • 進程具備獨立性,是資源分配和調度的基本單位,而程序無此特性
  • 進程和程序間沒有一一對應關係
  • 進程異步運行,會相互制約,程序不具有此特性

題目

有兩個用戶進程A和B,在運行過程當中都要使用系統中的一臺打印機輸出計算結果。進程

(1)說明A、B進程之間存在什麼樣的制約關係?資源

答:互斥。由於打印機屬於臨界資源,必須一個進程使用完以後另外一個進程才能使用。程序

(2)爲保證這兩個進程能正確的打印出各自的結果,請用信號量和P、V操做寫出各自的有關申請、使用打印機的代碼。要求給出信號量的含義和初值。im

答:mutex:用於互斥的信號量,初值爲1。代碼以下:img

相關文章
相關標籤/搜索