进程挂起的原因
原因 | 解释 |
---|---|
1.交换 | 操作西永需释放足够内存空间,调入并执行处于就绪态的进程 |
2.其他OS原因 | 操作系统可能挂起后台进程或工具程序进程或被怀疑导致问题的进程 |
3.交互式用户请求 | 用户可能希望挂起一个程序的执行,目的是为了调试或与资源的使用进行连接 |
4.定时 | 一个进程可能会周期执行(记账或监控进程)且可能在等待下一个时间间隔被挂起 |
5.父进程请求 | 父进程可能希望挂起后代进程的执行,以检查或修改挂起的进程或协调不同后代进程间的行为 |
操作系统的控制结构
操作系统维护着4种不同类型的表
- 内存表
- I/O表
- 文件表
- 进程表
4种表以某种方式连接起来或交叉引用,这些表自身必须可被操作系统访问到,因为它们受制于内存管理
进程的控制结构
- 进程映像:程序、数据、栈、属性的集合 称为进程映像。
- 属性的集合 被称为 进程控制块
进程映像中的典型元素
元素 | 描述 |
---|---|
1.用户数据 | 用户空间中可修改部分,包括用户栈、私有用户地址空间、程序数据和可修改程序 |
2.用户程序 | 将被执行的程序 |
3.系统栈 | 每个进程有一个或多个系统栈,栈用于保存参数,过程调用地址和系统调用地址(内核栈、共享地址空间) |
4.进程控制块 | 操作系统控制进程所需要的数据(进程ID、处理器状态信息、进程控制信息) |
- 进程属性:复杂程序系统需要进程的大量信息,该信息保留在进程控制块中。
- 进程控制块分三类:进程标示信息、进程状态信息、进程控制信息
进程标示信息
标示符:存储在进程控制块中的数字标示符、进程ID、父进程ID及用户ID
进程状态信息
1.用户可见寄存器
2.控制和状态寄存器
3.栈指针
4.调度和状态信息:进程状态、优先级、进程等待时的事件标识
5.数据结构
6.进程间通信
7.进程特权
8.存储管理
9.资源的所有权和使用情况
进程控制信息
操作系统控制和协调各进程所需的额外信息
操作系统内核典型功能
功能 | 描述 |
---|---|
1.进程管理 | 进程创建和终止,进程调度和分派等 |
2.内存管理 | 进程分配地址空间、交换和分段的管理 |
3.I/O管理 | 缓冲区管理,给进程分配I/O通道和设备 |
4.支持功能 | 中断处理,如记账和监视 |
新进程的创建步骤
- 给进程分配一个唯一的进程标示符
- 给进程分配空间,包括进程映像中的所有元素
- 初始化控制块
- 设置正确的连接
- 创建或扩充其他数据结构
进程执行的中断机制
机制 | 描述 |
---|---|
1.中断 | 对异步外部事件的反应(时间中断、I/O中断、内存失效等) |
2.陷阱 | 处理一个错误或异常条件 |
3.系统调用 | 调用操作系统函数 |
进程的两个特点
- 资源所有权:
进程中包括一个存放进程映像的虚拟地址空间,该进程映像是程序数据、栈和进程控制块中定义的属性的集合。该进程总拥有对资源的控制或所有权。
资源包括内存、I/O通道、I/O设备的文件等,操作系统只提供保护功能,以防止进程间不必要的与组员相关的冲突。 - 调度/执行:
一个进程可沿着一个或多个程序的执行路径执行,其执行过程可能与其他进程执行过程交替执行。因此,进程具有一个执行状态(运行、就绪等)和一个被分配的优先级,它是一个可被操作系统调度和分派的实体。