3、进程的描述与控制
...大约 7 分钟
第二章进程的描述与控制
程序并发执行
程序并发执行时的特征
- 间断性
- 失去封闭性
- 不可再现性
进程的描述
进程的定义
- 进程是程序的一次执行
- 进程是一个程序及其数据在处理机上顺序执行时所发生的活动
- 进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位
进程的特征
- 动态性
- 并发性
- 独立性
- 异步性
从操作系统角度分类
- 系统进程
- 用户进程
进程和程序的区别
- 进程是动态概念,而程序则是静态概念
- 程序是指令的有序集合,永远存在;进程强调是程序在数据集上的一次执行,有创建有撤销,存在是暂时的;
- 进程具有并发性,而程序没有
- 进程可创建其他进程,而程序并不能形成新的程序
- 进程是竞争计算机资源的基本单位,程序不是
进程和程序的联系
- 进程是程序在数据集上的一次执行
- 程序是构成进程的组成部分,一个程序可对应多个进程,一个进程可包括多个程序
- 进程的运行目标是执行所对应的程序
- 从静态看,进程由程序、数据和进程控制块(PCB)组成
进程的基本状态及转换
- 进程的三种基本状态
- 就绪状态ready
- 执行状态running
- 阻塞状态block
- 三种基本状态的转换
- 创建状态和终止状态
- 五状态进程模型
- 注意
- 阻塞态->运行态和就绪态->阻塞态这二种状态转换不可能发生
挂起操作和进程状态的转换
- 挂起和阻塞的区别
- 挂起操作的目的
- 终端用户的需要: 修改、检查进程
- 父进程的需要:修改、协调子进程
- 对换的需要:缓和内存
- 负荷调节的需要:保证实时任务的执行
- 关键图
进程管理中的数据结构
- 进程控制块PCB的作用
- 作为独立运行基本单位的标志
- 能实现间断性运行方式
- 提供进程管理所需要的信息
- 提供进程调度所需要的信息
- 实现与其他进程的同步与通信
- 进程控制块的信息
- 进程标识符
- 外部标识符PID
- 内部标识符(端口)
- 处理机状态
- 通用寄存器
- 指令计数器
- 程序状态字PSW
- 用户栈指针
- 进程调度信息
- 进程状态
- 进程优先级
- 进程调度所需的其他信息
- 事件
- 进程控制信息
- 程序和数据的地址
- 进程同步和通信机制
- 资源清单
- 链接指针
- 进程控制块的组织方式
- 线性方式
- 链接方式
- 索引方式
- 进程标识符
进程控制
操作系统内核
- 两大功能
- 支撑功能
- 中断管理
- 时钟管理
- 原语操作
- 进程的管理,由若干原语(primitive)来执行
- 资源管理功能
- 进程管理
- 存储器管理
- 设备管理
- 支撑功能
- 状态
- 系统态,管态,内核态
- 用户态,目态
进程的创建
- 进程的层次结构
- 父进程
- 子进程
- 引起创建进程的事件
- 用户登录
- 作业调度
- 提供服务
- 应用请求
- 进程的创建过程
- 1.申请空白PCB
- 2.为新进程分配其运行所需的资源
- 3.初始化进程块PCB
- 4.如果进程就绪队列能够接纳新进程,便将新进程插入就绪队列
- 进程的终止
- 引起进程终止的事件
- 1.正常结束
- 2.异常结束
- 3.外界干预
- 进程的终止过程
- 1.根据被终止进程的标识符
- 引起进程终止的事件
- 进程的阻塞与唤醒
- 引起进程阻塞和唤醒的事件
- 请求系统服务而未满足
- 启动某种操作而阻塞当前进程
- 新数据尚未到达
- 无新工作可做:系统进程
- 进程阻塞过程(自己阻塞自己)
- 进程唤醒过程(系统或其他进程唤醒自己)
- 引起进程阻塞和唤醒的事件
- 进程的挂起与激活
- suspend
- active
进程同步
- 基本概念
- 两种形式的制约关系
- 间接相互制约关系
- 互斥——竞争
- 直接相互制约关系
- 同步——协作
- 间接相互制约关系
- 临界资源
- 分区
- 进入区enter section
- 临界区critical section
- 退出区exit section
- 剩余区remainder section
- 同步机制应遵循的规则
- 1.空闲让进
- 2.忙则等待
- 3.有限等待
- 4.让权等待
- 两种形式的制约关系
- 进程同步机制
- 软件同步机制:都没有解决让权等待,而且部分方法还会产生死锁的情况
- 硬件同步机制
- 关中断
- 利用Test-and-Set指令实现互斥
- 利用swap指令实现进程互斥
- 信号量机制
- 整型信号量
- 记录型信号量
- 由于整型信号量没有遵循让权等待原则,记录型允许负数,即阻塞链表
- AND型信号量
- 信号量集
- 理解:AND型号量的wait和signal仅能对信号施以加1或减1操作,意味着每次只能对某类临界资源进行一个单位的申请或释放。当一次需要N个单位时,便要进行N次wait操作,这显然是低效的,甚至会增加死锁的概率。此外,在有些情况下,为确保系统的安全性,当所申请的资源数量低于某一下限值时,还必须进行管制,不予以分配。因此,当进程申请某类临界资源时,在每次分配前,都必须测试资源数量,判断是否大于可分配的下限值,决定是否予以分配
- 操作
- Swait(S1,t1,d1…Sn,tn,dn)
- Ssignal(S1,d1…Sn,dn)
- 特殊情况
- 经典进程的同步问题
- 生产者–消费者问题
- 哲学家进餐问题
- 读者–写者问题
进程通信
进程通信是指进程之间的信息交换,又称低级进程通信
进程通信的类型
- 共享存储器系统
- 基于共享数据结构的通信方式
- 生产者和消费者
- 基于共享存储区的通信方式
- 高级通信
- 基于共享数据结构的通信方式
- 管道通信系统(pipe)
- 高级通信
- 消息传递系统
- 高级通信
- 方式分类
- 直接通信
- 间接通信
- 客服机–服务器系统
消息传递通信的实现方式
- 直接消息传递系统
- 信箱通信
线程的基本概念
线程的引入
- 线程的引入正是为了简化线程间的通信,以小的开销来提高进程内的并发程度
- 多线程并发的不足
- 进程的两个基本属性
- 一个拥有资源的独立单位,可独立分配系统资源
- 一个可独立调度和分派的基本单位,PCB
- 程序并发执行所需付出的时空开销
- 创建进程
- 撤销进程
- 进程切换
- 进程间通信效率低
- 将分配资源和调度两个属性分开
- 进程的两个基本属性
- 线程——作为调度和分派的基本单位
- 进程是系统资源分配的单位,线程是处理器调度的单位
- 线程表示进程的一个控制点,可以执行一系列的指令。通常,和应用程序的一个函数相对应
- 进程分解为线程还可以有效利用多处理器和多核计算机
线程与进程的比较
- 不同点
- 调度的基本单位
- 并发性
- 相似点
- 状态:运行、阻塞、就绪
- 线程具有一定的生命期
- 进程可创建线程,一个线程可创建另一个子线程
- 多个线程并发执行时仍然存在互斥与同步
线程的实现
- 线程的实现方式
- 内核支持线程KST
- 用户级线程ULT
- 组合方式
- 多线程OS中的进程属性
- 进程是一个可拥有资源的基本单位
- 多个线程可并发执行
- 进程已不是可执行的实体
- 线程的状态和线程控制块
- 线程运行的三个状态
- 执行状态
- 就绪状态
- 阻塞状态
- 线程控制块TCB
- 线程运行的三个状态
赞助