ProcessManagement
并发
程序并发执行的特征
间断性
失去封闭性
一个程序在运行时,其环境会受到其他程序的影响
不可再现性
进程
定义
进程是程序的一次执行
进程是一个程序及其数据在处理机上顺序执行时所发生的活动
进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位
进程控制块
为了使参与并发执行的每个程序(含数据)都能独立地运行,在操作系统中必须为之配置一个专门的数据结构,称为进程控制块(Process Control Block,PCB)。
系统利用PCB来描述进程的基本情况和活动过程,进而控制和管理进程。
进程实体
进程实体(又称进程映像)构成:
程序段
相关数据段
PCB
所谓创建/撤销进程,实质上是创建/撤销进程实体中的PCB。
特征
动态性
进程的实质是进程实体的执行过程
体现
由创建而产生
由调度而执行
由撤销而消亡
并发性
独立性
进程实体是一个独立的单位参与运行和独立接受调度的基本单位
异步性
进程按各自独立的、不可预测的速度向前推进
状态及转换
状态
就绪(Ready)状态
进程准备好运行的状态,即已分配到处CPU以外的所有必要资源
执行状态
阻塞状态
正在执行的进程由于发生某事件(I/O请求、申请缓冲区失败等)暂时无法继续执行时的状态
即进程执行收到阻塞
会引起进程调度
创建状态
进程创建步骤
由进程申请空白PCB
向PCB中填写用于控制和管理进程的信息
为该进程分配运行时所必须的资源
把该进程转入就绪状态并插入就绪队列中
如果在创建过程中不能满足所需的资源,则创建工作无法完成,此时的状态称为创建状态
终止状态
进程终止的步骤
等待操作系统进行善后处理
将其PCB清零,并将PCB空间返还系统
当一个进程到达了自然结束点或出现了无法克服的错误,或被操作系统终结,或被其他进程所终结,将进入终止状态
挂起操作
挂起状态是指进程处于静止状态,不接受调度。引入挂起操作的原因:
终端用户的需要
父进程的需要
负荷调度的需要
操作系统的需要
引入挂起原语(Suspend)和激活原语(Active)后,进程状态的转换:
活动就绪 -> 静止就绪
活动阻塞 -> 静止阻塞
静止就绪 -> 活动就绪
静止阻塞 -> 活动阻塞
进程控制块
进程控制块(Process Control Block,PCB),作为进程实体的一部分,记录了操作系统所需要的,用于描述进程的当前情况以及管理进程运行的全部信息。
作用
作为独立运行基本单位的标志
PCB已成为进程存在于系统中的唯一标志
能实现间断性运行方式
系统可将CPU现场信息保存在被中断进程的PCB中
提供进程管理所需要的信息
根据PCB中记录的程序和数据在内存或外存中的始址指针,找到相应的程序和数据
当需要访问文件系统中的文件或I/O设备时,也都需要借助于PCB中的信息
进程所需要的资源
提供进程调度所需要的信息
进程状态信息
进程的优先级
PCB中的信息
进程标识符
外部标识符
为了方便用户(进程)对进程的访问
通常由字母、数字组成
内部标识符
为了方便系统对进程的使用
通常是一个进程的序号
处理机状态
处理机状态信息也称为处理机的上下文,主要是由处理机的各种寄存器中的内容组成,包括:
通用寄存器
用户可视寄存器,用户程序可访问的,用于暂存信息
指令计数器
存放了要访问的下一条指令的地址
程序状态字PSW
包含状态信息:
条件码
执行方式
终端屏蔽标志
用户栈指针
每个用户进程都有一个或若干个与之相关的系统栈,用于存放过程和系统调用参数及调用地址
当处理机处于执行状态时,正在处理的许多信息都是放在寄存器中
当进程被切换时,处理机状态信息都必须保存在相应的PCB中,以便重新执行
进程调度信息
进程状态,指明进程的当前状态
进程优先级
进程调度所需要的信息
与采用的进程调度算法有关,比如
进程已等待CPU的时间总和
进程已执行的时间总和等
事件
指进程由执行状态转变为阻塞状态所等待发生的事件,即阻塞原因
PCB组织方式
线性
链式
索引
进程创建
原因
用户登录
作业调度
提供服务
应用请求
创建过程
申请空白PCB,为新进程申请获得唯一的数字标识符
为新进程分配其所需要的资源,包括物理和逻辑资源
初始化进程控制块
初始化标识信息
初始化处理机状态信息
初始化处理机控制信息
将新进程插入就绪队列
进程终止
原因
正常结束
异常结束
越界错
保护错
非法指令
特权指令错
运行超时
等待超时
算术运算错
I/O故障
外界干预
操作员或操作系统干预
父进程请求
父进程终止
终止过程
根据被终止进程的标识符,从PCB集合中检索出该进程的PCB,从中读出该进程的状态
若倍终止进程正处于执行状态,应立即终止该进程的执行,并置调度标志为真,用于指示该进程被终止后应重新进行调度
若该进程还有子孙进程,还应将其所有子孙进程也都予以终止
将被终止进程所拥有的全部资源或者归还给父进程,或者归还给系统
将被终止进程(PCB)从所在队列中移出,等待其他程序来搜集信息
阻塞与唤醒
引起阻塞的事件
向系统请求共享资源失败
等待某种操作的完成
新数据尚未到达
等待新任务的到达
进程阻塞过程
进程通过调用阻塞原语block将自己阻塞
立即停止执行,把PCB中的现行状态有执行改为阻塞
将PCB插入阻塞队列
唤醒过程
当被阻塞进程期待事件发生时,有关事件调用唤醒原语wakeup
将等待该事件的进程唤醒
wakeup执行过程
首先把被阻塞进程从等待该事件的阻塞队列中移出
将其PCB中的现行状态由阻塞改为就绪
将该PCB插入就绪队列
进程的挂起与激活
挂起
当系统中出现了引起进程挂起的事件时,OS将利用挂起原语suspend将指定进程或处于阻塞状态的进程挂起
suspend执行过程
首先检查进程的状态,若处于就绪状态,便将其改为静止状态
对于活动阻塞状态的进程,则将之改为进制阻塞
若被挂起的程序正在执行,则转向调度程序重新调度
进程的激活
当系统中发生激活进程的事件时,OS利用激活原语active,将指定进程激活
激活原语先将进程从外存调入内存
检查进程的现行状态
若是静止就绪,便将其改为活动就绪
若为静止阻塞,则将之改为活动阻塞
进程同步
进程同步机制的主要任务,是对多个相关进程在执行次序上进行协调,使并发执行的诸进程之间能按照一定的规则(或时序)共享系统资源,并能很好地相互合作。从而使程序的执行更具可再现性。
进程通信
共享存储器系统
管道
消息传递系统
直接通信方式
OS提供的发送原语
间接通信
共享中间实体
客户机-服务器系统
套接字
RPC
线程
解决程序并发执行的问题。
和进程对比
调度的基本单位
能独立运行的基本单位
切换线程,只需要保存和设置少量寄存器内容
并发性
拥有资源
独立性
系统开销
支持多处理机系统
最后更新于
这有帮助吗?