作業系統9 程序和系統排程 II

2021-07-07 05:13:38 字數 1433 閱讀 1988

程序的建立

作業系統通常是提供庫來建立程序。一般有兩種模式去建立程序。在unix社群程序建立有

2個函式

:fork(2c)

和exec(2c).

在unix大部分程序建立都是通過shell。shell是使用者和作業系統互動的中間點。當乙個命令(不是shell的一部分)輸入,shell會產生

(fork)

乙個程序。

fork(2c

)是unix系統呼叫(在libc庫),它允許複製自己。當呼叫fork時,會產生乙個與父程序一樣的子程序。它從父程序處繼承了整個程序的位址空間,包括程序上下文、程序堆疊、記憶體資訊等。父程序與子程序併發同時執行。可以通過fork返回來判斷是否子程式。如果返回

0,表示執行在子程序,大於

0執行在父程序。

另外乙個系統呼叫是

exec(2c)

,把乙個新程式裝入呼叫程序的記憶體空間,來改變呼叫程序的執行**,從而形成新程序。呼叫程序將被覆蓋,然後從新程式的入口開始執行,這樣就產生了乙個新的程序,但是它的程序識別符號與呼叫程序相同。

exec

沒有建立乙個與呼叫程序併發的新程序,而是用新程序取代了原來的程序。

如圖,s

hell用fork來建立乙個新的程序,然後用exec來引導程式的內容。

windows

與macosx

macosx

與unix/ posix

基本是一致,windows是有一點不同的。在windows

(nt)

你可以用unix的語法或者用方法createprocess。windows術語也與unix不一樣。

任務,就是程序。

程序,資源的容器。

程序的階層

就像檔案系統一樣,作業系統也把程序定義它的規則。當建立乙個程序,這個程序叫子程序,作業系統會把子程序和父程序關聯起來的。子程序通常會獲得父程序資源的子集。

當unix啟動,通常會啟動init程序。init程序的任務就是衍生(spawn)其他服務的程序。例如:

ps命令可以檢視的打牌

pid(process

id's)和

ppid

(parent

processid)

參考:(linux

中的用fork

如何由乙個父程序建立同時多個子程序

),中的用fork%28%29

如何由乙個父程序建立同時多個子程序

.html

(windows

任務管理器是怎麼工作的

),任務管理器是怎麼工作的?

.html

作業系統 程序排程

程序排程程序排程室作業系統必不可少的一種排程。因此在三種型別的os dos windows linux 都無一例外地配置了程序排程。此外它也是對系統效能影響最大的一種處理機排程。程序排程的任務 儲存處理機的現場資訊。在進行排程時首先需要儲存當前程序的處理機的現場資訊,如程式計數器 多個通用暫存器中的...

作業系統程序排程

華中農業大學 學生實驗報告 課程名稱 計算機作業系統 實驗名稱 程序排程 實驗型別 驗證 設計 綜合 創新 實驗目的 實驗目的 1 通過編寫程式實現程序或作業先來先服務 高優先權 按時間片輪轉排程演算法,使 學生進一步掌握程序排程的概念和演算法,加深對處理機分配的理解。2 了解程序 執行緒 的排程機...

作業系統 程序排程

對於單處理器系統,同一時間只有乙個程式可以執行 其他程序都應等待,直到cpu空閒並可排程為止。多道程式的目標是,始終允許某個程序執行以最大化cpu利用率。cpu的程序屬性 週期進行cpu執行和i o等待。程序在這兩個狀態之間不斷交替。程序執行從cpu執行開始,之後i o執行 接著另乙個cpu執行,接...