进程调度实验_Linux应用编程之进程的PID与PPID
ID:嵌入式情報(bào)局
作者:情報(bào)小哥
1進(jìn)程PID
? ? 首先介紹PID的相關(guān)知識,為后面介紹fork函數(shù)進(jìn)行鋪墊。
01
PID與PPID?
? ? PID不是控制理論的PID算法,而是Prcess ID的簡寫。進(jìn)程PID是當(dāng)操作系統(tǒng)運(yùn)行進(jìn)程時(shí)系統(tǒng)自動為其分配的唯一標(biāo)識符,用于唯一標(biāo)識此進(jìn)程的一個(gè)整數(shù),而PPID就是進(jìn)程的父進(jìn)程的PID。
? ? 既然是唯一標(biāo)識,PID也就相當(dāng)于我們的身份證,一旦被發(fā)放即終生標(biāo)識,這也便于操作系統(tǒng)更好的管理和標(biāo)識進(jìn)程,當(dāng)然一旦進(jìn)程生命周期結(jié)束,此時(shí)的PID便會被釋放,可供以后的進(jìn)程再次使用。
02
特殊PID進(jìn)程
? ? 我們可以通過命令行輸入 : ps -aux 來查看當(dāng)前系統(tǒng)所運(yùn)行的進(jìn)程。
PID= 0的進(jìn)程 :?
通常也叫調(diào)度進(jìn)程、idle進(jìn)程,負(fù)責(zé)進(jìn)程之間的調(diào)度和切換。該進(jìn)程是內(nèi)核的一部分,所有進(jìn)程的根進(jìn)程,一般我們是看不到該進(jìn)程的。
PID = 1的進(jìn)程 :
通常是init進(jìn)程,Linux幾乎所有的進(jìn)程都是由父進(jìn)程產(chǎn)生的,PID=1的進(jìn)程為父原始進(jìn)程,比如該進(jìn)程會讀取文件系統(tǒng)來完成操作系統(tǒng)的啟動。
PID = 2的進(jìn)程 :
也叫kthreadd進(jìn)程,它的任務(wù)就是管理和調(diào)度其他內(nèi)核線程。
2兩個(gè)常用API函數(shù)
01
兩個(gè)常用API??
? ? 同樣我們使用命令行 : man 2 getpid ,從而可以找到該API的詳解。
其中g(shù)etpid表示獲得當(dāng)前進(jìn)程PID,而getppid是獲得當(dāng)前進(jìn)程的父進(jìn)程PID,并且兩個(gè)函數(shù)均能成功返回。
02
實(shí)驗(yàn)說明???
實(shí)驗(yàn)代碼 :?
實(shí)驗(yàn)結(jié)果:
? ? 同樣我們可以通過使用命令行ps -aux看到子進(jìn)程PID = 45347 = ./Test和父進(jìn)程PID = 45286 = bash。
3最后
? ? 這里小哥就介紹了PID、PPID以及如何獲得進(jìn)程PID的API函數(shù),今天就分享到這里,下期跟大家一起學(xué)學(xué) folk!
我是情報(bào)小哥,一個(gè)90后嵌入式自學(xué)玩家!
長按前往圖中包含的公眾號關(guān)注
總結(jié)
以上是生活随笔為你收集整理的进程调度实验_Linux应用编程之进程的PID与PPID的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Homework2-project re
- 下一篇: 搜索文献_如何有效地搜索及阅读文献