进程
进程是操作系统资源分配的单位,每个进程都有独立的地址空间(代码段、数据段),独立的堆栈,独 立的进程控制块。以下为一个广义的进程生命周期中的状态转换图:
进程由其父进程利用
FORK系统调用创建,则该进程进入RUNNABLE状态;时间中断到来,
RUNNABLE状态的进程被切换到,则该进程进入RUNNING状态;时间中断到来,
RUNNING状态的进程处理时间片耗尽,则该进程进入RUNNABLE状态;RUNNING状态的进程利用SLEEP系统调用主动阻塞;或利用系统调用等待硬件I/O,则该进程进入BLOCKED状态;时间中断到来,
BLOCKED状态的进程的SLEEP时间片耗尽,或外部硬件中断表明I/O完成,则该进 程进入RUNNABLE状态;RUNNING 状态的进程运行结束,利用
EXIT系统调用主动销毁,则该进程进入DEAD状态。
+------------+
SLEEP TIME EXPIRED | | SLEEP SYSCALL
I/O FINISHED +---+ BLOCKED +<--+ I/O REQUEST SYSCALL
| | | |
| +------------+ |
V |
+------------+ FORK +-----+------+ +------+-----+ EXIT +------------+
| | SYSCALL | +<-----+ | SYSCALL | |
| NEW +-------->+ RUNNABLE | | RUNNING +-------->+ DEAD |
| | | +----->+ | | |
+------------+ +------------+ +------------+ +------------+Last updated