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

第二章 程序的描述與控制

第二章 程序的描述與控制

2.1 前驅圖和程式執行

2.1.1前趨圖在這裡插入圖片描述
2.1.2程式的順序執行
1、程式的順序執行
把一個應用程式分成若干個程式段,在各程式段之間,必須按照某種先後次序順序執行,僅當前一操作(程式段)執行完後,才能執行後及操作。
2、程式順序執行時的特徵
1)順序性
2)封閉性
3)可再現性
2.1.3 程式的併發執行
1、程式併發執行時的特徵
1)間斷性
2)失去封閉性
3)不可再現性

2.2 程序的描述

2.2.1 程序的定義和特徵

1、程序的特徵和定義

1)定義: 通常的程式是不能併發執行的。為使程式(含資料)能獨立執行,應為之配置一程序控制塊,即 PCB(Process Control Block):而由程式段、相關的資料段和 PCB 三部分便構成了程序實體。在早期的 UNIX 版本中,把這三部分總稱為“程序映像”。在許多情況下所說的程序,實際上是指程序實體,如,所謂建立程序,實質上是建立程序實體中的 PCB;而撤銷程序,實質上是撤銷程序的 PCB。
2)動態性
3)併發性
4)獨立性
5)非同步性

2、程序的三種基本狀態

1)就緒狀態
2)執行狀態
3)阻塞狀態

3、三種基本狀態的轉換

在這裡插入圖片描述
4、建立狀態和終止狀態終止狀態

在這裡插入圖片描述
2.2.3 掛起操作和程序狀態的轉換
1、程序狀態的轉換
①活動就緒→靜止就緒
②活動阻塞→靜止阻塞
③靜止就緒→活動就緒
④靜止阻塞→活動阻塞在這裡插入圖片描述

2.引入掛起操作後五個程序狀態的轉換

在這裡插入圖片描述

2.2.4 程序管理中的資料結構
1、程序控制塊的作用
為了描述和控制程序的執行,系統為每個程序定義了一個數據結構——程序控制塊 PCB(Process Control Block),PCB 是程序存在的唯一標誌

2、程序控制塊中的資訊
1)程序識別符號
2)處理機狀態
3)程序排程資訊
4)程序控制資訊

3、程序控制塊的組織方式
1)連結方式
在這裡插入圖片描述
2)索引方式
在這裡插入圖片描述

2.3 程序控制

2.3.1程序的建立
1.引起建立程序的事件:
使用者登入、作業排程、提供服務、應用請求
2、程序的建立步驟:
1)申請空白PCB。
2)為新程序分配其執行所需的資源。
3)初始化程序控制塊。
4)如果程序就緒佇列能夠接納新程序,便將新程序插入就緒佇列。

2.4程序同步

1、理解同步的含義
2、訊號量機制控制程序同步
3、管程
2.4.3訊號量機制
1、整型訊號量

在這裡插入圖片描述
2、記錄型訊號量
3、AND型訊號量

2.5經典程序的同步問題

在這裡插入圖片描述

2.6 執行緒的種類

1.核心執行緒KST
2.使用者執行緒ULT