歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

Linux中的進程概述

Linux中的每個進程由一個task_struct數據結構來描述,在Linux中,任務(task)、和進程(process)是兩個相同的術語,task_struct其實就是通常所說的“進程控制塊”即PCB。task_struct容納了一個進程的所有信息,是系統對進程進行控制的唯一手段,也是最有效的手段。

在Linux2.4中,Linux為每個新創建的進程動態地分配一個task_struct結構。系統所允許的最大進程數是由機器所擁有的物理內存的大小決定的,例如,在IA32的體系結構中,一個512M內存的機器,其最大進程數可以達到32K,這是對舊內核(2.2以前)版本的極大改進。

Linux支持多處理機(SMP),所以系統中允許有多個CPU, Linux作為多處理機操作系統時系統中允許的最大CPU個數為32。很顯然,Linux作為單機操作系統時,系統中只有一個CPU,本書主要討論單處理機的情況。

和其他操作系統類似,Linux也支持兩種進程:普通進程和實時進程。實時進程具有一定程度上的緊迫性,要求對外部事件做出非常快的響應;而普通進程則沒有這種限制。所以,調度程序要區分對待這兩種進程,通常,實時進程要比普通進程優先運行。這兩種進程的區分也反映在task_struct數據結構中了。

總之,包含進程所有信息的task_struct數據結構是比較龐大的,但是該數據結構本身並不復雜,我們將它的所有域按其功能可做如下劃分:

·進程狀態(State)

·進程調度信息(Scheduling Information)

·各種標識符(Identifiers)

·進程通信有關信息(IPC:Inter_Process Communication)

·時間和定時器信息(Times and Timers)

·進程鏈接信息(Links)

·文件系統信息(File System)

·虛擬內存信息(Virtual Memory)

· 頁面管理信息(page)

· 對稱多處理器(SMP)信息

·和處理器相關的環境(上下文)信息(Processor Specific Context)

· 其它信息

下面我們對task_struct結構進行具體描述。

Copyright © Linux教程網 All Rights Reserved