進程的關係

我們現在可以通過兩種方式進行計算機的登陸,其一是終端登陸,其二是網絡登陸。系統啓動時,會先創建進程爲1的init進程,此進程讀取/etc/ttys,並調用一次fork,產生getty進程,打開終端設備,顯示信息。當鍵入用戶名之後,getty調用login程序,login通過getpwnam取得相應口令文件登陸項,再將用戶的口令加密比較,若符合,則登陸成功。同時login初始化環境。調用組ID,調用shell等。shell的父進程爲init,shell終止時,init會的到信號。網絡登陸採用了僞終端的軟件驅動程序,init調用shell執行etc/rc,shell腳本啓動inted守護進程,其等待TCP/IP連接請求到達主機,到達時,他會產生一次fork,執行telent進程。然後tenlent打開僞終端設備,fork成兩個過程,父進程處理網絡連接通信,子進程執行login程序。
會話是一個或多個進程組的集合,可以有一個控制終端,會話中的會話首進程進程組設爲控制進程,同時還可分爲前臺進程組與後臺進程組,前臺進程可接收控制終端發出的數據與信號,控制進程組接受異常信號。在作業控制中,shell爲控制進程組,前臺進程組輸入,輸出數據且接受終端產生的信號。後臺進程組則收到中斷信號。
對於孤兒進程組,POSIX要求向新孤兒進程組中的處於停止狀態的每一個進程發送停止信號,在發送繼續信號以識別孤兒進程組。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章