資料介紹
7.1.1 進程的基本概念
1.進程的定義
進程的概念首先是在20世紀60年代初期由MIT的Multics系統和IBM的TSS/360系統引入的。在40多年的發展中,人們對進程有過各種各樣的定義。現列舉較為著名的幾種。
?。?)進程是一個獨立的可調度的活動(E. Cohen,D. Jofferson)。
?。?)進程是一個抽象實體,當它執行某個任務時,要分配和釋放各種資源(P. Denning)。
(3)進程是可以并行執行的計算單位。(S. E. Madnick,J. T. Donovan)。
以上進程的概念都不相同,但其本質是一樣的。它指出了進程是一個程序的一次執行的過程,同時也是資源分配的最小單元。它和程序是有本質區別的,程序是靜態的,它是一些保存在磁盤上的指令的有序集合,沒有任何執行的概念;而進程是一個動態的概念,它是程序執行的過程,包括了動態創建、調度和消亡的整個過程。它是程序執行和資源管理的最小單位。因此,對系統而言,當用戶在系統中鍵入命令執行一個程序的時候,它將啟動一個進程。
2.進程控制塊
進程是Linux系統的基本調度和管理資源的單位,那么從系統的角度看如何描述并表示它的變化呢?在這里,是通過進程控制塊來描述的。進程控制塊包含了進程的描述信息、控制信息以及資源信息,它是進程的一個靜態描述。在Linux中,進程控制塊中的每一項都是一個task_struct結構,它是在include/linux/sched.h中定義的。
3.進程的標識
在Linux中最主要的進程標識有進程號(PID,Process Idenity Number)和它的父進程號(PPID,parent process ID)。其中PID惟一地標識一個進程。PID和PPID都是非零的正整數。
在Linux中獲得當前進程的PID和PPID的系統調用函數為getpid()和getppid(),通常程序獲得當前進程的PID和PPID之后,可以將其寫入日志文件以做備份。getpid()和getppid()系統調用過程如下所示:
/* pid.c */
#include《stdio.h》
#include《unistd.h》
#include 《stdlib.h》
int main()
{
/*獲得當前進程的進程ID和其父進程ID*/
printf(“The PID of this process is %d\n”, getpid());
printf(“The PPID of this process is %d\n”, getppid());
}
使用arm-linux-gcc進行交叉編譯,再將其下載到目標板上運行該程序,可以得到如下結果,該值在不同的系統上會有所不同:
$ 。/pid
The PID of this process is 78
THe PPID of this process is 36
另外,進程標識還有用戶和用戶組標識、進程時間、資源利用情況等,這里就不做一一介紹,感興趣的讀者可以參見W.Richard Stevens編著的《Advanced Programming in the UNIX Environmen》。
4.進程運行的狀態
進程是程序的執行過程,根據它的生命周期可以劃分成3種狀態。
n 執行態:該進程正在運行,即進程正在占用CPU。
n 就緒態:進程已經具備執行的一切條件,正在等待分配CPU的處理時間片。
n 等待態:進程不能使用CPU,若等待事件發生(等待的資源分配到)則可將其喚醒。
它們之間轉換的關系如圖7.1所示。
圖7.1 進程3種狀態的轉化關系
1.進程的定義
進程的概念首先是在20世紀60年代初期由MIT的Multics系統和IBM的TSS/360系統引入的。在40多年的發展中,人們對進程有過各種各樣的定義。現列舉較為著名的幾種。
?。?)進程是一個獨立的可調度的活動(E. Cohen,D. Jofferson)。
?。?)進程是一個抽象實體,當它執行某個任務時,要分配和釋放各種資源(P. Denning)。
(3)進程是可以并行執行的計算單位。(S. E. Madnick,J. T. Donovan)。
以上進程的概念都不相同,但其本質是一樣的。它指出了進程是一個程序的一次執行的過程,同時也是資源分配的最小單元。它和程序是有本質區別的,程序是靜態的,它是一些保存在磁盤上的指令的有序集合,沒有任何執行的概念;而進程是一個動態的概念,它是程序執行的過程,包括了動態創建、調度和消亡的整個過程。它是程序執行和資源管理的最小單位。因此,對系統而言,當用戶在系統中鍵入命令執行一個程序的時候,它將啟動一個進程。
2.進程控制塊
進程是Linux系統的基本調度和管理資源的單位,那么從系統的角度看如何描述并表示它的變化呢?在這里,是通過進程控制塊來描述的。進程控制塊包含了進程的描述信息、控制信息以及資源信息,它是進程的一個靜態描述。在Linux中,進程控制塊中的每一項都是一個task_struct結構,它是在include/linux/sched.h中定義的。
3.進程的標識
在Linux中最主要的進程標識有進程號(PID,Process Idenity Number)和它的父進程號(PPID,parent process ID)。其中PID惟一地標識一個進程。PID和PPID都是非零的正整數。
在Linux中獲得當前進程的PID和PPID的系統調用函數為getpid()和getppid(),通常程序獲得當前進程的PID和PPID之后,可以將其寫入日志文件以做備份。getpid()和getppid()系統調用過程如下所示:
/* pid.c */
#include《stdio.h》
#include《unistd.h》
#include 《stdlib.h》
int main()
{
/*獲得當前進程的進程ID和其父進程ID*/
printf(“The PID of this process is %d\n”, getpid());
printf(“The PPID of this process is %d\n”, getppid());
}
使用arm-linux-gcc進行交叉編譯,再將其下載到目標板上運行該程序,可以得到如下結果,該值在不同的系統上會有所不同:
$ 。/pid
The PID of this process is 78
THe PPID of this process is 36
另外,進程標識還有用戶和用戶組標識、進程時間、資源利用情況等,這里就不做一一介紹,感興趣的讀者可以參見W.Richard Stevens編著的《Advanced Programming in the UNIX Environmen》。
4.進程運行的狀態
進程是程序的執行過程,根據它的生命周期可以劃分成3種狀態。
n 執行態:該進程正在運行,即進程正在占用CPU。
n 就緒態:進程已經具備執行的一切條件,正在等待分配CPU的處理時間片。
n 等待態:進程不能使用CPU,若等待事件發生(等待的資源分配到)則可將其喚醒。
它們之間轉換的關系如圖7.1所示。
圖7.1 進程3種狀態的轉化關系
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 嵌入式linux查看服務進程,通過proc查看進程資源
- 進程控制塊,信號集是什么資料下載
- Linux教程之進程的概念和進程管理命令的使用 2次下載
- linux進程的深入理解 2次下載
- Linux進程調度的原理解析 1次下載
- 進程控制開發之編寫多進程程序實驗解析 0次下載
- 進程間通信之Linux下進程間通信概述 0次下載
- 進程間通信之:管道 0次下載
- Linux守護進程詳解 0次下載
- Linux進程控制編程 0次下載
- Linux源碼分析系列的進程 32次下載
- LINUX進程源代碼分析 44次下載
- 利用Hook技術實現進程控制
- Linux 2.6進程調度
- Linux進程管理 0次下載
- Linux中進程、線程和協程的基礎概念 650次閱讀
- 程序中進程和線程的區別 519次閱讀
- Linux系統開發中進程與線程的基本原理 747次閱讀
- 如何在Linux終止僵尸進程 1952次閱讀
- 如何在Linux使用ps/pstree/top命令查看進程 1666次閱讀
- 進程在Linux上是怎么實現的 1272次閱讀
- Linux進程間通信方法之管道 1820次閱讀
- Linux:測試進程占用的虛擬內存大小 2762次閱讀
- 虛擬機:linux 進程的最大線程個數 2624次閱讀
- Linux進程調度時機概念分析 2682次閱讀
- Linux進程管理:什么是進程?進程的生命周期 7750次閱讀
- 什么是僵尸進程_Linux僵尸進程可以被“殺死”嗎? 4589次閱讀
- Linux進程的概念及進程通信的應用場景 6622次閱讀
- Linux進程的睡眠和喚醒 4276次閱讀
- 基于Linux進程管理的詳細剖析 3630次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關電源基礎知識
- 5.73 MB | 6次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設計
- 0.60 MB | 3次下載 | 免費
- 5基于FPGA的光纖通信系統的設計與實現
- 0.61 MB | 2次下載 | 免費
- 6基于FPGA的C8051F單片機開發板設計
- 0.70 MB | 2次下載 | 免費
- 751單片機窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費
- 8基于51單片機的RGB調色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21548次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537796次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191185次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183278次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多