進程基本屬性


一.簡介

本文主要介紹進程的基本屬性,基本屬性包含:進程ID、父進程ID、進程組ID、會話和控制終端

二.進程屬性

1.進程ID(PID)
每一個進程都有一個非負整型表示的唯一進程ID(PID).好比方我們的身份證一樣,每一個人的身份證號是唯一的.由於進程ID標示符總是唯一的,常將其用來做其它標示符的一部分以保證其唯一性。進程ID(PID)是無法在用戶層改動的.

在Linux系統中,PID為0 的進程一般是調度進程。經常被稱為交換進程,也是第一個系統進程.第一個用戶進程是init進程。其PID為1.

2.父進程ID(PPID)
不論什么進程(除init進程)都是由還有一個進程創建。該進程稱為被創建進程的父進程。被創建的進程稱為子進程。父進程ID無法在用戶層改動.父進程的進程ID即為子進程的父進程ID(PPID).

3.進程組ID(process group ID PGID)
在Linux系統中。每一個用戶都用戶ID(UID)和用戶組ID(GUID).相同,進程也擁有自己的進程ID(PID)和進程組ID(PGID). 進程組是一個或多個進程的集合;他們與同一作業相關聯.每一個進程組都有唯一的進程組ID(PGID),進程組ID(PGID)能夠在用戶層改動.比方。將某個進程加入到還有一個進程組,就是使用setpgid()函數改動其進程組ID.

一個進程僅僅能為自己或子進程設置進程組ID(PGID),假設在它的子進程中調用了exec()等系列函數,就不再能改變該子進程的進程組ID(PGID).

4.會話(session)
會話是一個或多個進程組的集合.系統調用函數getsid()用來獲取某個進程的會話ID(SID).

比如,我們通過 SSH 登錄服務器,就會打開一個控制終端(TTY),這個控制終端就對應一個會話。而我們在終端中運行的命令以及它們的子進程,就構成了一個個的進程組,其中,在后台運行的命令,構成后台進程組;在前台運行的命令,構成前台進程組。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM