作業系統之程序的描述與控制
一.程式執行
1. 程式順序執行
特徵:
(1)順序性 : 每一操作必須在下一操作開始之前結束。
(2)封閉性 : 程式執行時獨佔全機資源,一旦執行,執行結果不受外界影響。
(3)可再現性:只要執行時的環境和初始條件相同,不論過程怎樣,結果一樣。
2. 程式的併發執行
特徵:
( 1 )間斷性:由於併發程序之間形成了相互制約關係,是併發程序具有
“執行———暫停———-執行”這種間斷性的活動規律。
(2)失去封閉性:程序會受到資源和環境影響。
(3)不可再現性:由於失去了封閉性,也將導致其失去可再現性,其計算結果必將與併發程式的執行速度有關。
二 . 程序的描述
1**. 程序的定義**
為了使程式併發執行,並且可以對併發執行的程式加以描述和控制,引入了”程序“的概念。
定義:
(1)程序是程式的一次執行。
(2)程序是一個程式及其資料在處理機上順序執行時所發生的活動。
- 程序的基本狀態
(1)程序的三種基本狀態
①就緒態:已經處於準備好的狀態,只要在獲得CPU就可以執行。
②執行態:指程序已經獲得CPU,其程式正在執行的狀態。
③阻塞態:正在執行的程序由於發生某些事件(I/O請求與,申請緩衝失敗)暫時無法繼續執行,排入阻塞佇列。
(2)掛起操作(原語Suspend)
①活動就緒–>靜止就緒
②活動阻塞–>靜止阻塞
反之用原語Active - 程序管理中的資料結構
記憶體: 記憶體表 裝置: 裝置表 檔案: 檔案表 程序: 程序表(PCB)
(1)PCB的作用
①作為獨立執行基本單位的標誌。
②能實現間斷性執行方式。
③提供程序管理所需要的資訊。
④提供程序排程所需要的資訊。
⑤實現與其他程序的同步與通訊。
(2)PCB資訊
①程序識別符號(內部,外部)
②處理機狀態。
③程序排程資訊。
④程序控制資訊。
(2)程序控制塊的組織方式
①線性方式。構造線性表,簡單,但是每次查詢需要掃描整張表。
②連結方式。把相同狀態的的程序PCB連結成一個佇列。
③索引方式。索引表中機率相應狀態的某個PCB和其首地址。
三. 程序控制
- 作業系統核心
(1)支撐功能
①中斷處理。是核心最基本功能,是整個作業系統賴以活動的基礎。
②時鐘管理。基本功能,如在時間騙輪轉排程中,時間片完,便讓時鐘管理產生一箇中斷訊號。
③原語操作。要麼全做,要麼全不做,不可分割,常駐記憶體。
(2)資源管理功能
①程序管理
②儲存器管理
③裝置管理
(3)引起程序建立事件
①使用者登入。登入成功,系統將為使用者建立一個程序。
②作業排程。調入記憶體,建立程序。
③提供服務。
④應用請求。
(4)程序的建立
①申請空白PCB。為新程序申請獲得唯一數字標誌符,從PCB集合中索取空白PCB。
②為新程序分配其所需要的資源。
③初始化程序控制塊(PCB)。
④如果程序就緒佇列能夠接納新程序,便將其插入。
三. 執行緒的基本概念
執行緒: 比程序更小的基本單位,用來提高程式併發執行的速度。
1. 執行緒的引入
(1)程序的兩個基本屬性
①程序是一個可擁有資源的獨立單位,一個程序要能獨立執行,必須擁有一定的資源。
②程序同時又是一個可獨立排程和分派的基本單位,每個程序在系統中有唯一的PCB,系統可根據PCB對程序進行排程。
(2)程式併發執行所需時空開銷
①建立程序。
②撤銷程序。
③程序切換
程式併發執行對程序的時空開銷太大,限制程序數目,而且程序切換不宜過於頻繁,限制了併發程序的進一步提高。
(3)執行緒
執行緒 : 把程序的兩個屬性分開來,而作為排程和分派的基本單位的就是執行緒。
2. 執行緒與程序的比較
(1)排程的基本單位
傳統OS:獨立排程和分派的基本單位—–程序
引入執行緒後,獨立排程和分派的基本單位—–執行緒,執行緒切換代價遠遠低於程序,同一程序切換執行緒*不會引起程序的切換,而不在同一程序的執行緒*切換則會。
(2)併發性
不僅程序之間可以併發,執行緒也能併發執行(不管同一程序還是不是同一程序),使OS更具併發性。
(3)擁有資源
程序可以擁有資源,並作為系統擁有資源的基本單位;而執行緒本身並不擁有系統資源(僅有一點保證獨立執行的資源)
( 4 )獨立性
同一程序內的不同執行緒之間的獨立性比不同程序之間的獨立性低得多(前者通常共享很多資源和空間)
(5)系統開銷
建立或者撤銷程序的系統開銷遠大於建立或者撤銷執行緒的開銷,一些OS中,執行緒的切換,同步,通訊都無需核心干預。
(6)支援多處理機系統
傳統程序(單執行緒程序)只能在一個處理機上執行;而多執行緒程序,可以將一個程序的多個執行緒分配到多個處理機上,使它們併發執行,加速了程序的執行。
3. 執行緒執行三個狀態
執行,就緒,阻塞和程序一樣
4. 執行緒控制塊TCB
5. 多執行緒OS中的程序屬性
(1)程序是一個可擁有資源的基本單位。
(2)多個執行緒可併發執行。
(3)程序不是可執行的實體。在多執行緒OS中,把執行緒作為排程的基本單位,程序不在是一個可執行的實體,但仍有與執行相關的狀態,如:程序處於“執行”狀態,實際是指程序中某執行緒正在執行;程序掛起–>所有執行緒掛起。
相關推薦
第二章 程序描述與控制 總結
1.為了能使程式併發執行,並且可以對併發執行的程式加以描述和控制,人們引進程序的概念。 2.程序控制塊PCB。 3.程序實體:程式段、相關資料段、PCB。 4.程序的特徵:動態性、併發性、獨立性、非同步性。 5.程序的三種基本狀態:就緒狀態、執行狀態、阻塞狀態。
學習筆記之湯小丹《計算機作業系統第四版》----第二章 程序的描述與控制
前趨圖:起始結點,終止結點,重量(終止時間) 順序執行特徵:順序性、封閉性、可再現性 程式間可併發執行,只要程式間不存在前趨關係。如 其中,s1: a = x + 2; s2: b = y + 4; s3:c = a + b; s4:d = c + b 因
作業系統之程序的描述與控制
一.程式執行 1. 程式順序執行 特徵: (1)順序性 : 每一操作必須在下一操作開始之前結束。 (2)封閉性 : 程式執行時獨佔全機資源,一旦執行,執行結果不受外界影響。 (3)可再現性:只要執行時的環境和初始條件相同,不論過程怎樣,結果一樣。 2
作業系統之——程序 (1)程序的描述與控制
鋪墊 程式順序執行的特徵: 1.順序性:處理機按照規定的順序執行,每一操作必須在下一操作開始前結束。 2.封閉性:程式執行時獨佔全機資源,資源狀態只有本程式才可以改變,一旦開始執行,結果不受外界因
作業系統複習第二章 程序的描述與控制
1. 程式併發執行時的特徵 間斷性(需要等待其他程式的執行),失去封閉性(執行環境受其他程式影響),不可再現性 2. 由程式段,資料段和PCB構成了程序實體(程序映像) 3. 程序的定義 程序是程式的一次執行,程序是程式及其資料在CPU下順序執
作業系統--第二章程序的描述與控制_4
執行緒 在OS中引入程序的目的是為了使多個程序能夠併發執行以提高資源利用率和系統吞吐量, 而在作業系統中再次引入執行緒則是為了減少程式在併發執行時所付出的時空開銷,使其具有更好的併發性. 程式併發執行的時空開銷: 由以下三種操作組成: ①. 建立程序,為其分配所必需的除處理機以外
作業系統--第二章程序的描述與控制_3
程序通訊 程序通訊指程序間的資訊交換. 大體劃分為兩類: ①.程序的互斥與同步(如訊號量機制) 這種屬於低階的程序通訊,原因在於其 1.通訊的效率低下 2.通訊對使用者不透明 ②.OS提供的高階通訊工具.其特點是:1.能高效的傳送大量資料 2.對使用者透明(封裝了實現通訊的細節).
作業系統之程序與程序控制
一、程序概念 引子 程式執行在併發環境中的問題 (1)執行過程不確定 (2)結果不可再現 1.程序定義 程序是程式在某個資料集合上的一次執行活動。資料集合是指軟硬體環境,多個程序共存或共享的環境。 2.程序的特徵 (1)動態性 程序是程式的一次執行過程,動態產生且動態消亡; (2)併發
2.學習作業系統之程序控制與同步
1程序的概念 1.1程式的順序執行 一個程式通常由若干個程式段組成,這些程式段必須按照某種先後次序執行,只有在前一個程式段執行完成後,後面的程式段才能執行,這類計算過程就是程式的順序執行過程。 順序執行的特徵: 順序性。處理機嚴格按照程式所規定的順
程序描述和控制 --作業系統精髓與設計
作業系統設計必須滿足某些一般性的需求,大多數需求都涉及程序: 作業系統必許交替執行多個程序,在合理的相應時間範圍內使處理器的使用率最大。作業系統必須按照特定的策略(例如某些函式或應用城居具有較高的優
計算機作業系統 第二章 程序的描述與控制
1.程式的順序執行的特徵: 順序性 封閉性(程式執行時獨佔系統資源,執行結果不受外界影響) 可再現性 2.程式的併發執行特徵(只有不存在前驅關係的程式之間才有可能併發執行) 間斷性 失去封閉性 不可再現性 3.為了使參與併發執
第三章—程序描述和控制【計算機作業系統】
3.1 什麼是指令跟蹤? 指令跟蹤是指為該程序而執行的指令序列。 3.2 通常那些事件會導致建立一個程序? 新的批處理作業;互動登入;作業系統因為提供一項服務而建立;由現有的程序派生。(表3.1) 3.3  
第二章 程序的描述與控制(2)
2.4經典同步問題 一、生產者——消費者問題(互斥、同步) 生產者與生產者,消費者與消費者之間是互斥的關係。生產者與消費者之間是順序關係。 設定訊號量empty,full以及互斥訊號量mutex設初值為1。 (1)兩個生產者同時的情況: producer : int in=0
程序的描述與控制 思維導圖 doc
程序的描述與控制 程序的描述與控制............................................................................................................. 1 1. &nb
程序的描述與控制——程序的描述
程序的定義和特徵 1.定義 為了使參與併發執行的每個程式(含資料)都能夠獨立的執行,在作業系統中必須為之配置一個專門的資料結構,稱為程序控制塊(PCB)。系統利用PCB描述程序的基本情況和活動過程,進而控制和管理程序。 程式段、相關的資料段和PCB三部分構成了程序實體(又稱為程序影像)。一般
程序的描述與控制—前趨圖和程式執行
一、前趨圖和程式執行 1.前趨圖 所謂前趨圖,是指一個有向無迴圈圖,記為(DAG);用於描述程序之間執行的先後順序。 p1和p2存在著前驅關係(也可以寫成p1→p2),表示在p2開始執行之前p1必須完成,此時稱p1為p2的直接前驅,而稱p2為p1的直接後繼;並且把沒有前驅的結點稱為初始結點,
第二章 程序的描述與控制
第二章 程序的描述與控制 2.1 前驅圖和程式執行 2.1.1前趨圖 2.1.2程式的順序執行 1、程式的順序執行 把一個應用程式分成若干個程式段,在各程式段之間,必須按照某種先後次序順序執行,僅當前一操作(程式段)執行完後,才能執行後及操作。 2、程式順序執行時的特徵 1)順序性
程序的描述與控制
程序的定義: 一·程序是程式的一次執行。 二.程序是一個程式及其資料在處理機上順序執行時所發生的活動。 三.程序是具有獨立功能的程式在一個數據結合上執行的過程,它是系統進行資源分配和排程的一個獨立單位。 為了使程式併發執行,並且可以對併發執行的程式加以描述和控制
第二章 程序的描述與控制(一)
本篇記一些補充或者總結的東西。 2.1 前趨圖和程式執行 1.前趨圖關注的是前趨關係,不能有迴圈。 2.多道併發應是“有控制的併發”。 多道程式執行符合前趨圖的關係才是合理併發。 沒有任何干預下會出現結果不可再現的併發,即錯誤的併發。 2.2 程序的描述 1.程
Linux作業系統之程序通訊——使用訊息緩衝佇列實現client程序與server程序之間的通訊
使用訊息緩衝佇列來實現client程序和server程序之間的通訊。 問題描述如下: server程序先建立一個關鍵字為SVKEY(如75)的訊息佇列,然後等待接收型別為REQ(如1)的訊息;在收到請求訊息後,它便顯示字串“serving for clien