操作系统复习
第三章 进程管理
3.1 进程管理
一、进程的引入
1.顺序程序vs并发程序
- 顺序程序特征:顺序性、封闭性、可再现性
- 并发程序特征:动态、开放、不可再现、不可预测
2.并发概念
- 宏观上并发
- 微观上串行
3.进程概念:是具有独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的独立单位
- 进程=程序+数据+PCB
- 进程的特征:
- 动态性
- 并发行
- 独立性
- 异步性
二、进程的表示和状态转换
1.进程的表示:进程控制块 PCB
- PCB是进程存在的唯一标志,一一对应
2.进程的状态及转换
- 运行、就绪、阻塞
- 创建、退出
- 挂起、激活
3.PCB表
- PCB表的大小:系统中最多可同时存在的进程个数,系统的并发度
- PCB表的组织方式
- 线性表
- 链表队列
- 索引表
三、进程控制
通常通过OS内核中的原语实现。
进程控制原语:
- 创建、撤销原语
- 挂起、激活
- 阻塞、唤醒
1.进程创建原语
- 由谁创建
- 由系统程序统一创建
- 由父进程创建
- 何时创建
- 用户登录、作业调度、提供服务、应用请求
- 创建过程
- 首先从空闲的PCB集合中申请一个新的PCB,同时获得该进程的内部标识;
- 然后向该PCB中填写各种参数;
- 把该进程的状态设置成就绪状态,并将该PCB插入到就绪队列中。
2.进程挂起原语
检查被挂起进程的状态,若处于活动就绪状态,便将其改为静止就绪;对于活动阻塞状态的进程,则将之改为静止阻塞。
3.进程激活原语
先将进程从外存调入内存,检查该进程的现行状态,若是静止就绪,便将之改为活动就绪;若为静止阻塞便将之改为活动阻塞。
4.进程阻塞原语
找到相应进程的PCB;
如果该进程为执行状态,则保护其现场,将其状态改变为阻塞状态,停止运行,并把该PCB插入到相应的阻塞队列中去;
5.进程唤醒原语
在阻塞队列中找到相应进程的PCB,将其从阻塞队列中移出;
置为就绪状态,然后把该PCB插入就绪队列;
等待调度程序调度。
6.进程撤销原语
- 引起进程终止的事件
- 正常结束
- 异常结束
- 外界干预
- 撤销进程的两种策略
- 撤销指定进程
- 撤销该进程以及所有子孙进程
- 终止过程
- 找到相应进程的PCB;
- 若进程正处于执行状态,则立即停止,设置重新调度标志;
- 撤消属于该进程的所有“子孙”进程;
- 释放被撤消进程所有资源;
- 释放进程的PCB;
- 若调度标志为真,则进行重新调度