1. 程式人生 > >作業系統複習第二章 程序的描述與控制

作業系統複習第二章 程序的描述與控制

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),多個執行緒還可以共享同一個程序的資源,執行緒的建立,切換,代價低於程序。

執行緒執行的狀態:執行,就緒,阻塞

執行緒的實現: 核心支援執行緒,使用者級執行緒(在使用者空間中實現),組合方式(多對一模型:將使用者執行緒對映到一個核心控制執行緒,一對一模型:將每一個使用者執行緒都對映到核心支援執行緒,多對多模式)

使用者執行緒在切換時不用轉為核心態。