程序控制塊:識別符號,狀態,優先順序,程式計數器,記憶體指標,上下文資料,i/o狀態資訊,記賬資訊
程序控制塊是作業系統能夠支援多程序和提供多處理的關鍵工具。可以說,程序是由程式**和相關資料還有程序控制塊組成。
模式切換與程序切換不同,發生模式切換可以不改變正處於執行態的程序狀態,在這種情況下,儲存上下文環境和以後恢復上下文環境只需要很少的開銷。
為執行程序管理功能,作業系統維護者對每個程序的描述,或者稱為程序映像,它包括執行程序的位址空間和乙個程序控制塊。
乙個正在執行的程序可能被乙個在程序外發生且被處理器識別的中斷事件打斷,或者被執行作業系統的系統呼叫打斷。不論哪種情況,處理器都執行一次模式切換,把控制轉交給作業系統例程。
使用者級執行緒相對於核心級執行緒有兩個明顯的缺點:
1>在典型的作業系統中,許多系統呼叫都會引起阻塞。因此,當使用者級執行緒執行乙個系統呼叫時,不僅這個執行緒會被阻塞,程序中的所有執行緒都會被阻塞。
2>在純粹的使用者級執行緒策略中,乙個多執行緒應用不能利用多處理技術。
可以通過把應用程式寫成乙個多程序程式而不是多執行緒程式來解決這兩個問題。另一種克服執行緒阻塞問題的方法是使用一種稱作jacketing的技術。jacketing的目標是把乙個產生阻塞的系統呼叫轉化為乙個非阻塞的系統呼叫。
使用者級執行緒和核心級執行緒之間,核心級執行緒和程序之間都有乙個數量級以上的效能差距。
如果應用程式中的大多數執行緒切換都需要核心態的訪問,那麼基於使用者級執行緒的方案不會比基於核心級執行緒的方案好多少。
程序描述控制
程式順序特徵 1.順序性 處理器嚴格按照程式所規定的順序執行,即每乙個操作必須在下乙個操作開始之前結束 2.封閉性 程式在封閉的環境中執行,程式執行時獨佔環境資源,資源狀態,只有本程式可以改變它,程式一旦開始執行,執行結果不受外界干擾 3.可再現性 只要程式執行時的環境和初始條件相同,重複執行的結果...
程序描述和控制
程序描述和控制 什麼是程序 有以下幾個定義 1 乙個正在執行中的程式。2 乙個正在計算機上執行的程式例項。3 能分配給處理器並由處理器執行的實體。4 乙個具有以下特徵的活動單元 一組指令序列的執行 乙個當前狀態和相關的系統資源集。也可以把程序視為由一組元素組成的實體,程序的兩個基本元素是程式 和 相...
程序控制隨筆
從程式設計師角度來說,我們可以認為程序總是處於以下3個狀態之一 fork函式建立子程序後,子程序得到與父程序使用者級虛擬位址空間相同的 但是獨立的 乙份拷貝,包括文字段,資料和bss段,堆以及使用者棧,也就是說父程序和子程序所做的任何改變都是獨立的,不會反應在另乙個程序中。此外子程序還將獲得父程序任...