|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
; X: N( W# {3 L. a2 r0 L
LinuxC高级编程——进程
$ _/ s8 W# F4 @$ G) N5 h8 R2 G- Q4 O# G
) G' k; ]/ K1 q2 r# D) P+ i4 m. t
每个进程在内核中都有一个进程控制块( PCB)来维护进程相关的信息, Linux内核的 进程控制块是task_struct结构体。PCB包含的信息:5 |1 R# [: \' l0 q
( c$ G: m Y/ P
- e6 D! o9 B, a. ^% ^
(1)进程id。系统中每个进程有唯一的id,在C语言中用pid_t类型表示,其实就是一个非负整 数。' l/ l# I4 \, C: T, |9 L
- f2 {) E/ R. I; S% S
8 c; U( N0 Q8 _% I2 y(2)进程的状态,有运行、挂起、停止、僵尸等状态。
6 s9 K( x' i+ n9 x3 J. l* \. I n, g' v4 c. D y4 q
; y& O$ t1 `; Z- {: d
(3)进程切换时需要保存和恢复的一些CPU寄存器。 描述虚拟地址空间的信息。
1 c6 l; s6 K S; H2 p3 g( |! F+ i$ p7 O, r; Q2 @# x6 `
8 |/ j$ E0 v5 Q" `0 [$ g7 J( M L7 C% T* f( s+ L* x
0 v* x; k8 p \* a/ b% {7 ?
3 `7 V- a* [# ^* [ e9 x: x4 Y0 @6 M. u# a/ G* Y
4 u* ~" w5 g; T
, s! A# D* I& s7 k
! D( L- K5 F, Q, e; G6 }7 |3 T
0 y% C8 [$ A( c' k
|
|