作業系統複習第二章 程序的描述與控制
1. 程式併發執行時的特徵
間斷性(需要等待其他程式的執行),失去封閉性(執行環境受其他程式影響),不可再現性
2. 由程式段,資料段和PCB構成了程序實體(程序映像)
3. 程序的定義
程序是程式的一次執行,程序是程式及其資料在CPU下順序執行時所發生的活動,程序是具有獨立功能的程式在資料集上執行的過程,它是系統進行資源分配和排程的一個獨立單位。
程序的特徵:動態性,併發性,非同步性,獨立性。
4. 程序的三種狀態
就緒狀態:已經分配到除CPU以外的所有資源,加在就緒佇列中
執行狀態:程序已經獲得CPU,正在執行。
阻塞狀態:正在執行的程序發生了某事件(I/O,申請快取失敗等)暫時無法繼續執行的狀態,此時引起程序排程,把處理機分給另一個程序,它進入阻塞佇列。
三狀態轉化的關鍵點在於:只有程序排程才能進入執行,I/O操作進入阻塞,時間片完以後,進入就緒。
建立狀態:準備PCB過程
終止狀態:程序結束
掛起操作:被掛起後,意味著此時程序處於靜止狀態,如果正在執行,它將暫停執行,如果處於就緒,它將不能被排程
啟用操作:
活動就緒:可以接受排程
靜止就緒:不能接受排程
活動阻塞:沒有被掛起引起的阻塞(普通I/O引起的阻塞)
靜止阻塞:活動阻塞狀態下被掛起,完成I/O後,將轉為靜止就緒
執行狀態被掛起後,進入靜止就緒。
建立到靜止就緒:考慮到當前資源狀態,不分配給新程序所需資源,主要是主存,成為靜止就緒,被放在外存中,不參與排程。
5. PCB
(1)作為獨立執行的基本單位
(2)能實現間斷性執行方式(可以儲存現場)
(3) 提供程序管理所需要的資訊。
(4)提供程序排程所需要的資訊
(5)實現與其他程序的同步與通訊
PCB中的資訊:1 識別符號(內部識別符號和外部識別符號),2 處理機資訊 ,3 程序控制資訊 ,4 程序排程資訊。
6. 程序控制
OS兩種狀態,1.系統態(管態,核心態),可以執行一切指令,2.使用者態(目態),只能執行部分規定的指令
支撐功能:1. 中斷處理, 2. 時鐘管理 3. 原語操作(原子操作要麼全做,要麼全不做)
引起程序建立的4個事件:使用者登入,作業排程,提供服務,應用請求(使用者程序自己建立)
引起程序終止:1 正常結束,2 異常結束(越界,非法指令,特權指令錯,執行超時,等待超時),外界干預(操作員結束,父程序結束,父程序請求結束)
7 程序同步
程序同步的任務:讓多個相關程序在執行次序上進行協調,使併發執行的程序之間能按照一定規則共享系統資源,並能很好的相互合作。
1. 間接相互制約 :由於共享系統資源引起的,
2.直接相互制約:源於程序間的合作關係。
臨界資源(如印表機,磁帶機等)
臨界區:訪問臨界資源的那段程式碼,在之前需要檢查臨界資源的使用情況,寫一段程式碼,叫做進入區。還有退出區(用於回放標誌),其餘程式碼叫剩餘區。
同步機制:空閒讓進,忙則等待,有限等待,讓權等待(釋放處理機)。
8 訊號量
整型訊號量,不符合讓權等待原則
記錄型訊號量,採取讓權等待,並採用了記錄型資料結構,設定了等待連結串列
AND型訊號量
訊號量集 P(S,T,D)T為資源分配下限
9 管程:作業系統的一個資源管理模組,供程序呼叫。共享資源的資料及其在該資料上的一組操作。
10 程序通訊
(1)共享儲存器系統 A:共享資料結構的通訊方式, B 共享儲存區的通訊方式
(2)管道通訊 ,管道是指連線一個讀程序和寫程序之間通訊的一個共享檔案
(3)訊息傳遞系統 A :直接通訊,傳送程序利用OS提供的傳送原語,直接把訊息傳送給目的程序。
B:間接通訊方式,傳送和接收程序,都通過共享中間實體的方式接收和傳送訊息。
(4) 客戶機-伺服器系統
A: 套接字 ,基於檔案型,程序在同一臺機器上執行;基於網路型:
B: 遠端過程呼叫和遠端方法呼叫,
11 執行緒:排程和分配的基本單位,執行緒也能獨立執行,再同一程序裡,執行緒的切換不會引起程序的切換。
執行緒的併發性,程序可以擁有資源,但執行緒本身並不擁有系統資源,僅有一點必不可少的資源,擁有執行緒控制塊(TCB),多個執行緒還可以共享同一個程序的資源,執行緒的建立,切換,代價低於程序。
執行緒執行的狀態:執行,就緒,阻塞
執行緒的實現: 核心支援執行緒,使用者級執行緒(在使用者空間中實現),組合方式(多對一模型:將使用者執行緒對映到一個核心控制執行緒,一對一模型:將每一個使用者執行緒都對映到核心支援執行緒,多對多模式)
使用者執行緒在切換時不用轉為核心態。