Cha3 进程描述和控制要求掌握
哪些事件会引起进程的创建和终止
7种状态的含义
引起 7种状态相互转换的事件
为何设置多个阻塞队列
挂起的作用是什么
OS使用哪些控制表
什么是进程映像
PCB的内容
为何进行模式切换要求掌握
内核的典型功能
何时进行进程切换
进程切换的过程
OS的三种执行方式,各自的特点多道程序系统的常见要求
交替执行多个进程
给进程分配资源
支持进程间通信
支持用户创建进程
……
程序执行
5000
5001
5002
……
5011
分派程序进程 A
进程 B
进程 C
5000
8000
12000
8000
8001
8002
8003
12000
12001
12002
……
12011
进程 A
的轨迹进程 B
的轨迹进程 C
的轨迹轨迹 trace-为进程执行的指令序列进程的组合轨迹
5000
5001
5002
5003
5004
5005
100
101
102
103
104
105
8000
8001
8002
8003
100
101
102
103
104
105
12000
12001
12002
12003
12004
12005
100
101
102
103
104
105
5006
5007
5008
5009
50010
50011
100
101
102
103
104
105
12006
12007
12008
12009
120010
120011
超时
I/O请求超时 超时 超时两状态进程模型 -状态变化图未运行 运行进入 退出分派暂停
OS的设计元素
–进程的状态,位置
–未运行的进程队列排队图
3 1 2 CPU
进入 分派 退出暂停队列
1
2
3
1
2
3
链表形式的队列导致进程创建的原因
新的批作业
交互用户登录
OS提供服务
由现有进程生成进程生产 process spawning-
OS根据某进程的显式请求创建新进程导致进程终止的原因
无内存
越界
保护错误
算术错误
I/O失败
无效指令
特权指令
数据误用
父进程请求
父进程终止
正常结束
错误和故障
父进程要求
正常结束
超时
系统干涉五状态模型
分配标识号
创建表格
未分配内存新建 就绪阻塞运行 退出允许进入 分派超时释放等待某事件该事件发生
保留相关表项
停留在内存
new- ready-running-blocked -exit
进程的状态转换进程 A
进程 B
进程 C
分派程序运行 就绪 阻塞单一阻塞队列
CPU
允许进入 分派 退出超时就绪队列阻塞队列多阻塞队列
CPU
允许进入 分派 退出超时就绪队列队列 1
队列 2
队列 n
……
等待事件 1
等待事件 2
等待事件 n
事件发生交换 swap与挂起 suspend
如果内存中所有进程都阻塞,
就将其中一个放到磁盘,腾出的空间给另个进程使用新建 就绪阻塞运行 退出允许进入 分派超时释放等待某事件该事件发生挂起 挂起激活两个挂起状态新建就绪阻塞运行 退出允许进入分派超时释放等待某事件该事件发生阻塞 /挂起挂起就绪 /挂起允许进入激活挂起激活该事件发生挂起与挂起有关的状态转换阻塞?阻塞 /挂起 让出内存空间阻塞 /挂起?就绪
/挂起等待的事件发生就绪 /挂起?就绪 CPU空闲,而该进程优先级高就绪?就绪 /挂起 释放内存,或者它优先级低阻塞 /挂起?阻塞 它的优先级高,且内存有空运行?就绪 /挂起 被挂起进程剥夺挂起进程的特点
不能立即执行
与是否阻塞无关
由代理执行
– 进程 /父没进程 /OS
只能由代理显式激活挂起的原因交换 需要释放内存给其他进程使用
OS其他原因 OS挂起后台进程或工具进程交互用户请求 调试程序定时 周期性执行的程序在间隔期挂起父进程请求 检查、修改、协调子进程进程和资源
P1 P2 P3
CPU I/O I/O I/O 内存
OS控制表的通用结构存储器设备文件进程存储表
I/O表文件表进程 1
进程 2
…
进程 n
基本进程表进程 1
进程映像进程 1
进程映像存储表中的信息存储表?分配给进程的内存
分配给进程的辅存
内存或虚存的保护属性
管理虚存所需信息
I/O表?设备状态
传送的源和目标文件表?文件位置、状态、其他属性进程表进程映像中的典型元素用户程序用户数据 程序数据,用户栈系统栈 参数 /过程调用地址 /系统调用地址
PCB OS控制进程所需数据
PCB- process control block进程控制块
process image进程映像进程映像的位置进程映像内存 外存基本进程表
PCB中的内容
进程标识
–进程标识号
–父进程标识号
–用户标识号? 处理器状态信息
–用户可见寄存器
–控制和状态寄存器
PC,条件码,状态信息
–栈指针
PCB中的内容
进程控制信息
–调度和状态信息
–数据结构
–进程间通信
–进程特权
–存储管理
–资源使用
进程状态
优先级
调度信息
事件虚存中的用户进程进程标识号
CPU状态信息进程控制信息用户栈用户私有地址空间共享地址空间进程 1 进程 2
进程标识号
CPU状态信息进程控制信息用户栈用户私有地址空间共享地址空间进程的链表结构运行就绪阻塞
PCB
PCB PCB PCB
PCB PCB PCB PCB
执行模式用户模式 系统模式
CHM
进程管理进程的创建,终止,调度,分派进程切换同步与通信的支持
PCB的管理存储管理 内存分配,交换段页的管理
I/O管理 缓冲管理,设备分配支持功能 中断,计帐,监视进程创建分配标识号分配空间初始化 PCB
设置连接创建其他数据结构进程切换
何时切换进程?
模式切换和进程切换的区别?
OS如何实现进程切换?
进程执行的中断机制机制 原因 使用中断 与当前指令无关 对异步外部事件的反应陷阱 与当前指令相关 处理一个错误或异常条件服务调用 显式请求 调用 OS函数中断- interruption
陷阱- trap
时钟中断
I/O中断
存储器失效模式切换保存当前程序的现场信息修改 PC指向中断处理程序从用户模式进入内核模式中断未必引起进程切换程序状态的变化保存当前程序的现场信息修改 当前程序的 PCB
该 PCB放入另个队列选择其他程序执行修改 该程序的 PCB
更新存储管理数据结构恢复该进程的现场信息
OS的执行
无进程的内核
在用户进程中执行
基于进程的 OS
与普通软件同样运行
需要释放、恢复控制独立内核
OS使用独立的内存区和系统栈
进程概念只针对用户程序
P1 P2 Pn…
内核在用户进程中执行
OS就是用户调用的例程
OS代码和数据位于共享地址空间
在同一个进程中进行模式切换
P1 P2 Pn
…
进程切换函数
OS函数 OS函数 OS函数此时的进程映像进程标识号
CPU状态信息进程控制信息用户栈用户私有地址空间内核栈共享地址空间作为独立进程执行的 OS
OS作为一组系统进程运行
促使使用模块化系统
非关键的函数用独立进程实现
多机环境中有效
P1 P2 Pn…
进程切换函数
OS1 OS2 OSk…
哪些事件会引起进程的创建和终止
7种状态的含义
引起 7种状态相互转换的事件
为何设置多个阻塞队列
挂起的作用是什么
OS使用哪些控制表
什么是进程映像
PCB的内容
为何进行模式切换要求掌握
内核的典型功能
何时进行进程切换
进程切换的过程
OS的三种执行方式,各自的特点多道程序系统的常见要求
交替执行多个进程
给进程分配资源
支持进程间通信
支持用户创建进程
……
程序执行
5000
5001
5002
……
5011
分派程序进程 A
进程 B
进程 C
5000
8000
12000
8000
8001
8002
8003
12000
12001
12002
……
12011
进程 A
的轨迹进程 B
的轨迹进程 C
的轨迹轨迹 trace-为进程执行的指令序列进程的组合轨迹
5000
5001
5002
5003
5004
5005
100
101
102
103
104
105
8000
8001
8002
8003
100
101
102
103
104
105
12000
12001
12002
12003
12004
12005
100
101
102
103
104
105
5006
5007
5008
5009
50010
50011
100
101
102
103
104
105
12006
12007
12008
12009
120010
120011
超时
I/O请求超时 超时 超时两状态进程模型 -状态变化图未运行 运行进入 退出分派暂停
OS的设计元素
–进程的状态,位置
–未运行的进程队列排队图
3 1 2 CPU
进入 分派 退出暂停队列
1
2
3
1
2
3
链表形式的队列导致进程创建的原因
新的批作业
交互用户登录
OS提供服务
由现有进程生成进程生产 process spawning-
OS根据某进程的显式请求创建新进程导致进程终止的原因
无内存
越界
保护错误
算术错误
I/O失败
无效指令
特权指令
数据误用
父进程请求
父进程终止
正常结束
错误和故障
父进程要求
正常结束
超时
系统干涉五状态模型
分配标识号
创建表格
未分配内存新建 就绪阻塞运行 退出允许进入 分派超时释放等待某事件该事件发生
保留相关表项
停留在内存
new- ready-running-blocked -exit
进程的状态转换进程 A
进程 B
进程 C
分派程序运行 就绪 阻塞单一阻塞队列
CPU
允许进入 分派 退出超时就绪队列阻塞队列多阻塞队列
CPU
允许进入 分派 退出超时就绪队列队列 1
队列 2
队列 n
……
等待事件 1
等待事件 2
等待事件 n
事件发生交换 swap与挂起 suspend
如果内存中所有进程都阻塞,
就将其中一个放到磁盘,腾出的空间给另个进程使用新建 就绪阻塞运行 退出允许进入 分派超时释放等待某事件该事件发生挂起 挂起激活两个挂起状态新建就绪阻塞运行 退出允许进入分派超时释放等待某事件该事件发生阻塞 /挂起挂起就绪 /挂起允许进入激活挂起激活该事件发生挂起与挂起有关的状态转换阻塞?阻塞 /挂起 让出内存空间阻塞 /挂起?就绪
/挂起等待的事件发生就绪 /挂起?就绪 CPU空闲,而该进程优先级高就绪?就绪 /挂起 释放内存,或者它优先级低阻塞 /挂起?阻塞 它的优先级高,且内存有空运行?就绪 /挂起 被挂起进程剥夺挂起进程的特点
不能立即执行
与是否阻塞无关
由代理执行
– 进程 /父没进程 /OS
只能由代理显式激活挂起的原因交换 需要释放内存给其他进程使用
OS其他原因 OS挂起后台进程或工具进程交互用户请求 调试程序定时 周期性执行的程序在间隔期挂起父进程请求 检查、修改、协调子进程进程和资源
P1 P2 P3
CPU I/O I/O I/O 内存
OS控制表的通用结构存储器设备文件进程存储表
I/O表文件表进程 1
进程 2
…
进程 n
基本进程表进程 1
进程映像进程 1
进程映像存储表中的信息存储表?分配给进程的内存
分配给进程的辅存
内存或虚存的保护属性
管理虚存所需信息
I/O表?设备状态
传送的源和目标文件表?文件位置、状态、其他属性进程表进程映像中的典型元素用户程序用户数据 程序数据,用户栈系统栈 参数 /过程调用地址 /系统调用地址
PCB OS控制进程所需数据
PCB- process control block进程控制块
process image进程映像进程映像的位置进程映像内存 外存基本进程表
PCB中的内容
进程标识
–进程标识号
–父进程标识号
–用户标识号? 处理器状态信息
–用户可见寄存器
–控制和状态寄存器
PC,条件码,状态信息
–栈指针
PCB中的内容
进程控制信息
–调度和状态信息
–数据结构
–进程间通信
–进程特权
–存储管理
–资源使用
进程状态
优先级
调度信息
事件虚存中的用户进程进程标识号
CPU状态信息进程控制信息用户栈用户私有地址空间共享地址空间进程 1 进程 2
进程标识号
CPU状态信息进程控制信息用户栈用户私有地址空间共享地址空间进程的链表结构运行就绪阻塞
PCB
PCB PCB PCB
PCB PCB PCB PCB
执行模式用户模式 系统模式
CHM
进程管理进程的创建,终止,调度,分派进程切换同步与通信的支持
PCB的管理存储管理 内存分配,交换段页的管理
I/O管理 缓冲管理,设备分配支持功能 中断,计帐,监视进程创建分配标识号分配空间初始化 PCB
设置连接创建其他数据结构进程切换
何时切换进程?
模式切换和进程切换的区别?
OS如何实现进程切换?
进程执行的中断机制机制 原因 使用中断 与当前指令无关 对异步外部事件的反应陷阱 与当前指令相关 处理一个错误或异常条件服务调用 显式请求 调用 OS函数中断- interruption
陷阱- trap
时钟中断
I/O中断
存储器失效模式切换保存当前程序的现场信息修改 PC指向中断处理程序从用户模式进入内核模式中断未必引起进程切换程序状态的变化保存当前程序的现场信息修改 当前程序的 PCB
该 PCB放入另个队列选择其他程序执行修改 该程序的 PCB
更新存储管理数据结构恢复该进程的现场信息
OS的执行
无进程的内核
在用户进程中执行
基于进程的 OS
与普通软件同样运行
需要释放、恢复控制独立内核
OS使用独立的内存区和系统栈
进程概念只针对用户程序
P1 P2 Pn…
内核在用户进程中执行
OS就是用户调用的例程
OS代码和数据位于共享地址空间
在同一个进程中进行模式切换
P1 P2 Pn
…
进程切换函数
OS函数 OS函数 OS函数此时的进程映像进程标识号
CPU状态信息进程控制信息用户栈用户私有地址空间内核栈共享地址空间作为独立进程执行的 OS
OS作为一组系统进程运行
促使使用模块化系统
非关键的函数用独立进程实现
多机环境中有效
P1 P2 Pn…
进程切换函数
OS1 OS2 OSk…