書中描述的程序概念:乙個其中執行著乙個或多個執行緒的位址空間和這些執行緒所需要的系統資源。程序可以看作正在執行的程式。
作業系統對cpu進行管理和施行魔法的手段就是程序和執行緒。
程序管理,記憶體管理和檔案管理是作業系統的三大核心功能。
程序=程式+執行。
總結什麼是程序:進展中的程式,乙個動態的過程。
程序:一組有序指令,系統資源的乙個集合,狀態(狀態是程序的狀態模型,程序不一定被cpu執行)(指令是cpu執行的最小單位)。
程序:cpu調動的最小單位是程序。
程式:coding的main.c中存的是**不是程式,程式是二進位制可執行檔案,是在磁碟中存放的,程序是在記憶體中存放的。程式執行起來就放到記憶體中,這時候就生成乙個記憶體例項。一對多的關係,乙個程式可對應多個程序。
例子:如果程式是樂譜的話,彈奏的過程就是程序。
計算機中儲存裝置金字塔:
cache快取記憶體:一級快取二級快取**快取臨時儲存
記憶體:臨時儲存
磁碟:永久儲存
移動裝置:永久儲存
程序的五種狀態模型:新建就緒執行退出阻塞
新建:程序在建立時需要申請乙個空白pcb,向其中填寫控制和管理程序的資訊,完成資源分配。如果建立工作無法完成,比如資源無法滿足,就無法被排程執行,把此時程序所處狀態稱為建立狀態
就緒:cpu沒空閒下來,等到空閒就可以被執行
執行:在cpu中執行的程序。
退出:程序終止的幾種方式,程序結束,或出現錯誤,或被系統終止,進入終止狀態。無法再執行
阻塞:到不了就緒狀態,有可能正在等待i/o事件的發生,或者正在等待資料從0程式設計1。阻塞不能直接到執行狀態。
狀態轉換:就緒只能到執行,執行能到阻塞和就緒(
時間片輪轉法),阻塞只能到就緒。執行到退出:
掛起狀態(暫停狀態):既不阻塞,也不就緒,也不執行。
顯示程序資訊:
ps:pid tty time是執行ps的時間 cmd 命令
ps -f:回去試一下父程序
ps -ef:
sleep 2:在前台執行的程序等兩秒
sleep 20 &:後台執行的程序。不佔據終端的控制權。
結束程序:kill +程序號ctrl+c
pkill殺死一組程序
jobs:任務號
fg喚醒掛起
kill -stop 4667:掛起
bg把掛起放到後台
top:相當於任務管理器退出 q。
問題:
1.怎樣掛起前台程序?
a: ctrl + z(掛起)
ps -e l grep sleep在兩個終端實現
2.怎樣殺死前台程序?
a: ctrl c
3.kill+pid能不能殺死掛起程序。如果不能,應該怎麼做?
a: kill -9 pid
kill -15 pid
程序的七種狀態模型:作業系統精髓
在五種的基礎上加了掛起:
1.就緒掛起
2.阻塞掛起
程序管理的作用:
1.判斷伺服器的健康狀況
2.檢視系統中的所有程序
3.殺死程序
cpu使用率過高時,有可能是不正當病毒程式,不能只簡單的殺死程序,應該找到程序主體,徹底清除它。如果是正常的比如mysql程序,應該進行一下優化。也就是說無論是否是正常的程序都不能直接結束它了事。
一些linux基本命令和概念
一些linux下的基本命令,初學者可以看看,其他高手是不用看了的 首先linux下的file dir具有user group others三種不同的所有者,每種所有者又有rwx三種顯示的許可權,以及s或t兩種特殊許可權 rwx分別為讀 寫 執行,命令ls l file dir可以檢視許可權 命令的一...
linux終端基本命令和vi基本命令
今天學習內容 建立 了乙個基本的虛擬機器執行環境,在虛擬機器下使用cent os 6.0 系統,學習了linux終端命令 視窗的基本操作命令 和對vi 工具的簡單 操作 linux 基本命令 1 顯示當前路徑 pwd 2 切換路徑 cd 路徑名稱 絕對路徑 從根目錄開始,例如 root test3 ...
linux基本命令整理(三) 程序和vim
linux基本命令整理 三 程序和vim 一 程序 1.檢視程序 ps 將某個時間點的程式執行的狀況擷取下來 a 所有的程序 x 後台程序 u 有效的使用者相關的程序 常用組合aux ia 也能觀察系統所有的資料 axjf 連同部分的程式樹狀態 i 今檢視和自己bash相關的程式 top 動態的觀察...