|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
) a8 _9 W) r2 F! |: C( o6 J
LinuxC高级编程——进程
! [! J5 S# I3 J4 v2 u+ w" K1 n `" h: r; |
4 M" C. p9 u# Q3 g6 p' o 每个进程在内核中都有一个进程控制块( PCB)来维护进程相关的信息, Linux内核的 进程控制块是task_struct结构体。PCB包含的信息:
$ O! B, A# p4 e2 ]: V3 p- O
+ K) d* H" U. E$ A2 L* }$ F' f! o3 I/ p) y& L. [; S* l1 L9 Q. \
(1)进程id。系统中每个进程有唯一的id,在C语言中用pid_t类型表示,其实就是一个非负整 数。
2 c$ j9 l2 u% _) [7 q
. @+ o$ `* g9 G
0 \+ |1 k, q9 n& E9 W: W: C0 M& E1 R(2)进程的状态,有运行、挂起、停止、僵尸等状态。
1 Y! K5 U& |$ y6 [9 U: h0 R- n% k7 V( \1 c9 O; U5 W
# M5 G# B, I7 c(3)进程切换时需要保存和恢复的一些CPU寄存器。 描述虚拟地址空间的信息。
* g% ^5 @0 x: l/ C- v* _( G) c X4 D5 s8 d( }4 Y7 k' M' q P n
6 G3 a# Z; g+ R& l. S, \: Q3 i, z% Q! T+ [# r. X" ]- g/ l
% `5 I" {1 _: m* C5 Y' @$ s
7 ]2 c) g. W5 L8 h* O u- o4 P( x. N! l6 L9 Y# [4 d8 t( t
6 U8 s: H. Y* N' k$ Z* e2 k: K6 t. I& q% F
7 h. s9 }; ~9 c* c4 A/ v8 ?
% ? T, Q$ l* `; Z+ H+ Q- w5 } |
|