資料介紹
7.1.1 進(jìn)程的基本概念
1.進(jìn)程的定義
進(jìn)程的概念首先是在20世紀(jì)60年代初期由MIT的Multics系統(tǒng)和IBM的TSS/360系統(tǒng)引入的。在40多年的發(fā)展中,人們對(duì)進(jìn)程有過各種各樣的定義?,F(xiàn)列舉較為著名的幾種。
?。?)進(jìn)程是一個(gè)獨(dú)立的可調(diào)度的活動(dòng)(E. Cohen,D. Jofferson)。
?。?)進(jìn)程是一個(gè)抽象實(shí)體,當(dāng)它執(zhí)行某個(gè)任務(wù)時(shí),要分配和釋放各種資源(P. Denning)。
?。?)進(jìn)程是可以并行執(zhí)行的計(jì)算單位。(S. E. Madnick,J. T. Donovan)。
以上進(jìn)程的概念都不相同,但其本質(zhì)是一樣的。它指出了進(jìn)程是一個(gè)程序的一次執(zhí)行的過程,同時(shí)也是資源分配的最小單元。它和程序是有本質(zhì)區(qū)別的,程序是靜態(tài)的,它是一些保存在磁盤上的指令的有序集合,沒有任何執(zhí)行的概念;而進(jìn)程是一個(gè)動(dòng)態(tài)的概念,它是程序執(zhí)行的過程,包括了動(dòng)態(tài)創(chuàng)建、調(diào)度和消亡的整個(gè)過程。它是程序執(zhí)行和資源管理的最小單位。因此,對(duì)系統(tǒng)而言,當(dāng)用戶在系統(tǒng)中鍵入命令執(zhí)行一個(gè)程序的時(shí)候,它將啟動(dòng)一個(gè)進(jìn)程。
2.進(jìn)程控制塊
進(jìn)程是Linux系統(tǒng)的基本調(diào)度和管理資源的單位,那么從系統(tǒng)的角度看如何描述并表示它的變化呢?在這里,是通過進(jìn)程控制塊來描述的。進(jìn)程控制塊包含了進(jìn)程的描述信息、控制信息以及資源信息,它是進(jìn)程的一個(gè)靜態(tài)描述。在Linux中,進(jìn)程控制塊中的每一項(xiàng)都是一個(gè)task_struct結(jié)構(gòu),它是在include/linux/sched.h中定義的。
3.進(jìn)程的標(biāo)識(shí)
在Linux中最主要的進(jìn)程標(biāo)識(shí)有進(jìn)程號(hào)(PID,Process Idenity Number)和它的父進(jìn)程號(hào)(PPID,parent process ID)。其中PID惟一地標(biāo)識(shí)一個(gè)進(jìn)程。PID和PPID都是非零的正整數(shù)。
在Linux中獲得當(dāng)前進(jìn)程的PID和PPID的系統(tǒng)調(diào)用函數(shù)為getpid()和getppid(),通常程序獲得當(dāng)前進(jìn)程的PID和PPID之后,可以將其寫入日志文件以做備份。getpid()和getppid()系統(tǒng)調(diào)用過程如下所示:
/* pid.c */
#include《stdio.h》
#include《unistd.h》
#include 《stdlib.h》
int main()
{
/*獲得當(dāng)前進(jìn)程的進(jìn)程ID和其父進(jìn)程ID*/
printf(“The PID of this process is %d\n”, getpid());
printf(“The PPID of this process is %d\n”, getppid());
}
使用arm-linux-gcc進(jìn)行交叉編譯,再將其下載到目標(biāo)板上運(yùn)行該程序,可以得到如下結(jié)果,該值在不同的系統(tǒng)上會(huì)有所不同:
$ 。/pid
The PID of this process is 78
THe PPID of this process is 36
另外,進(jìn)程標(biāo)識(shí)還有用戶和用戶組標(biāo)識(shí)、進(jìn)程時(shí)間、資源利用情況等,這里就不做一一介紹,感興趣的讀者可以參見W.Richard Stevens編著的《Advanced Programming in the UNIX Environmen》。
4.進(jìn)程運(yùn)行的狀態(tài)
進(jìn)程是程序的執(zhí)行過程,根據(jù)它的生命周期可以劃分成3種狀態(tài)。
n 執(zhí)行態(tài):該進(jìn)程正在運(yùn)行,即進(jìn)程正在占用CPU。
n 就緒態(tài):進(jìn)程已經(jīng)具備執(zhí)行的一切條件,正在等待分配CPU的處理時(shí)間片。
n 等待態(tài):進(jìn)程不能使用CPU,若等待事件發(fā)生(等待的資源分配到)則可將其喚醒。
它們之間轉(zhuǎn)換的關(guān)系如圖7.1所示。
圖7.1 進(jìn)程3種狀態(tài)的轉(zhuǎn)化關(guān)系
1.進(jìn)程的定義
進(jìn)程的概念首先是在20世紀(jì)60年代初期由MIT的Multics系統(tǒng)和IBM的TSS/360系統(tǒng)引入的。在40多年的發(fā)展中,人們對(duì)進(jìn)程有過各種各樣的定義?,F(xiàn)列舉較為著名的幾種。
?。?)進(jìn)程是一個(gè)獨(dú)立的可調(diào)度的活動(dòng)(E. Cohen,D. Jofferson)。
?。?)進(jìn)程是一個(gè)抽象實(shí)體,當(dāng)它執(zhí)行某個(gè)任務(wù)時(shí),要分配和釋放各種資源(P. Denning)。
?。?)進(jìn)程是可以并行執(zhí)行的計(jì)算單位。(S. E. Madnick,J. T. Donovan)。
以上進(jìn)程的概念都不相同,但其本質(zhì)是一樣的。它指出了進(jìn)程是一個(gè)程序的一次執(zhí)行的過程,同時(shí)也是資源分配的最小單元。它和程序是有本質(zhì)區(qū)別的,程序是靜態(tài)的,它是一些保存在磁盤上的指令的有序集合,沒有任何執(zhí)行的概念;而進(jìn)程是一個(gè)動(dòng)態(tài)的概念,它是程序執(zhí)行的過程,包括了動(dòng)態(tài)創(chuàng)建、調(diào)度和消亡的整個(gè)過程。它是程序執(zhí)行和資源管理的最小單位。因此,對(duì)系統(tǒng)而言,當(dāng)用戶在系統(tǒng)中鍵入命令執(zhí)行一個(gè)程序的時(shí)候,它將啟動(dòng)一個(gè)進(jìn)程。
2.進(jìn)程控制塊
進(jìn)程是Linux系統(tǒng)的基本調(diào)度和管理資源的單位,那么從系統(tǒng)的角度看如何描述并表示它的變化呢?在這里,是通過進(jìn)程控制塊來描述的。進(jìn)程控制塊包含了進(jìn)程的描述信息、控制信息以及資源信息,它是進(jìn)程的一個(gè)靜態(tài)描述。在Linux中,進(jìn)程控制塊中的每一項(xiàng)都是一個(gè)task_struct結(jié)構(gòu),它是在include/linux/sched.h中定義的。
3.進(jìn)程的標(biāo)識(shí)
在Linux中最主要的進(jìn)程標(biāo)識(shí)有進(jìn)程號(hào)(PID,Process Idenity Number)和它的父進(jìn)程號(hào)(PPID,parent process ID)。其中PID惟一地標(biāo)識(shí)一個(gè)進(jìn)程。PID和PPID都是非零的正整數(shù)。
在Linux中獲得當(dāng)前進(jìn)程的PID和PPID的系統(tǒng)調(diào)用函數(shù)為getpid()和getppid(),通常程序獲得當(dāng)前進(jìn)程的PID和PPID之后,可以將其寫入日志文件以做備份。getpid()和getppid()系統(tǒng)調(diào)用過程如下所示:
/* pid.c */
#include《stdio.h》
#include《unistd.h》
#include 《stdlib.h》
int main()
{
/*獲得當(dāng)前進(jìn)程的進(jìn)程ID和其父進(jìn)程ID*/
printf(“The PID of this process is %d\n”, getpid());
printf(“The PPID of this process is %d\n”, getppid());
}
使用arm-linux-gcc進(jìn)行交叉編譯,再將其下載到目標(biāo)板上運(yùn)行該程序,可以得到如下結(jié)果,該值在不同的系統(tǒng)上會(huì)有所不同:
$ 。/pid
The PID of this process is 78
THe PPID of this process is 36
另外,進(jìn)程標(biāo)識(shí)還有用戶和用戶組標(biāo)識(shí)、進(jìn)程時(shí)間、資源利用情況等,這里就不做一一介紹,感興趣的讀者可以參見W.Richard Stevens編著的《Advanced Programming in the UNIX Environmen》。
4.進(jìn)程運(yùn)行的狀態(tài)
進(jìn)程是程序的執(zhí)行過程,根據(jù)它的生命周期可以劃分成3種狀態(tài)。
n 執(zhí)行態(tài):該進(jìn)程正在運(yùn)行,即進(jìn)程正在占用CPU。
n 就緒態(tài):進(jìn)程已經(jīng)具備執(zhí)行的一切條件,正在等待分配CPU的處理時(shí)間片。
n 等待態(tài):進(jìn)程不能使用CPU,若等待事件發(fā)生(等待的資源分配到)則可將其喚醒。
它們之間轉(zhuǎn)換的關(guān)系如圖7.1所示。
圖7.1 進(jìn)程3種狀態(tài)的轉(zhuǎn)化關(guān)系
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 嵌入式linux查看服務(wù)進(jìn)程,通過proc查看進(jìn)程資源
- 進(jìn)程控制塊,信號(hào)集是什么資料下載
- Linux教程之進(jìn)程的概念和進(jìn)程管理命令的使用 2次下載
- linux進(jìn)程的深入理解 2次下載
- Linux進(jìn)程調(diào)度的原理解析 1次下載
- 進(jìn)程控制開發(fā)之編寫多進(jìn)程程序?qū)嶒?yàn)解析 0次下載
- 進(jìn)程間通信之Linux下進(jìn)程間通信概述 0次下載
- 進(jìn)程間通信之:管道 0次下載
- Linux守護(hù)進(jìn)程詳解 0次下載
- Linux進(jìn)程控制編程 0次下載
- Linux源碼分析系列的進(jìn)程 32次下載
- LINUX進(jìn)程源代碼分析 44次下載
- 利用Hook技術(shù)實(shí)現(xiàn)進(jìn)程控制
- Linux 2.6進(jìn)程調(diào)度
- Linux進(jìn)程管理 0次下載
- Linux中進(jìn)程、線程和協(xié)程的基礎(chǔ)概念 650次閱讀
- 程序中進(jìn)程和線程的區(qū)別 519次閱讀
- Linux系統(tǒng)開發(fā)中進(jìn)程與線程的基本原理 747次閱讀
- 如何在Linux終止僵尸進(jìn)程 1952次閱讀
- 如何在Linux使用ps/pstree/top命令查看進(jìn)程 1666次閱讀
- 進(jìn)程在Linux上是怎么實(shí)現(xiàn)的 1272次閱讀
- Linux進(jìn)程間通信方法之管道 1820次閱讀
- Linux:測試進(jìn)程占用的虛擬內(nèi)存大小 2762次閱讀
- 虛擬機(jī):linux 進(jìn)程的最大線程個(gè)數(shù) 2624次閱讀
- Linux進(jìn)程調(diào)度時(shí)機(jī)概念分析 2682次閱讀
- Linux進(jìn)程管理:什么是進(jìn)程?進(jìn)程的生命周期 7750次閱讀
- 什么是僵尸進(jìn)程_Linux僵尸進(jìn)程可以被“殺死”嗎? 4589次閱讀
- Linux進(jìn)程的概念及進(jìn)程通信的應(yīng)用場景 6622次閱讀
- Linux進(jìn)程的睡眠和喚醒 4276次閱讀
- 基于Linux進(jìn)程管理的詳細(xì)剖析 3630次閱讀
下載排行
本周
- 1TPS54202H降壓轉(zhuǎn)換器評(píng)估模塊用戶指南
- 1.02MB | 7次下載 | 免費(fèi)
- 2華瑞昇CR215芯片數(shù)字萬用表原理圖
- 0.21 MB | 1次下載 | 3 積分
- 3SMD LED選型目錄 燈珠手冊
- 5.36 MB | 1次下載 | 免費(fèi)
- 4Tiva C系列DK-TM4C129X入門指南
- 1.69MB | 1次下載 | 免費(fèi)
- 5電涌保護(hù)器(SPD)的選擇、安裝以及裝配
- 4.57 MB | 1次下載 | 免費(fèi)
- 6時(shí)源芯微EMC前車燈案例
- 458.59 KB | 1次下載 | 免費(fèi)
- 7bq25890、bq25892雙級(jí)聯(lián)充電器EVM(PWR692)用戶指南
- 2.02MB | 1次下載 | 免費(fèi)
- 8TPS54426降壓轉(zhuǎn)換器評(píng)估模塊用戶指南
- 847.7KB | 次下載 | 免費(fèi)
本月
- 1ADI高性能電源管理解決方案
- 2.43 MB | 156次下載 | 免費(fèi)
- 22024PMIC市場洞察
- 2.23 MB | 63次下載 | 免費(fèi)
- 3開關(guān)電源設(shè)計(jì)原理手冊
- 1.83 MB | 30次下載 | 免費(fèi)
- 4智能門鎖原理圖
- 0.39 MB | 28次下載 | 免費(fèi)
- 5OAH0428最新規(guī)格書(中文)
- 2.52 MB | 15次下載 | 7 積分
- 6ST7789V2單芯片控制器/驅(qū)動(dòng)器英文手冊
- 3.07 MB | 9次下載 | 1 積分
- 7LTH7充電電路和鋰電池升壓5V輸出電路原理圖
- 0.04 MB | 7次下載 | 免費(fèi)
- 8TPS54202H降壓轉(zhuǎn)換器評(píng)估模塊用戶指南
- 1.02MB | 7次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935119次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420061次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233084次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191367次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183334次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73807次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65987次下載 | 10 積分
評(píng)論
查看更多