程序管理 六 程序的描述

2022-06-30 12:15:13 字數 2592 閱讀 9436

pcb包含有關程序的描述資訊、控制資訊以及資源資訊,是程序動態特徵的集中反映。

1.系統根據pcb感知程序的存在和通過pcb中所包含的各項變數的變化,掌握程序所處的狀態以達到控制程序活動的目的。

2.乙個程序的pcb結構都是全部或部分常駐記憶體的。

在建立乙個程序時,首先建立其 pcb,然後根據pcb 中資訊對程序實施有效的管理和控制。

當乙個程序完成其功能之後,系統釋放pcb,程序也隨之消亡。

描述資訊

1.程序名或程序標識號

2.使用者名稱或使用者標識號

3.家族關係:每乙個程序必有乙個父程序;可以有0個或者多個子程序。

控制資訊

資源資訊

1.占用記憶體大小及其管理用資料結構指標,例如後述記憶體管理中所用到的程序頁表指標等。

2.在某些複雜系統中,還有對換或覆蓋用的有關資訊,如對換程式段長度,對換外存位址等。在程序申請、釋放記憶體時使用

3.共享程式段大小及起始位址

4.輸入輸出裝置的裝置號,所要傳送的資料長度、緩衝區位址、緩衝區長度及所用裝置的有關資料結構指標等。在程序申請釋放裝置進行資料傳輸中使用

5.指向檔案系統的指標及有關標識等。

cpu 現場保護結構

程序因等待某個事件而進入等待狀態或因某種事件發生被中止在處理機上的執行時,為了以後該程序能在被打斷處恢復執行,需要保護當前程序的 cpu現場(或稱程序上下文)。

乙個pcb表一般佔幾百到幾千個位元組(linux系統的每個pcb約佔1kb多的記憶體空間)。

有的系統為了減少 pcb對記憶體的佔用量,只允許pcb中最常用的部分,如cpu現場保護、程序描述資訊、控制資訊等常駐記憶體。pcb 結構中的其他部分則存放於外存之中,待該程序將要執行時與其他資料一起裝入記憶體。

線性方式

描述:將系統中所有的pcb都組織在一張線性表中,將該錶的首址存放在記憶體的乙個專用區域中

特點:該方式實現簡單、開銷小,但每次查詢時都需要掃瞄整張表,因此適合程序數目不多的系統。

鏈結方式

描述:把具有相同狀態的程序的pcb通過pcb中的鏈結字鏈結成乙個佇列,形成就緒佇列、若干個阻塞佇列和空白佇列等。

排序優先順序:

就緒佇列:

把具有相同狀態的程序的pcb通過pcb中的鏈結字鏈結成乙個佇列,形成就緒佇列、若干個阻塞佇列和空白佇列等。

阻塞佇列:

處於阻塞狀態程序的pcb根據其阻塞原因的不同,排成多個阻塞佇列,如等待i/o操作完成的佇列和等待分配記憶體的佇列等。

索引方式

描述:

根據所有程序狀態的不同,建立幾張索引表,例如,就緒索引表、阻塞索引表等,並把各索引表在記憶體的首位址記錄在記憶體的一些專用單元中。

在每個索引表的表目中,記錄具有相應狀態的某個pcb的位址。

程序上下文是乙個抽象的概念,包含程序執行過的、執行時的以及待執行的指令和資料,是儲存在指令暫存器、堆疊(呼叫子程式的返回點和引數等)、狀態字暫存器等中的內容。

使用者上下文

暫存器上下文

系統級上下文

靜態部分

動態部分

動態部分指在進入和退出不同的上下文層次時,系統為各層上下文中相關聯的暫存器值所儲存和恢復的記錄,其變化規則滿足先進後出的堆疊方式,每個上下文層次在棧中各佔一項。

任一程序,都有乙個自己的位址空間,稱為程序空間或虛空間。

程序空間的大小只與處理機的位數有關。例如,16位長處理機的程序空間大小為216,而32位長處理機的程序空間大小為232。

程式的執行在程序空間內進行。使用者程式、程序的各種控制**等都按一定的結構排列在程序空間中。

使用者空間

使用者程式在使用者空間內執行

系統空間

作業系統核心程式在系統空間內執行。

兩種執行模式

為防止使用者程式訪問系統空間,造成訪問出錯,系統通過程式狀態暫存器等設定不同的執行模式,即使用者模式(使用者態)和系統模式(系統態)來進行保護。

程序管理六(程序的同步與互斥三)

雖然訊號量及其p v操作是一種既方便又有效的程序同步工具,但如果採用這種同步機制來編寫併發程式,對於共享變數及訊號量變數的操作將被分散與各個程序中,有如下缺點 a.程式易讀性差。因為要了解對於一組共享變數及訊號量的操作是否正確,則必須通讀整個系統或者併發程式。b.不利於修改和維護。因為程式的區域性性...

描述程序結構

程序體系結構 user processes 當資料庫使用者客戶端,批處理或者工具連線到oracle db時啟動 database processes 伺服器程序 可以連線到oracle例項,它在使用者建立會話時啟動 1 1對使用者提供資料服務 後台程序 在啟動oracle例項時啟動 監視資料庫系統層...

程序描述控制

程式順序特徵 1.順序性 處理器嚴格按照程式所規定的順序執行,即每乙個操作必須在下乙個操作開始之前結束 2.封閉性 程式在封閉的環境中執行,程式執行時獨佔環境資源,資源狀態,只有本程式可以改變它,程式一旦開始執行,執行結果不受外界干擾 3.可再現性 只要程式執行時的環境和初始條件相同,重複執行的結果...