进程管理2《第二章》

处理机调度的基本概念
调度的实质是一种资源分配,处理机调度是对处理机资源进行分配。
处理机调度层次:
高级调度(长程调度,作业调度)在需要从外存调入一个作业到内存时发生。
中级调度(内存调度) :内存紧张时需要调出一个进程或者空闲时调出的进程调回内存。
低级调度(进程调度,短程调度) :执行的进程放弃CPU或者被其他更高优先级进程抢占。
作业运行的三个阶段:收容阶段,运行阶段,完成阶段
作业运行的三个状态:后备状态,运行状态,完成状态
调度的时机、切换与过程
进程调度和切换程序是操作系统内核程序。当请求调度的事件发生后,才可能会运行进程调度程序,当调度了新的就绪进程后,才会去进行进程间的切换。理论上这三件事情应该顺序执行,但在实际设计中,在操作系统内核程序运行时,如果某时发生了引起进程调度的因素,并不一定能够马上进行调度与切换。
现代操作系统中,不能进行进程的调度与切换的情况有以下几种情况。

  1. 在处理中断的过程中:中断处理过程复杂,在实现上很难做到进程切换,而且中断处理是系统工作的一部分,逻辑上不属于某一进程,不应被剥夺处理机资源。
  2. 进程在操作系统内核程序临界区中:进入临界区后,需要独占式地访问共享数据,理论上必须加锁,以防止其他并行程序进入,在解锁前不应切换到其他进程运行,以加快该共享数据的释放。
  3. 其他需要完全屏蔽中断的原子操作过程中:如加锁、解锁、中断现场保护、恢复等原子操作。在原子过程中,连中断都要屏蔽,更不应该进行进程调度与切换。
    如果在上述过程中发生了引起调度的条件,并不能马上进行调度和切换,应置系统的请求调度标志,直到上述过程结束后才进行相应的调度与切换。
    应该进行进程调度与切换的情况有:
  4. 当发生引起调度条件,且当前进程无法继续运行下去时,可以马上进行调度与切换。如果操作系统只在这种情况下进行进程调度,就是非剥夺调度。
  5. 当中断处理结束或自陷处理结束后,返回被中断进程的用户态程序执行现场前,若置上请求调度标志,即可马上进行进程调度与切换。如果操作系统支持这种情况下的运行调度程序,就实现了剥夺方式的调度。
    进程切换往往在调度完成后立刻发生,它要求保存原进程当前切换点的现场信息,恢复被调度进程的现场信息。现场切换时,操作系统内核将原进程的现场信息推入到当前进程的内核堆栈来保存它们,并更新堆栈指针。内核完成从新进程的内核栈中装入新进程的现场信息、更新当前运行进程空间指针、重设PC寄存器等相关工作之后,开始运行新的进程。
    调度的基本准则
    CPU 利用率、系统吞吐量、周转时间、等待时间、响应时间
    面向用户的准则
    周转时间短(批处理系统)
    响应时间快(分时系统)
    截止时间的保证(实时系统)
    截止时间,是指某任务必须开始执行的最迟时间,或必须完成的最迟时间。
    优先权准则(批处理、分时、实时)
    让某些紧急的作业得到及时的处理。在要求较严格的场合可采用抢占调度方式。
    进程调度方式:所谓进程调度方式是指当某一个进程正在处理机上执行时,若有某个更为重要或紧迫的进程需要处理,即有优先权更髙的进程进入就绪队列,此时应如何分配处理机。
    通常有以下两种进程调度方式:
    1)非剥夺调度方式,又称非抢占方式。
  6. 剥夺调度方式,又称抢占方式。
    对算法的选择要考虑三个目标:
    1)尽量提高系统的作业吞吐量,即每天处理尽可能多的作业 。
    2)尽量使 CPU 和外部设备保持忙碌状态,以提高资源利用率 。
    3)对各种作业公平合理,使所有用户都满意。
    典型调度算法(先来先服务调度算法、短作业(短进程、短线程)优先调度算法、时间片轮 转调度算法、优先级调度算法、高响应比优先调度算法、多级反馈队列调度算法)
    周转时间=完成时间-到达时间,带权周转时间=周转时间/服务(运行)时间
    先来先服务调度算法(FCFS):优先考虑在系统中等待时间最长的作业。
    对短进程不利,有利于 CPU 的繁忙型作业,不利于 I/O 繁忙型作业
    短作业优先调度算法(SJF):作业越短优先级越高。运行时间越少,优先运行
    优先级调度算法(PSA):等待时间越长,优先级越高
    高响应比优先调度算法(HRRN):既有利于短作业,又有利于长作业,综合考虑等待时间和服务时间
    轮转调度算法:
    原理:系统将所有的就绪进程按到达时间的先后次序排成一个队列,进程调度程序总是选择就绪队列中第一个进程执行,即先来先服务的原则,但仅能运行一个时间片,如 100ms。在一个时间片使用完后,即使进程未完成运行,他也必须释放出(被剥夺)处理机给下一个就绪进程,而被剥夺的进程返回就绪队列的末尾重新排队,等候再次运行。
    时间片轮转调度算法是为了多个用户能及时干预系统
    时间片轮转调度算法是绝对可抢占的
    时间片大小的确定:一个较为可取的时间片大小是略大于一次典型的交互所需要的时间。
    注:要会根据时间片的大小算完成时间
    优先级调度算法的类型:非抢占式和抢占式
    优先级类型:
    静态优先级(权):在整个运行期间保持不变
    动态优先级(权):根据情况改变,随着进程时间的增加,其优先权降低
    多级反馈队列调度算法:能使长短作业和交互作业用户都满意
    工作方式:设置多个就绪队列,每个队列采用 FCFS 算法,按队列优先级调度。
    性能:终端型用户,段批处理作业用户,长批处理作业用户。
    进程调度的任务:保存处理机的现场信息,按照某种算法选取进程,把处理器分配给进程。
    进程调度机制的三个基本部分:排队器,分派器,上下文切换器。
    临界区:用于访问临界资源的那段代码。
    中断:指CPU 对突发的外部事件的反应过程或机制,CPU接收到外部信号(中断信号)后停止工作转去处理外部事件,处理完毕后回到原来工作的中断处(断点)继续原来的工作。
    引入中断的目的:实现并发活动,实现实时处理,故障自动处理
    中断源:引起中断的事件
    断点:程序中断的地方,将要执行的下一指令地址
    现场:程序正确运行所依赖的信息集合

进程同步
进程同步:是对多个相关进程在执行次序上进行协调,使并发执行诸进程之间能按照一定的 规则(或时序)共享系统资源,并能很好的相互合作,从而使程序的执行具有可再现性。
同步机制应遵循的规则:空闲让进,忙则等待,有限等待,让权等待(CPU 的使用权)
1.空闲让进:资源空闲,允许一个进程立即进入
2.忙则等待:资源被访问,其他进程必须等待
3.有限等待:保证等待访问的进程能在有限时间内进入
4.让权等待:进程不能进入临界区使应立即释放 CPU
进程之间存在着直接制约(同步)与间接制约(互斥)关系,其中直接制约是又进程间的相 互合作引起的,间接制约是由进程间共享临界资源而引起的。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值