做网站的app有什么作用,私人路由器做网站,首都产业建设集团网站,泉州网站优化文章目录第二章 进程管理进程调度的时机、方式、切换与过程#xff08;一#xff09;进程调度的时机#xff08;二#xff09;进程调度的方式#xff08;三#xff09;进程的切换与过程小结第二章 进程管理
进程调度的时机、方式、切换与过程 时机 什么时候需要进程调度…
文章目录第二章 进程管理进程调度的时机、方式、切换与过程一进程调度的时机二进程调度的方式三进程的切换与过程小结第二章 进程管理
进程调度的时机、方式、切换与过程 时机 什么时候需要进程调度什么时候不能进行进程调度 切换与过程 “狭义的调度”与“切换”的区别进程切换的过程需要做什么 方式 非剥夺调度方式非抢占式剥夺调度方式抢占式 一进程调度的时机 进程调度低级调度就是按照某种算法从就绪队列中选择一个进程为其分配处理机。 什么时候需要进行进程调度与切换 1当前运行的进程主动放弃处理机 ①进程正常终止 ②运行过程中发生异常而终止 ③进程主动请求阻塞如 等待I/O。 2当前运行的进程被动放弃处理机 ①分给进程的时间片用完 ②有更紧急的事需要处理如 I/O中断 ③有更高优先级的进程进入就绪队列。 而进程调度并不是什么时候都能进行的有些时候不能进行进程调度与切换。 1在处理中断的过程中。由于中断处理过程很复杂与硬件密切相关因此很难做到在进行中断处理过程、处理到一半的时候去进行进程切换的。 2进程在操作系统内核程序临界区中。下文会具体讲 3在原子操作过程中原语。原子操作不可中断要一气呵成如之前讲过的修改PCB中进程状态标志并把PCB放到相应队列。而如果在执行到一半去进行进程调度与切换了就有可能导致数据不匹配、安全隐患 进程在操作系统内核程序临界区中不能进行调度与切换。正确表述 2012年联考真题进程处于临界区时不能进行处理机调度。错误 临界资源一个时间段内只允许一个进程使用的资源。各个进程需要互斥地访问临界资源。你访问临界资源的时候我不能访问我访问临界资源的时候你不能访问这就是互斥的意思 临界区访问临界资源的那段代码。因此各个进程肯定也要互斥地进入临界区。因为“进入临界区” 运行访问临界资源的代码 访问临界资源 内核程序临界区一般是用来访问某种内核数据结构的比如进程的就绪队列由各就绪进程的PCB组成。 当一个进程正处于内核程序临界区而这个临界区是访问就绪队列的话。那么在访问之前它会把这个就绪队列上锁。 而如果说这个进程当前还没有退出内核程序临界区的话也就意味着这个临界资源并没有被解锁。那么在没有解锁的情况下如果我们要发生进程调度的话那么进程调度是肯定要访问就绪队列这一临界资源的。而由于就绪队列这一临界资源此时还处于上锁的状态所以如果在这种情况下去进行进程调度的话那么此时肯定是没办法顺利进行进程调度的。 所以可以看到对于内核程序临界区访问的这些临界资源也就是这些内核数据结构而言。如果这些内核数据结构、这些临界资源被上锁了并且没有被尽快释放的话那么就有可能影响到操作系统内核其他的管理工作。 所以我们在访问内核程序临界区的期间内我们不能进行进程的调度和切换。我们必须让进程尽快执行完那些内核程序临界区的代码之后尽快地把对临界资源上的锁给解除只有这样其他的操作系统内核才能有序进行管理工作。 而另外一种情况。 假如这个进程访问的是一种普通的临界资源比如是一个打印机。那么它在访问打印机的时候会先对打印机上锁。 打印机在打印完成之前这个进程一直是在临界区内的一直保持着对打印机的访问由于这个进程没有退出临界区所以打印机一直是上锁的状态。但是又由于打印机是一种慢速的设备如果这个情况下不允许进程调度、切换的话那么就需要这个进程一直空等着这个打印机的打印结束。同时在这个进程空等的时候它还霸占着CPU所以CPU一直是在空闲的状态什么有用的也没有做。 所以如果进程在访问普通的临界资源在普通的临界区当中的话这个情况下其实是应该进行进程调度的。因为普通的临界区访问的这些普通的临界资源并不会直接地影响到操作系统内核的管理工作。所以为了增加操作系统的并发度、增加CPU的利用率那么在访问这些普通的临界区的时候是可以进行进程调度和切换的。 至此对于开头的两个表达为什么一个对一个错已经可以理解了。 接下来看下一个问题。 在有的操作系统里它只允许进程主动地放弃处理机而不允许这个进程在运行过程中被迫地被剥夺处理机资源。 但是还有的操作系统是允许当有更紧急的任务需要处理时能强行地剥夺当前运行进程的处理机资源的。 所以由“当前进程是否可以被强行剥夺处理机资源”这个问题我们引出了下一个知识点——进程调度的方式。
二进程调度的方式 分为非剥夺调度方式非抢占式和剥夺调度方式抢占式。 非剥夺调度方式又称非抢占方式。即只允许进程主动放弃处理机。在运行过程中即使有更紧迫的任务到达当前进程依然会继续使用处理机直到该进程终止或主动要求进入阻塞态。 实现简单系统开销小但是无法及时处理紧急任务适合于早期的批处理系统。 剥夺调度方式又称抢占方式。当一个进程正在处理机上执行时如果有一个更重要或更紧迫的进程需要使用处理机则立即暂停正在执行的过程将处理机分配给更重要紧迫的那个进程。 可以优先处理更紧急的进程也可实现让各进程按时间片轮流执行的功能通过时钟中断。适合于分时操作系统、实时操作系统。 三进程的切换与过程 “狭义的进程调度”与“进程切换”的区别 狭义的进程调度指的是从就绪队列中选中一个要运行的进程。这个进程可以是刚刚被暂停执行的进程也可能是另一个进程后一种情况就需要进程切换 进程切换是指一个进程让出处理机由另一个进程占用处理机的过程。 广义的进程调度包含了选择一个进程和进程切换两个步骤。 进程切换的过程主要完成了 1、对原来运行进程各种数据的保存 2、对新的进程各种数据的恢复
如程序计数器、程序状态字、各种数据寄存器等处理机现场信息这些信息一般保存在进程控制块 因此我们可知进程的切换是有代价的是需要付出一定的时间代价的。所以不能简单的认为进程切换越频繁、进程的并发度就越高。如果过于频繁地进行进程调度、切换必然会使整个系统的效率降低使系统大部分时间花在了进程切换上而真正用于执行进程的时间减少。
小结