unix linux多程序程式設計3 程序控制

2021-06-07 03:15:22 字數 894 閱讀 3869

1:程序組

1.1與同意作業關聯的乙個或者多個程序的集合稱為程序組,可以接收來自同一終端的各種訊號。可以用getpgrp(),來或者程序的程序組id。

1.2組長程序

每個程序組都有乙個組長程序,其標誌是程序id等於程序組id,組長程序可以建立乙個程序組,建立該組中的程序,然後終止。但組長程序終止,並不意味著程序組的終止。

1.3生存週期

程序組建立到組中最後乙個程序結束。

1.4建立或者加入程序組

#include

setpgid(pid_t pid, pid_t pgid);

乙個程序只能為它自己或者它的子程序設定程序組id,並且在他的子程序呼叫了exec函式之後,它也不能再更改這個子程序的程序組id。

1.5shell中fork之後,通常在父程序中設定子程序的程序組id,而在子程序中也設定自己的程序組id,原因是避免因為父子程序的執行先後不確定,而導致一段時間內子程序的組成員身份不確定。

2:會話

1:乙個或者多個程序組的集合,稱為會話。

2:建立會話

#include

pid_t setsid(void);

3:控制終端

1)乙個會話只有乙個控制終端(controlling terminal)

2)建立與控制連線連線的會話首程序稱為控制程序(conrolling process)

3)乙個會話(有控制終端的會話)包括乙個前台程序組和乙個或者多個後台程序組

4)無論何時鍵入終端中斷鍵(ctrl+c / del),都會將中斷訊號傳送前台程序組的所有程序 

5)無論何時鍵入終端退出鍵(ctrl+\),都會將退出訊號傳送給前台程序組的所有程序 

6)如果終端介面檢測到數據機(或網路)斷開了連線,則將結束通話訊號傳送給控制程序(會話首程序)

unix linux多程序程式設計2 程序控制

主要內容 程序建立 執行程式 程序終止 程序屬性 1 程序識別符號 1.1 每個程序都有乙份非負整數表示的唯一程序id 程序id可以重新,乙個程序結束之後可以,這個id可以被其他程序所使用,當unix普遍都採用了延遲重用演算法。使得某乙個程序結束之後其id不會馬上被新的程序所使用,以防止將新程序誤認...

多程序程式設計

linux下乙個程序在記憶體裡有三部份的資料,就是 資料段 堆疊段 和 段 其實學過組合語言的人一定知道,一般的cpu象i386,都有上述三種段暫存器,以方便作業系統的執行。段 顧名思義,就是存放了程式 的資料,假如機器中有數個程序執行相同的乙個程式,那麼它們就可以使用同一 個 段。堆疊段存放的就是...

多程序程式設計

一。多程序程式設計 1.函式學習 1 建立程序 1.函式名 fork 函式原型 pid t fork void 函式功能 建立乙個子程序 所屬標頭檔案 返回值 成功時 在父程序中返回子程序的pid 在子程序中返回是0 失敗時 子程序返回的 1 引數說明 無引數 2.函式名 vfork 函式原型 pi...