程序終止條件
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 擁有資源 程序都可以擁有資...