|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
4 M6 U/ ^4 M; o; s, L2 bLinuxC高级编程——进程
p% }1 S) e# D4 N( v
! c4 F5 \7 }- x3 u2 ?& C
2 B( d9 l [) H3 W9 A% a 每个进程在内核中都有一个进程控制块( PCB)来维护进程相关的信息, Linux内核的 进程控制块是task_struct结构体。PCB包含的信息:: C. q( b" L' H6 d% W3 q: M
& }6 M& ]2 x, b D9 g" W
8 P5 X! _9 Z! Q6 q! R( R(1)进程id。系统中每个进程有唯一的id,在C语言中用pid_t类型表示,其实就是一个非负整 数。
: \ V' |' r! U7 G7 |, h
2 {# o4 r! t' S4 K* b$ |8 B; p
' ?1 D1 c& e6 }(2)进程的状态,有运行、挂起、停止、僵尸等状态。5 a- B- |" d0 m/ s; n/ A+ l
/ Q# i a/ j) R; j% g( }5 U
4 @# W* W) G# n1 X(3)进程切换时需要保存和恢复的一些CPU寄存器。 描述虚拟地址空间的信息。
' S; O/ G# V0 C' B* n1 ^9 T
8 \% S+ a# E# V5 r% R+ H/ T- X6 K# x
5 D. N5 G- }& h, r1 U3 A
7 f/ U- U( y, [: s, D
6 C, e/ u9 w+ d: ~3 j5 G, x
- x' ^. E9 }) a- M5 F% y. S
7 V+ h( j2 ^: z: W$ a' K) ] D8 Q
3 \6 @( o( Z0 D: g. I: {: ^3 h
( B- A# C( W7 j# \
3 }8 ]+ ~+ q) a1 c# x; B |
|