應用開發六:進程控制與進程通信

一、進程控制

1、進程與程序:

2、進程的特性:動態性、併發性、獨立性、異步性

3、進程的狀態:阻塞、就緒、運行

4、進程互斥、臨界資源、臨界區

5、進程調度

6、死鎖

7、進程創建函數fork()

      fork()被調用一次,卻返回兩次:在父進程中,fork返回新創建的子進程的PID;在子進程中,fork返回0。fork()產生的子進程的數據區、堆棧區都是父進程的一個拷貝,而不是共享。

     vfork與fork的區別;

     wait(),指導某個子進程退出,返回值爲退出的子進程。

二、進程通信

1、無名管道(pipe)和有名管道(fifo)

     管道:單向的、先進先出,讀進程從頭部讀出數據,寫進程從尾部寫入數據

     無名管道:父子進程的通信

     有名管道:任意進程間的通信,本質上是文件,先運行讀進程後運行寫進程。

2、消息隊列:不受進程同步的影響

3、共享內存:

4、信號通信(軟件中斷)

     信號的處理:

     (1)忽略該信號、(2)使用用戶定義的處理函數signal(signal, func)、(3)使用系統默認的方式

5、信號量:描述共享資源  或者 用於進程同步

6、socket

發佈了0 篇原創文章 · 獲贊 3 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章