天天看點

計算機作業系統知識筆記第三部分

作業系統(Operating System)

程序、線程與處理機排程
  • ①程序同步與線程
    • 由于多個程序可以并發執行,是以程序間必然存在資源共享和互相合作的問題。如不主動去調整程序,會出現執行的不可再現。
    • 一組程序為了協調其推進速度,在某些地方需要互相等待或者喚醒,這種程序間的互相制約就被稱作是程序同步。
    • 同步機制應遵循的規則:空閑讓進、忙則等待、有限等待、讓權等待。有限等待:要求通路臨界區的程序,保證有限時間内進入臨界區,避免死等。讓權等待:程序不能進入臨界區時,應立即釋放處理機,避免忙等。
    • 信号量機制:利用 PV 操作來對信号量進行處理,解決程序同步問題的工具。 通過将資源數量化,将申請資源和釋放資源的動作具體化,進而達到對資源的操作及結果可視化。
    • 管程機制:管程機制的好處在于所有的程序都采用這種機制擷取臨界資源,不需要考慮怎麼解決臨界資源内在的沖突,統一處理。
    • 線程:線程是輕型程序,一個程序可擁有多個線程,線程是程式執行的最小機關。線程不能獨立執行。同一程序的線程共享程序資源,是以當一個線程發生崩潰時,此程序也會發生崩潰。 但是各個程序之間的資源是獨立的,是以當一個程序崩潰時,不會影響其他程序。是以程序比線程更具有健壯性。線程的建立以及線程間的切換并不會引起程序建立、切換和撤銷等,是以線程的系統開銷明顯更小。
  • ②死鎖
    • 死鎖:兩個以上的程序互相要求對方釋放已經占有的資源導緻無法繼續運作下去的現象。例子:抽屜與箱子裡都有面包。A 程序想把面包從箱子裡取出放到抽屜裡。B 程序想打開抽屜取面包放到抽屜裡。A 程序請求了箱子,成功!B 程序請求了抽屜,成功!但是接下來,A 程序要等待 B 程序釋放抽屜, B 程序需要 A 程序釋放箱子,形成死鎖。
    • 産生死鎖的原因:競争不可搶占性資源、程序運作推進的順序不合理、競争可消耗資源。産生死鎖的四個必要條件:互斥條件、請求與保持條件、不剝奪條件、循環等待條件。

繼續閱讀