1. 程式人生 > >作業系統第2次實驗報告:建立程序

作業系統第2次實驗報告:建立程序

  • 姓名:倪曉東
  • 學號:201821121020
  • 班級:計算1811

1. 編寫程式

在伺服器上用VIM編輯器編寫一個程式:一個程序建立(fork)兩個子程序。給出原始碼:

 

 

 原始碼執行結果:

 

 

 

2. 列印程序樹

列印1所建立的程序樹結構,給出帶有自己名字的截圖。

3. 解讀程序相關資訊

(1) ps -ef 執行:

 

 

 

 

 欄位分析:

UID:使用者ID名:nixiaodong

PID:該程序ID:18997

PPID:該程序的父程序ID,由程序18997建立的兩個程序18998,18999的父程序均為18997

C:CPU佔用率,當前為0

STIME:程序開始時間,改程序為19.05

TTY:使用者的終端機位置

TIME:程序所佔用CPU的時間,為0

CMD:可執行檔名

(2) ps -aux 執行:

 

 

 

 

 

 

欄位分析:

USER:使用者ID

PID:該程序ID

%CPU:該程序所佔CPU百分比

%MEM:該程序所佔記憶體百分比

VSZ:該程序所用虛擬記憶體量

RSS:該程序所用固定記憶體量

TTY:使用者終端機位置

STAT:程序狀態

S為休眠

S+有子程序的程序

START:程序開始時間

TIME:程序佔用CPU的時間

COMMAND:當前指令內容

 4. 通過該實驗產生新的疑問及解答

 

 

ps -ef 指令和ps -aux指令有什麼區別?

答:ps -ef 指令和ps -aux指令但是用來顯示當前執行程序,沒有什麼差別,ps -aux 是用BSD格式來顯示而ps -ef是用標準格式顯示,兩者輸出略有不同。

5. 加分項

結合例項(例項可以是寫一個輸出Hello World的簡單程式)分析Linux可執行檔案構成。

hello world例項:

 

 使用%!xxd將將當前文字轉換為16進位制格式:

 

使用命令將文字轉換為16進位制字元陣列,前面8位16進位制數代表行,每行後面8組數代表16位元組,所以每組的兩個16進位制數代表一個位元組,最後的0a實際上是0x0a,表示換行,我們可以在16進位制下進行編輯:

如:696e代表字元in,將第一行的696e改為4141(即字元AA的ASCII碼)

 

 然後使用%!xxd -r 將當前檔案轉換回文字格式

 

&n