當(dāng)前位置:首頁(yè) > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > 進(jìn)程標(biāo)識(shí)符詳解,讓你對(duì)進(jìn)程標(biāo)識(shí)符有深入理解
進(jìn)程標(biāo)識(shí)符詳解,讓你對(duì)進(jìn)程標(biāo)識(shí)符有深入理解
時(shí)間:2018-06-26 來(lái)源:未知
[1]什么是進(jìn)程標(biāo)識(shí)符
系統(tǒng)給每個(gè)進(jìn)程定義了一個(gè)唯一標(biāo)識(shí)該進(jìn)程的非負(fù)整數(shù),稱作進(jìn)程標(biāo)識(shí)符(PID:Process Identifier)。
[2]程序和進(jìn)程的關(guān)系
程序--靜態(tài)的概念
一個(gè)編譯出來(lái)的可執(zhí)行文件,它是一些保存在磁盤上的指令的有序集合,沒(méi)有任何執(zhí)行的概念。比如我們的a.out就是一個(gè)可執(zhí)行程序。
進(jìn)程--動(dòng)態(tài)的概念
a.out要執(zhí)行,這樣的執(zhí)行過(guò)程是一個(gè)動(dòng)態(tài)的,需要把這些可執(zhí)行的程序指令搬運(yùn)到內(nèi)存中,進(jìn)行一些內(nèi)存的資源,這就是進(jìn)程。也可以理解為"正在運(yùn)行的程序"。
同一個(gè)程序文件可以被加載多次成為不同的進(jìn)程,每次產(chǎn)生進(jìn)程,操作系統(tǒng)就會(huì)為其分配一個(gè)唯一的標(biāo)識(shí)符來(lái)標(biāo)識(shí)這個(gè)進(jìn)程。因此,進(jìn)程與進(jìn)程標(biāo)識(shí)符之間是一對(duì)一的關(guān)系,而與程序之間是多對(duì)一的關(guān)系。

[3]怎么查看進(jìn)程標(biāo)識(shí)符
在linux操作系統(tǒng)shell中,我們可以通過(guò)ps命令查看當(dāng)前系統(tǒng)下正在運(yùn)行的進(jìn)程信息。

第一列內(nèi)容是進(jìn)程標(biāo)識(shí)符(PID),這個(gè)標(biāo)識(shí)符是唯一的;最后一列內(nèi)容是進(jìn)程的程序文件名。我們可以從中間找到有多個(gè)進(jìn)程對(duì)應(yīng)同一個(gè)程序文件名的情況,這是因?yàn)橛幸恍┏S玫某绦虮欢啻芜\(yùn)行了,比如bash等。
[4]程序中怎么獲取當(dāng)前進(jìn)程的進(jìn)程ID
#include
pid_t getpid(void); //獲取進(jìn)程ID
應(yīng)用舉例:
#include
#include
int main(void)
{
printf("PID: %u\n", getpid());
return 0;
}
[5]程序的父進(jìn)程ID
在linux操作系統(tǒng)中,有一個(gè)init進(jìn)程,作為整個(gè)操作系統(tǒng)的最開(kāi)始的進(jìn)程,然后這個(gè)進(jìn)程去創(chuàng)建子進(jìn)程,子進(jìn)程再層層創(chuàng)建下去形成當(dāng)前l(fā)inux系統(tǒng)可以使用的多個(gè)進(jìn)程的環(huán)境。也就是說(shuō),除了init進(jìn)程外,所有的進(jìn)程,都有自己的父進(jìn)程。
下圖是通過(guò)pstree -p命令顯示出當(dāng)前系統(tǒng)下所有進(jìn)程的樹(shù)型關(guān)系,通過(guò)這個(gè)圖我們也能清晰的看到每個(gè)進(jìn)程它的父進(jìn)程是誰(shuí)。

[6]程序中怎么獲取當(dāng)前進(jìn)程的父進(jìn)程ID
#include
pid_t getppid(void); //獲取進(jìn)程ID
應(yīng)用舉例:
#include
#include
int main(void)
{
printf("PPID: %u\n", getppid());
return 0;
}
華清遠(yuǎn)見(jiàn)90+項(xiàng)目獲批!教育部2021最新協(xié)同育人項(xiàng)目名
華清遠(yuǎn)見(jiàn)榮獲2021騰訊教育“年度口碑影響力職業(yè)教育品
華清遠(yuǎn)見(jiàn)受邀參加2021年武漢民辦高校信息學(xué)科合作聯(lián)盟
溫暖同行共創(chuàng)佳績(jī) 2019華清遠(yuǎn)見(jiàn)北京總部年會(huì)大曝光
助力高校AI人工智能學(xué)科建設(shè) 華清遠(yuǎn)見(jiàn)人工智能師資班
華清遠(yuǎn)見(jiàn)受邀參加四川省物聯(lián)網(wǎng)年會(huì),榮獲優(yōu)秀企業(yè)專家
