程序及其實現

2021-10-05 10:29:02 字數 1500 閱讀 7216

一、程序的定義

1、程序是可併發執行的程式在某個資料集合上的一次計算活動,也是作業系統進行資源分配和保護的基本單位

2、可以用來共享資源又能描述程式併發

為什麼要引入程序概念

1、刻畫程式的併發性:程式是併發執行的,這是由於資源共享和競爭問題,程式自身只是計算任務的指令和資料的描述,是靜態的,程序是動態描述

2、共享性:可重入程式

二、

程序三態模型及其轉換

程序五態模型

程序的掛起?

為了讓某些程序暫時不參與低階排程,釋放它占有的資源以平滑系統負荷的目的而需引入掛起態;

三、程序上下文以及程序的切換

程序上下文:程序物理實體以及支援程序執行的環境

組成:使用者級上下文

系統級上下文

暫存器上下文  

當程序發生切換的時候:程序上下文也必須發生切換

程序上下文的切換

具體步驟:

1、儲存被中斷程序的處理器現場資訊

2、修改被中斷程序的程序控制塊的有關狀態

3、被中斷程序的psw放入相關佇列

4、選擇要執行的程序

5、修改要執行的程序的psw

6、根據被選中程序設定作業系統用到的位址轉換和儲存保護資訊

7、恢復處理器的現場

四、程序的建立、撤銷、

(一)程序的建立

1、從pcb池中,申請乙個空閒的額pcb,為程序分配唯一的程序識別符號

2、為新程序的程序映像分配位址空間

3、分配除了記憶體之外的其他資源

4、初始化pcb

5、設定為 就緒態 

(二)程序的撤銷

1、撤銷程序的識別符號

2、收回程序的資源

3、如果有子程序的話,先撤銷他的子程序

4、**pcb

(三)程序的阻塞

1、停止程序的執行,儲存資訊到pcb中

2、修改pcb有關內容,如修改狀態 從就緒到等待

3、去排程其他程序

(四)、程序的喚醒

1、從等待佇列中移出程序

2、修改pcb中的狀態

3、判斷當前程序與正在執行程序的pcb,看是否搶占處理機

精靈 守護 程序及其實現

精靈程序 也稱守護程序,是執行在後台的一種特殊程序。它獨 立於控制終端並且周期性地執行某種任務或等待處理某些發生的事件。它不屬於任何乙個會話,它自成會話,自成程序組。一般而言,後台程序永遠不能退出。所有的精靈程序的父程序都是1,即所有的精靈程序都是孤兒程序。精靈程序一般以d結尾。用ps axj 來檢...

code及其實現

1.what is code?編碼並不是我隨便亂取的名字,其原理在資訊檢索導論第5章第3節有介紹,用於壓縮一連串有序的數字型別的資料非常有用。在mg中將 編碼歸類為全域性模型 mg更推崇區域性模型 其原理是將所有的資料分成兩部分連起來,第一部分為資料長度,第二部分為資料內容。這樣做的好處是對於很小的...

最常見的程序排程演算法及其實現

先來先服務 fcfs 排程演算法是一種最簡單的排程演算法,該演算法既可用於作業排程,也可用於程序排程。當在作業排程中採用該演算法時,每次排程都是從後備作業佇列中選擇乙個或多個最先進入該佇列的作業,將它們調入記憶體,為它們分配資源 建立程序,然後放入就緒佇列。在程序排程中採用fcfs演算法時,則每次排...