|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
9 X$ P0 o( W( {# e kLinuxC高级编程——进程 ! F! f, Y7 Z7 M
% B8 O. V0 u; `4 f+ |' W* A
% q% G6 P% z" u# T" L 每个进程在内核中都有一个进程控制块( PCB)来维护进程相关的信息, Linux内核的 进程控制块是task_struct结构体。PCB包含的信息:
* i4 _! s" `0 g* Y8 k$ K" e. K- |
0 R) h9 p/ _# C! y+ v, S7 G* c4 i! j
) {$ \& @" h# O0 O1 X4 E: D! F8 v5 ~) u(1)进程id。系统中每个进程有唯一的id,在C语言中用pid_t类型表示,其实就是一个非负整 数。 ~4 z* d$ H0 i8 n7 I- Z
" D1 r) O/ x9 f5 x& D+ p/ L0 v) p
, {9 i; l' W+ d' c$ H0 m2 W( m" e(2)进程的状态,有运行、挂起、停止、僵尸等状态。
7 g; u' @2 L! ]5 T' t/ _4 J) U
8 E4 D$ c5 d& ^6 F" k0 `
6 Q) A: g" R7 i) g7 V" ?# C(3)进程切换时需要保存和恢复的一些CPU寄存器。 描述虚拟地址空间的信息。/ i# \9 |( R3 |3 T6 c: `* _& Y
% @, G7 _: r! Y" `. K# y# ?; a6 B( o- k
) b4 P. X; i. ]) T% x
: Z' W/ v% M1 Q8 \( M$ {6 J6 s x: [: E7 a
7 [4 I# e& T# O4 o6 u
/ r& [, v: w+ |/ X# P$ v
+ ]: q/ P$ Q9 K4 W3 m
9 ~- T3 P3 {. j" s% r. F, ] ?; g4 f9 S# F0 L7 I
|
|