2 編寫程式,首先使用fork系統呼叫,建立子程序
3 使用fork系統呼叫,建立如下程序樹
4 採用不同方式終止p2程序
首先我們用ps -c vi命令,即可實現只顯示名字為vi的程序。
之後我們利用ps -ef|grep +pid,逐步查詢。直到init程序,在這個結果中,第二列為當前程序的pid,第三列為父程序的pid。
可以看到,通過此方法得到的程序樹為2369->2177->2167->1368->1
可以看到。通過pstree命令得到的程序樹依然為2369->2177->2167->1368->1
#include
#include
intmain()
else
//父程序
}return0;
}
ps-al命令為列出所有的程序,但由於程序數目太多,故只擷取了vi程序及其父程序。
引數意義
f程式的flag,4代表root
s程式的執行狀態
uid使用者id
pid程序id
ppid
當前程序的父程序id
ccpu資源使用的百分比
pri優先順序
ninice值,負值表示高優先順序,正值表示低優先順序
addr
指出程式在記憶體的哪個部分
sz使用記憶體的大小
wchan
程式是否仍在執行,若為-則正在執行
tty啟動程序的終端名
time
程序使用cpu的總時間
cmd命令名
ps aux 命令為顯示所有使用者的程序。由於該命令無法檢視父程序的pid,而且數目更加巨大,故只擷取了vi程序。
引數意義
user
程序擁有者
pid程序id
%cpu
上次更新到現在的cpu時間占用百分比
%mem
程序使用的物理記憶體百分比
vsz占用的虛擬記憶體大小
rss占用的記憶體大小
tty終端的次要裝置號碼
stat
d代表不可中斷 r代表正在執行 s代表靜止狀態 t代表暫停執行 z代表僵死狀態
start
程序開始的時間
time
程序占用cpu的時間
command
命令名top命令經常用於監控linux的系統狀況,在這裡我們可以看到系統執行時間和平均負載,系統現在程序運**況,cpu狀態,記憶體狀態等資訊。
在top執行過程中,我們可以通過其內部命令p,來使所有程序按照cpu佔用率排序。
引數意義
pid程序id
user
程序擁有者
pr優先順序
ninice值,負值表示高優先順序,正值表示低優先順序
virt
程序使用的虛擬記憶體總量
res程序使用的、未被換出的物理記憶體的大小
shr共享記憶體大小
s程序狀態
%cpu
上次更新到現在的cpu時間占用百分比
%mem
程序使用的物理記憶體百分比
time+
程序使用的cpu時間總計,單位1/100秒
commond
命令名
#include
正常執行:
利用kill -9終止p2程序後:
可以看到,在殺掉2125程序後,其子程序2127 2128的父程序變為1356,即p1 p2沒有受到影響,p4 p5的父程序發生了變化。
通過ps -al命令我們可以發現,程序2125的執行狀態已經變成了z,即成為乙個僵死程序。其他的幾個程序也均已進入t 暫停狀態。
這是因為kill -9命令是要求程式立刻停止,所以2125成為了乙個僵死程序。與之相比,kill -15則允許程式釋放相應資源後再停止。
可以看到,在我們exit 2163程序後, 輸出結果同正常執行時一樣,程序p1 p2 p3 p4 p5均為受到任何影響。而通過ps-al命令我們可以發現,所有與程序2163有關的程序,均已進入s 即休眠狀態。因為exit命令是正常退出乙個程序。
段錯誤退出,即發生緩衝區溢位從而導致程序的終止,在這裡,我們採用空指標的方式來實現。可以看到,在我們修改原始碼執行後,程式首先建立了程序14314,其子程序為14315和14316,其中14315的子程序為14317和14318。
在程式接下來的執行過程中,由於發生了段錯誤,程序14315被關閉,而14315原來的子程序14317和14318,他們的父程序也由14315轉變為了1710。通過ps-al命令可以看到,程序14315處於僵死狀態,其他四個程序處於暫停執行狀態
本次實驗所涉及到的源**均已儲存在本人github,如有需求請檢視
第二次實驗
一 問題及 問題提 乙個數如果恰好等於它的因子之和,這個數就稱為 完數 例如6 1 2 3,再如8的因子和是7 即1 2 4 8不是完數。程式設計找出1000以內的所有完數。答案 6 28 496 檔名稱 作 者 周玉傑 完成日期 2017 年 3月 13 日 版 本 號 dev c 對任務及求解方...
第二次實驗
1 如何進行模式切換 哪兩種模式 答 第一次啟動linux系統會進入命令列模式,會要求輸入使用者名稱,預設的管理員帳號名為root,輸入 root 後回車,提示輸入密碼 密碼是在安裝系統時自己設定的 這樣就以管理員身份登陸了系統。第二種就是如果不想用使用命令列模式,而需要進入圖形介面 在命令列模式下...
C 第二次實驗
實驗目的 1.掌握類和物件的使用。2.掌握字段 屬性 方法 引數 過載 重寫與覆蓋 繼承和多型的使用。實驗內容 1.隨機給出乙個0至99 包括0和99 之間的數字,然後讓你猜是什麼數字。你可以隨便猜乙個數字,遊戲會提示太大還是太小,從而縮小結果範圍。經過幾次猜測與提示後,最終推出答案。1 控制台 w...