目錄
1. 馮諾依曼體系結構
1.1 五大硬體單元
1.2 作業系統
2. 程序概念
2.1 作業系統如何管理程序
2.2 作業系統如何描述程序
2.3 檢視程序:
2.4 建立程序(建立pcb):
2.5 程序狀態
2.6 程序優先順序 pri
3. 環境變數
4. 程式位址空間
5. 程序排程
現代計算機的硬體體系結構
輸入裝置:鍵盤
輸出裝置:顯示器
儲存器:記憶體
運算器控制器
作業系統=核心+應用
硬體驅動將硬體資訊收集起來,交給作業系統。作業系統對這些資訊進行管理。
系統呼叫介面:作業系統向上層使用者提供的操作介面,提供良好的執行環境。
先描述後組織
作業系統去雙向鍊錶中通過pid找pcb。
程序按功能分類
互動式程序:與使用者進行互動的程序,優先順序較高
批處理程序:在後台一直執行的程序,優先順序較低
乙個程序執行時,就會建立乙個目錄,儲存程序執行資訊,當程序退出時,其目錄就會被刪除掉。
ps:檢視程序資訊
aux
top:檢視伺服器負載
getpid():獲取程序pid
getppid():獲取父程序pid
#include#includeint main()
return 0;
}
fork():作業系統提供的建立程序的介面。
總結上述內容:父子程序**共享,資料獨有
#include #include #include int main()else if(pid>0)else
printf("pid:%d\n",getpid());
while (1)
return 0;
}
阻塞態、執行態、就緒態
執行 r -> running (上述的執行+就緒)
可中斷睡眠 s -> sleeping (隨時可被喚醒)
不可中斷睡眠 d -> disk sleep (特殊手段才可被喚醒,操作完畢後自動喚醒)
停止 t -> stopped (被暫停的程序可 以通過傳送 sigcont 訊號讓程序繼續執行 )
殭屍 z -> zombie
追蹤狀態 t -> tracing stop
死亡 x -> dead
解決:殺死父程序(退出原因的儲存已經毫無意義)
預防:程序等待
乙個程序無法殺死,該程序可能就是殭屍程序
孤兒程序:
守護程序/精靈程序:特殊的孤兒程序 -> 在孤兒程序的基礎上進行一定的操作。
檢視: ps -l
互動式程序優先順序較高,批處理程序優先順序較低
設定:
nice(ni)
作業系統中用來設定作業系統執行環境引數的變數,具有全域性性
指令
//環境變數的全域性特性演示
#include #include #include int main()
常見環境變數:path home shell
記憶體位址
作業系統切換排程程序(pcb)執行在cpu上,若存在很多程序,則依次執行,但是程序具有優先順序。
Linux 程序概念
任何計算機系統都包含乙個基本的程式集合,成為作業系統 os 它包括 作業系統是管管理的軟體 使用者操作 使用者操作介面 shell,lib,指令等 作業系統 驅動程式 硬體 作業系統管理硬體 系統呼叫 在開發者角度,作業系統會對外表現為乙個整體,但是會暴露自己的一部分介面供上層開發者使用,這部分由作...
Linux 程序概念
程序排程演算法 在早期作業系統的排程方式大多數是非剝奪的,這是由於早期的應用一般是科學計算或事務處理,不太把人機互動的響應時間指標放在首要位置。在這種情況下,正在執行的程序可一直占用cpu直到程序阻塞或終止。這種方式的排程演算法可以很簡單,且比較適用對於響應時間不關心或者關心甚少的批處理科學計算或事...
Linux 程序概念
調研程序的排程演算法.短程序優先演算法,對預計執行時間短的程序優先分派處理機。通常後來的短程序不搶先正在執行的程序。演算法優點 相比fcfs 演算法,該演算法可改善平均周轉時間和平均帶權周轉時間,縮短程序的等待時間,提高系統的吞吐量。演算法缺點 對長程序非常不利,可能長時間得不到執行,且未能依據程序...