标签:保留 允许 利用 记录 进程调度 调度算法 系统 争夺 功能
用户进程数一般都多于处理机数,这将导致用户进程互相争夺处理机,那么多进程竞争处理机,处理机到底给谁呢?就涉及了进程调度的问题。因此要求进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程。
1.进程管理模块将系统中各进程的执行情况和状态特征记录在各进程的PCB表中
2.进程管理模式根据各进程的状态特征和资源需求,将各进程的PCB表排成相应的队列并进行动态队列转接
3.进程调度模块通过PCB变化来掌握系统中所有进程的执行情况和状态特征,并在适当的时机从就绪队列中选择出一个进程占据处理机
进程调度的主要功能是按照一定的策略选择一个处于就绪状态的进程,使其获得处理机执行
选择策略决定了调度算法的性能
进程的上下文(context)包括进程的状态、有关变量和数据结构的值、硬件寄存器的值和PCB以及有关程序等
当正在执行的进程由于某种原因要让出处理机时,系统要做进程上下文切换,以使另一个进程得以执行
进程的执行是在进程的上下文中执行
1.系统首先检查是否允许做上下文切换。
2.然后,系统保留有关被切换进程的足够信息,以便以后切换回该进程时,顺利恢复该进程的执行。
3.在系统保留了CPU现场之后,调度程序选择一个新的处于就绪状态的进程,并装配该进程的上下文,使CPU的控制权转换到被选中进程
进程调度时机与引起进程调度的原因以及进程调度方式有关
即使就绪队列存在优先级高于当前执行进程的进程,当前进程仍继续占有处理机。
发生进程调度的原因:
1.正在执行的进程执行完毕。
2.执行中进程自己调用阻塞原语将自己阻塞起来进入睡眠等待状态。
3.执行中进程调用了P原语操作,从而因资源不足而被阻塞;或调用了V原语操作激活了等待资源的进程队列。
4.执行中进程提出I/O请求后被阻塞。
5.分时系统中时间片已经用完。
6.执行完系统调用。系统程序返回用户进程时,可认为系统进程执行完毕,从而可调度选择一新的用户进程执行。
就绪队列中一旦有优先级高于当前执行进程优先级的进程,立即发生进程调度,转让处理机。
CPU可剥夺方式下进程调度的原因:
就绪队列中某进程的优先级高于当前执行进程的优先级,从而引发进程调度。
首先是调度的可靠性。另外,简洁性也是衡量进程调度的一个重要指标
进程调度的定量评价包括CPU利用率、进程在就绪队列中的等待时间与执行时间之比等,但是这种方法很难,一般都是测试模拟得到的。
标签:保留 允许 利用 记录 进程调度 调度算法 系统 争夺 功能
原文地址:https://www.cnblogs.com/mengxiaoleng/p/11884478.html