作業系統 程序與執行緒筆記

2021-07-13 06:00:08 字數 1054 閱讀 5198

程序終止條件

1正常退出

2出錯退出

3嚴重錯誤

4被其他程序殺死

需要執行緒的理由:

1乙個程序需要多個活動

2 執行緒的效能更好一些 更加的輕量 優點

1不需要陷阱 不需要上下文切換  允許自己定製排程演算法

缺點 無法實現時鐘中斷  如何實現阻塞系統呼叫

避免程序競爭的方法:

1 遮蔽中斷

2 鎖變數(無法實現)

3嚴格輪換法(並不好 一直在忙等待 浪費cpu)

4 peterson彼得森演算法 (忙等待)

5 tsl硬體指令

通訊原語在無法進入臨界區會阻塞 而不是忙等待

管程和臨界區的區別在於管程中的執行緒可以自己放棄 讓其他執行緒進來 臨界區的執行緒必須執行完畢

程序之間的通訊可以使用系統呼叫 send receive來傳送接收訊息

屏障是用於給程序組使用的同步方法

2.4排程

何時進行排程

1在建立乙個新的程序以後 要決定執行父程序還是子程序

2 在乙個程序退出的時候決定排程

3當乙個程序阻塞在i/o和訊號量上或者其他原因阻塞

4發生i/o中斷的時候

排程演算法分類

1批處理類 重要的是 吞吐量 周轉時間xpu利用率

1先來先服務  優點:易於理解 缺點:低效 主要因為io密集

2最短作業有限

3最短剩餘時間優先

2互動式   (最小響應時間)

1 輪轉排程

2 優先順序排程(給每乙個程序分配乙個優先順序 一般來說 在每次時鐘中斷的時候 都降低程序的優先順序)

3多級佇列

4最短程序優先(問題 如何找到最短的那個程序)

5保證排程

6彩票排程 

7公平分享排程(保證各個程序分配cpu的時間相同)

3 實時

排程演算法的目標

1公平 2保持系統各部分盡可能的忙碌

使用者級執行緒和核心級執行緒的差別主要在效能(使用者級執行緒效能更好)

作業系統 程序與執行緒

程序 作業系統結構的基礎,是乙個正在執行的程式 計算機中正在執行的程式例項 可以分配給處理器並由處理器執行的乙個實體 由單一順序的執行顯示,乙個當前狀態和一組相關的系統資源所描述的活動單元。程序切換 從正在執行的程序中收回處理器,然後再使待執行程序來占用處理器。這裡所說的從某個程序收回處理器,實質上...

作業系統 程序與執行緒

為什麼會有程序?以前的計算機效能較差,作業系統只支援單任務,也就是一次只能執行乙個任務,當這個任務執行完成之後,才能執行下乙個任務,例如msdos。當該任務進行io時,cpu會處於空閒狀態。隨著計算機效能增強,出現了多工作業系統,作業系統可以將多個任務同時載入到記憶體中,併發執行。當某個任務進行io...

作業系統 程序與執行緒

1 排程 在傳統的作業系統中,擁有資源的基本單位和獨立排程 分派的基本單位都是程序。而引入執行緒的作業系統,則把執行緒作為排程和分派的基本單位,而程序作為資源擁有的基本單位。2 併發性 在引入執行緒的作業系統中,程序之間可併發執行,在乙個程序中的多個執行緒亦可併發執行。3 擁有資源 程序都可以擁有資...