1. 程式人生 > >第二章 程序的描述與控制(一)

第二章 程序的描述與控制(一)

本篇記一些補充或者總結的東西。

2.1 前趨圖和程式執行

1.前趨圖關注的是前趨關係,不能有迴圈。

2.多道併發應是“有控制的併發”。

多道程式執行符合前趨圖的關係才是合理併發。

沒有任何干預下會出現結果不可再現的併發,即錯誤的併發。

2.2 程序的描述

1.程序的特徵

①結構性特徵,程序的根本——PCB

②動態性,程序最基本的特徵

③併發性

④獨立性

⑤非同步性

2.區別程序和程式

①動與靜

程序是動態的,程式是靜態的;程式是有序程式碼的集合,程序是程式的執行。

②永久與暫時

程序是暫時的,程式是永久的;程序是一個狀態變化的過程,程式是可長久儲存的。

③結構

程序的組成包括程式、資料和程序控制塊(程序各種控制資訊)。

④程序與程式的對應關係

都可以一對n。通過多次執行,一個程式可對應多個程序;通過呼叫關係,一個程序可包括多個程式。

3.建立狀態

①申請一個空白PCB

②分配資源

③PCB的初始化工作

④將新程序插入就緒佇列

4.程序控制塊是程序存在的唯一標誌。

5.OS對程序進行控制和管理圍繞PCB進行。

6.存放程序的管理和控制資訊的資料結構為程序控制塊。

2.3 程序控制

1.原語:是由若干指令構成的原子操作過程,作為整體實現功能,不可被打斷(CPU關中斷)。

2.程序只能掛起自己或其子孫程序。

3.關於排程

①程序控制中,狀態轉換和排程密切相關。

②執行態程序的改變必然產生排程行為。

③只要產生新就緒態程序,就需考慮排程策略。

只要是採用搶佔式排程,要檢查新就緒程序是否可搶佔CPU,引起新的排程。