一. 進程概念
1 進程引入,程式順序執行、並發執行定義和特點
程式的順序執行---一個程式由若干程式段組成,而這些程式段的執行必須按照嚴格的先後次序順序的執行
特點:順序性,封閉性,執行結果可再現性
並發執行:一定時間內物理機器上有兩個或兩個以上的程式同處於開始運行但尚未結束的狀態,並且次序不是事先確定
特點:失去程式的封閉性
程式與計算不在一一對應
並發執行的相互制約: 直接的相互制約關係----公開變數
間接的相互制約關係---資源共用
進程的引入:
作業系統特性 之一 並發和共用。要解決這些問題,程式的概念不能描述程式在記憶體的運行狀態,引入新的概念 進程
2 與時間有關的錯誤:定義、謄抄執行個體
有關的錯誤 就是兩個buffer情況下 ,copy put get操作的協調問題
3 進程狀態 三個基本狀態、狀態變遷圖
運行狀態
就緒狀態
等待狀態
4 進程描述 pcb結構與作用、進程的組成、Unix進程式控制制塊結構、Unix進程的組成
描述一個進程在各個不同時期所處的狀態,與其他進程及系統資源的關係的資料結構成為進程式控制制塊pcb
進程與pcb是一一對應的
pcb結構與作用
pcb是系統感知進程存在的唯一標誌
進程式控制制塊主要內容
1 進程標識符
2 進程目前狀態
3 當前隊列指標next
4總鏈隊列指標all_q_next
進程的組成
1)進程式控制制塊
2)程式與資料
二 進程式控制制
1 進程式控制制的功能
進程建立,撤銷,阻塞,喚醒
改變優先順序,調度進程,進程延遲
2 基本進程式控制制原語
建立原語 :create
建立一個指定標識符的進程(形成該進程的進程式控制制塊pcb)。
撤銷原語:撤銷當前啟動並執行進程。將該進程所佔用的資源歸還給父進程,從總鏈隊列中摘除pcb結構,歸還到pcb資源集區,然後轉進程發送器。
等待原語中止調用進程的執行,並加入到等待chan的等待隊列中,最後使控制轉向進程調度
喚醒原語
當進程等待的事件發生時,喚醒等待該事件的所有進程或等待該事件的首進程。3 進程式控制制原語的主要功能及結構變化
三. 進程同步機構1. 鎖 上鎖原語、開鎖原語
鎖:用變數w代表某種資源的狀態,w稱為鎖
上鎖 原語 lock
開鎖原語 unlock
2 號誌和p,v操作
號誌是整型變數
號誌是一個確定的二元組(s,q),s是一個具有
非負初值的整型變數,q是一個初始狀態為空白的隊列。作業系統利用號誌的值對並發進程和共用資源進行控制和管理。
p(s)不可分割原語,號誌值減去1
v(s)不可分割原語,+1
四. 進程互斥 1. 臨界資源
把一次只允許一個進程使用的資源 2. 臨界區
每個進程訪問臨界資源的那段程式段 3. 互斥
某一進程正在訪問某一儲存地區時,就不允許其他進程來讀出或者修改儲存區的內容,否則就會發生後果無法估計的錯誤 4. 用號誌的P、V操作實現進程互斥
五. 進程同步 1. 同步概念
並發進程在一些關鍵點上可能需要相互等待與互連資訊 2. 合作進程的執行次序
包括串列執行或並行,串並執行 3. 共用緩衝區的合作進程的同步
必須遵循:cp把結果送入buffer ,然後iop才能從buffer裡取,否則iop等待
iop從buffer中取走資料後,cp才能將新產生的資料送到buffer,否則必須等待 4. 生產者-消費者問題
對於生產者進程 ;產生一個資料,進入緩衝區,必須檢查是否已滿,未滿送入,並通知消費者否則等待
對於消費者進程:取資料,看緩衝區是否有資料可取,若有則取走一個資料,並通知生產者進程否則等待