進程創建 、進程執行映像和加載、進程運行(進程調度)、進程間的互斥與同步、進程間通信、進程終止
1、進程創建
PCB 的內容——通常從父進程拷貝 PCB,然后修改部分域。
進程的資源 (eg:內存空間)——Windows 是全部新建;Linux 是全部復制或部分復制
不能父子進程共用所有資源 --> eg:堆棧不能共用
(1)內存復制的方法:(程序、數據、堆棧等)
①父進程將自己的內存空間暫借給子進程 --> 子進程運行、父進程等待、知道子進程終止或換程序。
②父子雙方共用內存空間,知道一方進行寫操作,才真正復制,寫多少復制多少 Copy on Write。
(2)Linux 三種創建進程的系統調用:
① ?vfork( ) —— 借用方式
② fork( ) ——寫時復制方式
③ clone( ) —— 兩者之間,父進程指定需共用和復制的資源,內存復制方法也是 Copy on Write
(3)子進程創建后,必須要運行一個程序,如果未為其明確指定,只能運行父進程的程序。
(4)區分進程 —— 返回值:子進程返回0,父進程返回子進程的 ID 號
子進程繼續父進程運行到的那里往下運行。