欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
getpid()解析
1、什么是進(jìn)程

當運行任何一個(gè)UNIX命令時(shí),shell至少會(huì )建立一個(gè)進(jìn)程來(lái)運行這個(gè)命令,所以可以把任何在UNIX系統中運行的程序叫做進(jìn)程;但是進(jìn)程并不是程序,進(jìn)程是動(dòng)態(tài)的,而程序是靜態(tài)的,并且多個(gè)進(jìn)程可以并發(fā)的調用同一個(gè)程序。

系統中每一個(gè)進(jìn)程都包含一個(gè)task_struct數據結構,所有指向這些數據結構的指針組成一個(gè)進(jìn)程向量數組,系統缺省的進(jìn)程向量數據大小是512, 表示系統中可同時(shí)容納512個(gè)進(jìn)程。進(jìn)程的task_struct數據結構包括了進(jìn)程的狀態(tài)、調度信息、進(jìn)程標識符等信息。

由于 UNIX系統是一個(gè)多進(jìn)程的操作系統,所以每一個(gè)進(jìn)程都是獨立的,都有自己的權限及任務(wù),所以當某一進(jìn)程失敗時(shí)并不會(huì )導致別的進(jìn)程失敗。系統通過(guò)進(jìn)程標識 符來(lái)區分不同的進(jìn)程,進(jìn)程標識符是一個(gè)非負正數,他在任何時(shí)刻都是唯一的,當某個(gè)進(jìn)程結束時(shí),他的進(jìn)程標識符可以分配給另外一個(gè)新進(jìn)程。系統將標識符 0分配給調度進(jìn)程,標識符1分配給初始化進(jìn)程。

進(jìn)程在運行期間,會(huì )用到很多資源,包括最寶貴的CPU資源,當某一個(gè)進(jìn)程占用CPU資源時(shí),別的進(jìn)程必須等待正在運行的進(jìn)程空閑CPU后才能運行,由于存在很多進(jìn)程在等待,所以?xún)群送ㄟ^(guò)調度算法來(lái)決定將CPU分配給哪個(gè)進(jìn)程。

系統在剛剛啟動(dòng)時(shí),運行于內核方式,這時(shí)候只有一個(gè)初始化進(jìn)程在運行,他首先做系統的初始化,然后執行初始化程序(一般是/sbin/init)。初始化進(jìn)程是系統的第一個(gè)進(jìn)程,以后所有的進(jìn)程都是初始化進(jìn)程的子進(jìn)程。

2. 進(jìn)程標識符管理

UNIX系統使用進(jìn)程標識符來(lái)管理當前系統中的進(jìn)程。為對具有某類(lèi)似特性的進(jìn)程統一管理,系統又引入了進(jìn)程組的概念,以組標識符來(lái)區別進(jìn)程是否同組。進(jìn) 程的組標識符是從父進(jìn)程繼承下來(lái)的,所以,通常進(jìn)程的組標識符就是和它相關(guān)聯(lián)的注冊進(jìn)程的標識符。進(jìn)程的標識符是由系統為之分配的,不能被修改;組標識符 可通過(guò)setpgrp系統調用修改。

相關(guān)系統調用的格式如下:

#include <sys/types.h>
#include <unistd.h>
pid_t getpid(void);
pid_t getpgrp(void);
pid_t getppid(void);
pid_t getpgid(pid_t pid);

說(shuō)明:前三個(gè)系統調用分別返回調用進(jìn)程的進(jìn)程標識符、進(jìn)程組標識符和其父進(jìn)程標識符。它們總能成功地返回。第四個(gè)調用置進(jìn)程組標識符,它將調用進(jìn)程的進(jìn)程組標識符改為調用進(jìn)程的進(jìn)程標識符,使其成為進(jìn)程組首進(jìn)程,并返回這一新的進(jìn)程組標識符。

下面我們來(lái)看一個(gè)實(shí)例:

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>

int main(void)

{

          printf("pid=%d\n",getpid());/* 獲取當前進(jìn)程標志符 */

          printf("pgrp=%d\n",getpgrp());/* 獲取當前進(jìn)程組標識符 */

          printf("ppid=%d\n",getppid());/* 獲取當前進(jìn)程的父進(jìn)程標識符 */

          printf("pgid=%d\n",getpgid(getpid()));

}

$gcc -o getpid getpid.c

$./getpid

pid=6552
pgrp=6552
ppid=6215
pgid=6552
$

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
物聯(lián)網(wǎng)學(xué)習教程—Linux系統編程之進(jìn)程介紹
Linux處理機管理——進(jìn)程詳解及代碼分析
Linux使用fork()方法創(chuàng )建進(jìn)程
fork后子進(jìn)程從哪里開(kāi)始執行
Linux編程基礎——fork()
關(guān)于fork的討論
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久