Open HuangHenry opened 4 years ago
https://huanghenry.github.io/2020/04/12/2.%E7%AC%AC%E4%BA%8C%E7%AB%A0-%E8%BF%9B%E7%A8%8B%E7%9A%84%E6%8F%8F%E8%BF%B0%E4%B8%8E%E6%8E%A7%E5%88%B6/
第二章进程的描述与控制前驱图和程序执行程序并发执行程序的并发执行程序并发执行时的特征 间断性 失去封闭性 不可再现性 进程的描述 进程的定义 进程是程序的一次执行 进程是一个程序及其数据在处理机上顺序执行时所发生的活动 进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位 进程的特征 动态性 并发性 独立性 异步性 从操作系统角度分类 系统进程 用户进程 进程和程序的区别 进程是动态概念,而程序则是静态概念 程序是指令的有序集合,永远存在;进程强调是程序在数据集上的一次执行,有创建有撤销,存在是暂时的; 进程具有并发性,而程序没有 进程可创建其他进程,而程序并不能形成新的程序 进程是竞争计算机资源的基本单位,程序不是 进程和程序的联系 进程是程序在数据集上的一次执行 程序是构成进程的组成部分,一个程序可对应多个进程,一个进程可包括多个程序 进程的运行目标是执行所对应的程序 从静态看,进程由程序、数据和进程控制块(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
https://huanghenry.github.io/2020/04/12/2.%E7%AC%AC%E4%BA%8C%E7%AB%A0-%E8%BF%9B%E7%A8%8B%E7%9A%84%E6%8F%8F%E8%BF%B0%E4%B8%8E%E6%8E%A7%E5%88%B6/
第二章进程的描述与控制前驱图和程序执行程序并发执行程序的并发执行程序并发执行时的特征 间断性 失去封闭性 不可再现性 进程的描述 进程的定义 进程是程序的一次执行 进程是一个程序及其数据在处理机上顺序执行时所发生的活动 进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位 进程的特征 动态性 并发性 独立性 异步性 从操作系统角度分类 系统进程 用户进程 进程和程序的区别 进程是动态概念,而程序则是静态概念 程序是指令的有序集合,永远存在;进程强调是程序在数据集上的一次执行,有创建有撤销,存在是暂时的; 进程具有并发性,而程序没有 进程可创建其他进程,而程序并不能形成新的程序 进程是竞争计算机资源的基本单位,程序不是 进程和程序的联系 进程是程序在数据集上的一次执行 程序是构成进程的组成部分,一个程序可对应多个进程,一个进程可包括多个程序 进程的运行目标是执行所对应的程序 从静态看,进程由程序、数据和进程控制块(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