进程的描述-1 运行态 时间片已用完 等待某一事件发生 进程调度 等待事件已发生 就绪态 阻塞态
进程的描述-1 运 行 态 就 绪 态 阻 塞 态 进程调度 时间片已用完 等待某一事件发生 等待事件已发生
2进程状态的转换 三个基本状态之间可能转换和转换原因如下: ●就绪态一一>运行态:当处理机空闲时,进程调度程序必将 处理机分配给一个处于就绪态的进程,该进程便由就绪态转 换为运行态 ●运行态一一>阻塞态:处于运行态的进程在运行过程中需要 等待某一事件发生后(例如因I/0请求等待I/0完成后), 才能继续运行,则该进程放弃处理机,从运行态转换为阻塞 态 ●阻塞态一一>就绪态:处于阻塞态的进程,若其等待的事件 已经发生,于是进程由阻塞态转换为就绪态。 运行态一一>就绪态:处于运行状态的进程在其运行过程中 因分给它的处理机时间片已用完,而不得不让出(被抢占) 处理机,于是进程由运行态转换为就绪态 而阻塞态一一>运行态和就绪态一—>阻塞态这二种状态转 换不可能发生
2.进程状态的转换 三个基本状态之间可能转换和转换原因如下: ⚫ 就绪态――>运行态:当处理机空闲时,进程调度程序必将 处理机分配给一个处于就绪态的进程 ,该进程便由就绪态转 换为运行态。 ⚫ 运行态――>阻塞态:处于运行态的进程在运行过程中需要 等待某一事件发生后(例如因I/O请求等待I/O完成后), 才能继续运行,则该进程放弃处理机,从运行态转换为阻塞 态。 ⚫ 阻塞态――>就绪态:处于阻塞态的进程,若其等待的事件 已经发生,于是进程由阻塞态转换为就绪态。 ⚫ 运行态――>就绪态:处于运行状态的进程在其运行过程中, 因分给它的处理机时间片已用完,而不得不让出(被抢占) 处理机,于是进程由运行态转换为就绪态。 • 而阻塞态――>运行态和就绪态――>阻塞态这二种状态转 换不可能发生
3.系统中各进程状态的分布和管理 处于运行态进程:如系统有一个处理机,则在任何 时刻,最多只有一个进程处于运行态。 ·处于就绪态进程:一般处于就绪态的进程按照一定 的算法(如先来的进程排在前面,或采用优先权 高的进程排在前面)排成一个就绪队列 处于阻塞态进程:处于阻塞态的进程排在阻塞队列 中。由于等待事件原因不同,阻塞队列也按事件 分成几个队列
3.系统中各进程状态的分布和管理 • 处于运行态进程:如系统有一个处理机,则在任何 一时刻,最多只有一个进程处于运行态。 • 处于就绪态进程:一般处于就绪态的进程按照一定 的算法(如先来的进程排在前面,或采用优先权 高的进程排在前面)排成一个就绪队列。 • 处于阻塞态进程:处于阻塞态的进程排在阻塞队列 中。由于等待事件原因不同,阻塞队列也按事件 分成几个队列
进程队列 就队列 释放 许可 Ready queue 调度 Release Admit Dispatch 处理器 超时 Timeout 等待事件队列1 等待事件1 事件1 发生 等待事件队列2 事件2 等待事件2 发生 等待事件队列n 事件n 等待事件n 发生 就绪队列无优先级(例:日FQ 当事件n发生,对应队列移进就绪队列
系统中各进程状态的分布和管理-1 系统中各进程状态的分布: 例:一个只有一个处理机的系统中,0S的进程有运行、就绪 阻塞三个基本状态。假如某时刻该系统中有10个进程并发执 行,在略去调度程序所占用时间情况下试问 这时刻系统中处于运行态的进程数最多有几个?最少有几个? 这时刻系统中处于就绪态的进程数最多有几个?最少有几个? 这时刻系统中处于阻塞态的进程数最多有几个?最少有几个? 解:因为系统中只有一个处理机,所以某时刻处于运行态的 进程数最多只有一个。而最少可能为0,此时其它10个进程 定全部排在各阻塞队列中,在就绪队列中没有进程。而某时 刻处于就绪态的进程数最多只有9个,不可能出现10个情况, 因为一旦CPU有空,调度程序马上调度,当然这是在略去调度 程序调度时间时考虑。处于阻塞态的进程数最少是0个
系统中各进程状态的分布和管理-1 系统中各进程状态的分布: (例:一个只有一个处理机的系统中,OS的进程有运行、就绪、 阻塞三个基本状态。假如某时刻该系统中有10个进程并发执 行,在略去调度程序所占用时间情况下试问: 这时刻系统中处于运行态的进程数最多有几个?最少有几个? 这时刻系统中处于就绪态的进程数最多有几个?最少有几个? 这时刻系统中处于阻塞态的进程数最多有几个?最少有几个? • 解:因为系统中只有一个处理机,所以某时刻处于运行态的 进程数最多只有一个。而最少可能为0,此时其它10个进程一 定全部排在各阻塞队列中,在就绪队列中没有进程。而某时 刻处于就绪态的进程数最多只有9个,不可能出现10个情况, 因为一旦CPU有空,调度程序马上调度,当然这是在略去调度 程序调度时间时考虑。处于阻塞态的进程数最少是0个。 (练习)