文章目录
一、进程的描述与控制
1.1 进程
- 进程也称之为任务。
- 指一个程序执行的过程:进程是程序在一个数据集合上的运行过程,是系统进行资源分配和调度的一个独立单位;也是可并发执行的程序在一个数据集合上的运行过程。
- 进程是可被跟踪的:可以使用执行指令的序列来进行跟踪。
1.2 进程的特点
- 动态性
- 并发的
- 独立性
- 异步性
1.3 进程的结构
- 程序(依赖于程序)
- 数据
- PCB(Process Control Block)程序控制块
二、进程的状态
2.1 进程的并发执行
例:假设内存中由3个进程A,B 和 C,他们的程序代码已全部装入内存。若A,C两进程需要执行12条指令,B进程需要执行4条指令,且B进程执行到第4条指令处必须等待I/O。如何跟踪他们的执行过程?
略
2.2 进程的2状态
2.2.1 进程可以被理解为两个状态
- Running(执行):
- Not-running (非执行):
2.2.2 状态转换图
- 并非所有进程只要Not-Runing就处于ready状态(就绪:完事具备,就差CPU分配给我),有的需要blocking(阻塞)等待I/O完成。
- Not-running又可分为ready和blocked两种状态。
所以2状态比较难处理这类情况。
2.3 进程的5状态
2.3.1 进程可被分为5个状态
- Running(执行):占用处理机(单处理机环境中,某一时刻仅一个进程占用处理机)
- Ready(就绪):准备执行的状态,准备被调度的状态。
- Blocked(阻塞):等待某事件发生才能执行,如果等待I\O完成等。
- New(新状态):进程已经创建,但未被OS接纳为可执行进程。
- Exit(退出):因停止或取消,被OS从执行状态释放。
2.3.2 状态转换图
- Null -> New:新创建进程首先处于新状态。
- new -> Ready:OS接纳新状态进程为就绪进程。
- Ready -> Running:OS只能从就绪进程中选一个进程执行。
- Running -> Exit:执行状态的进程执行完毕,或被取消,则转换为退出状态。
- Running -> Ready:分时系统中,时间片用完,或者优先级高的进程到来,及那个种植优先级低的进程的执行。
- Running -> Block:执行进程需要等待某事件发生。通常因进程需要的系统调用不能立即完成,而阻塞(非锁死)。
- Block -> Ready:当阻塞进程等待的事件发生,就转换为就绪状态。
- Ready -> Exit:某些系统允许父进程在任何情况下终止其子进程。若一个父进程终止,其子孙进程都必须终止。
- Block -> Exit:同上。
进程在运行过程当中,等待的事件可能不相同,所以我们可能需要不同类型的阻塞队列。