程序間的關係

2021-08-21 04:20:49 字數 925 閱讀 4655

1.每個程序都會有乙個程序組,程序組是多個程序的集合,多個程序組組成乙個會話。

檢視程序組的id,其中每個程序組都有乙個組長,程序組的id就是該程序組長的id號。

該程序組是否存在取決於程序組中是否有程序,與程序組長是否結束無關。

2.設定程序組的id,如果pid為0,那麼將呼叫該函式的程序的pid設定為程序組的pgid;

如果pgid為0,那麼將pid設定為程序組的pgid;

當前的環境是bash_shell,所以ps命令和head命令都是shell的子程序,由head和ps的ppid都是1799可以驗證;

當前shell的程序組pid便是shell程序的pid同時shell也是會話的首領,由三者的sid可以驗證;

其中ps和head在同乙個程序組中,ps是程序組的組長;

2.程序組的組長是不可以建立會話的,否者返回乙個錯誤;為了保證該規則,通常是通過程序組中的乙個程序fork()乙個子程序,exit()父程序,此時子程序繼承了父程序所在組的pgid,確保了不是程序組長;

可以將乙個程序從乙個程序組中分離出來,建立乙個會話;自然而然就是會話的首領,該程序是會話的唯一乙個程序,同時也是程序組組長,身兼多職;

程序間的關係

程序間有什麼關係呢?我們都知道使用fork函式建立程序是一次呼叫兩次返回。父程序返回子程序的程序id 非0 子程序返回0值。很顯然,使用fork建立出來的兩個程序是父子關係。那如果兩個程序都是同乙個父程序建立出來的,它們是什麼關係呢?兄弟 關係。那麼,兩個或者多個程序之間,都有什麼關係呢?在介紹程序...

程序間關係

1 程序組 程序組是乙個或多程序的集合。通常,它們同一作業相關聯,可以接收來自同一終端的各種訊號。每個程序組有乙個唯一的程序組id。每個程序都可以有乙個組長程序。組長程序的標識是,其程序組id等於其程序id。組長程序可以建立乙個程序組,建立該組中的程序,然後終止。只要在某個程序組中乙個程序存在,則該...

程序間關係

程序同步 定義 程序之間這種相互合作 協同工作的關係稱為程序的同步。制約關係 直接制約 程序互斥 臨界資源 也稱獨佔資源,是指在一段時間內只允許乙個程序訪問的資源。例如印表機,磁帶機,也可以是程序共享的資料 變數等。定義 當多個程序因為爭奪臨界資源而互斥執行稱為程序的互斥。制約關係 間接制約。臨界資...