第三章 程序(作業系統概念第七版)

2021-07-23 06:53:02 字數 1177 閱讀 4008

**一.基本概念**

為什麼要建立子程序:

總結來講,就是時候對於同一程序而言,這些函式、執行緒都是存在於同乙個位址空間下的,而且在執行時,大多只對與其相關的一些資料進行處理,對於無關的就要保護,所以建立子程序。父程序來掌握子程序的啟動、執行和退出從而保護父程序中的無關資料。

程序的五個狀態:

五個狀態:new ready run wait exit(teriminated)

一次只有乙個程序在處理器上執行可以多個處於就緒或等待狀態,同乙個程序處於new或terimainated狀態只要一次,其他狀態可以多次。

pcb:

每個pcb包括指向就緒佇列以及下乙個pcb的指標域。佇列用鍊錶實現,linux中用task_struct作為pcb,實現雙向鍊錶。

作業佇列:進入系統。

就緒佇列:記憶體中就緒的,等待執行的。

裝置佇列:等待i/o 裝置的程序列表。(乙個就緒佇列被cpu選中之後會有四種可能的去向,佇列圖:表示任務在佇列中的轉移以及對資源的利用佇列圖:表示任務在佇列中的轉移以及對資源的利用)詳情見77頁。

長期排程程式(作業排程程式):選擇緩衝池(磁碟)中的程式裝入記憶體,執行頻率低,可以慢點。

短期排程程式(cpu排程程式):選擇準備執行的程式,分配cpu。

i/o-bound process 和cpu-bound process兼而有之才能充分利用cpu和io,讓cpu和io等待佇列平衡。

fork()父程序返回正數,子程序返回0。

exit(),一般只有父程序終止子程序。子程序資源占用超出,任務已經不需要,或者父程序退出,則子程序終止。

三.程序間的通訊

協作程序的有點:資訊共享,提高運算速度模組化,方便

模式:共享記憶體,資訊傳遞

共享記憶體:生產者消費者,有限或者無限緩衝,buffer_size-1 判斷兩種情況需要。這裡預留乙個問題為什麼緩衝的大小是buffer_size-1。

訊息傳遞:在分布式環境中特別有用,分為直接和間接,同步和非同步,自動和顯示緩衝

關於程序的ppt

關於這一章的讀書筆記剛看到一篇很全的

作業系統學習筆記三程序 - 壞得徹底的專欄 - 部落格頻道 - csdn.net

Linux第三章 程序概念

1.調研程序的排程演算法.有利於長作業和cpu繁忙的作業,不利於短作業和i o繁忙作業 輪轉法 round robin 將所有需要cpu處理的就緒的程序按照fcfs原則排隊。之後cpu會劃分時間片,根據時間片來給佇列上的程式執行,當時間片結束。當前程序中斷,讓出cpu讓下一程序使用。高響應比優先排程...

作業系統概念(第七版) 第六章 程序同步

目錄 臨界區問題 peterson演算法 硬體同步 訊號量 semaphore 計數訊號量 和 二進位制訊號量 173p 忙等待 和 自旋鎖 174p 死鎖與飢餓 有限快取問題 生產者消費問題 177p 讀者 寫者問題 管程 協作程序是可以與系統中其它執行的程序之間互相影響的程序。如果乙個程序是協作...

作業系統學習筆記 第三章 程序

1.1 定義 程序的兩個基本元素是程式 和 相關聯的資料集。程序控制塊,由作業系統建立和管理,程序控制塊包含充分的資訊,這樣就可以中斷乙個程序的執行,並且再後來恢復程序執行時,就好像程序從來未中斷過一樣。1.2 程序的狀態 1.2.1 兩狀態程序模型 執行態和未執行態 程序建立的原因 程序終止的原因...