(P11)進程:複製進程映像、fork系統調用、孤兒進程、殭屍進程、寫時複製

文章目錄

在這裏插入圖片描述

進程包括:代碼段+數據段+堆棧段+PCB
fork之後,子進程複製父進程的代碼段+數據段+堆棧段+PCB,只有PCB中的PID和PPID是不一樣的
父子進程具有獨立的4GB的地址空間(32bit的系統)
在這裏插入圖片描述
int short
unsinged short
只能用%d的方式輸出pid_t
調用一次,返回2次
在這裏插入圖片描述
爲啥父進程fork之後返回>0的值?,不返回=0?
返回的就是子進程的id號碼
因爲PCB中不可能保存子進程的id列表,這樣會使得PCB膨脹,信息太大
在這裏插入圖片描述
父進程加不加sleep,可能出現的情況如下:
父進程結束了,將控制權交給了shell提示符,子進程還沒結束,子進程的輸出信息就接在了shell提示符之後
在這裏插入圖片描述

父進程加上sleep,一定是子進程先運行結束,父進程才結束
在這裏插入圖片描述

14:58

在這裏插入圖片描述