1.1 併發簡史
作業系統使得計算機每次能執行多個程式,並且不同的程式都在單獨的程序中執行: 作業系統為每個獨立的程序分配各種資源,包括記憶體,檔案控制代碼和安全證書等. 如果需要的話,在不同程序之間可以通過一些粗粒度的通訊機制來交換資料, 包括套接字,訊號處理器,共享記憶體,訊號量及檔案
計算機加入作業系統的原因:
a. 資源利用率: 某些情況下,計算機必須等待某個外部操作執行完成,而在等待時程式無法執行其他工作. 如果在等待的時候可以同時執行另外乙個程式,那麼將提高資源的利用率.
b. 公平性: 一種高效的執行方式是通過粗粒度的時間分片使使用者和程式共享計算機上的資源.
c. 便利性: 編寫多個程式執行計算任務更容易實現.
序列程式設計模型: 對於每條被執行的指令,都有對應的"下一條指令",程式的控制流是按照指令集的規則來確定的. 其優勢在於直觀性和簡單性.
執行緒允許同乙個程序中存在多個程式控制流,執行緒共享程序範圍內的資源. 如記憶體控制代碼和檔案控制代碼, 每個執行緒擁有各自的程式計數器,棧(虛擬機器棧)以及區域性變數表.
執行緒也被稱為輕量級程序,作業系統中大多以執行緒為基本的排程單位. 同乙個程序的所有執行緒
共享程序的記憶體位址空間,因此執行緒都能訪問相同的變數並在同乙個堆上分配物件.
因此需要實現一種比程序間共享資料粒度更細的資料共享機制.
1.2 執行緒的優勢
多個執行緒可以同時在多個處理器上執行, 可通過提高處理器的資源利用率來提公升系統吞吐率.
可以將複雜工作流分解為簡單的工作流,每個工作流在乙個單獨的執行緒中執行,並在特定的同步位置進行互動.
1.3 執行緒的安全性問題
比如: 由於多執行緒中的操作順序是不可**的(執行緒通過搶占cpu執行任務),可能使得讀取到某個變數的失效值.
第一章 簡介
執行緒的優勢 發揮多處理器的強大能力 由於基本的排程單位是執行緒,因此如果在程式中只有乙個執行緒,那麼最多同時只能在乙個處理器上執行。在雙處理器系統上,單執行緒的程式只能使用一半的cpu資源,而在擁有100個處理器的系統上,將有99 的資源無法使用。在gui應用,執行緒可以提高使用者介面的響應靈敏度...
第一章(簡介)
技術手段 包含運用虛擬專用網路 virtual private network vpn 加密協議,入侵檢測系統 intrusion detection system ids 入侵防禦系統 instrusion prevention system ips 訪問控制列表 access control l...
第一章 簡介
ipc是程序間通訊 interprocess communication 的簡稱。傳統上該術語描述的是執行在某個作業系統上的程序間的各種訊息傳遞 message passing 的方式。在unix作業系統過去30年的演變史中,訊息傳遞經歷了如下幾個發展階段。看一看由unix提供的各種同步形式的演變同...