操作系统第三章《处理机调度与死锁》

处理机调度的层次

  • 高级调度:又称长程调度或作业调度,它的调度对象是作业,主要功能是根据某种算法决定将后备队列中的哪几个作业调入内存。
  • 低级调度:进程调度或短程调度,其所调度的对象是进程,主要功能是决定就绪队列中的哪个进程应获得处理机。
  • 中级调度:内存调度,引入的目的是提高内存利用率和系统的吞吐量。把那些暂时不能运行的进程,调至外存等待,此时进程的状态为挂起状态。当它们已具备运行条件且内存又稍有空闲时,由中级调度来决定,把外存上的那些已具备运行条件的就绪进程再重新调入内存,并修改其状态为就绪状态,实际上就是存储器管理中的对换功能。

处理机调度算法的目标

  • 共同目标:资源利用率,公平性,平衡性,策略强制执行。
  • 批处理系统的目标:平均周转时间短,系统吞吐量高(吞吐量是指在单位时间内系统所完成的作业数,与批处理作业的平均长度有关,提高吞吐量可以尽量选择短作业运行),处理机利用率高(提高处理机利用率尽量选择计算量大的作业运行,这些要求之间存在一定矛盾)。

作业与作业调度

  • 作业:系统为每个作业分配一个作业控制块(JCB)来管理和调度作业。
  • 调度算法:先来先服务(FCFS),短作业优先(SJF),优先级调度算法(PSA)(基于作业的紧迫程度,由外部赋予作业相应的优先级),高响应比优先调度算法(HRRN)(优先权=(等待时间+要求服务时间)/要求服务时间=响应时间/要求服务时间)。

进程调度

  • 任务:保存处理机的现场信息,按某种算法选取进程,把处理器分配给进程。
  • 调度机制(三个基本部分):排队器(调度算法实施在此),分派器,上下文切换器(保存当前进程的上下文,保存在进程控制块中,移出分派程序的上下文)。
  • 进程调度方式:非抢占方式(让一个进程一次性运行完毕),抢占方式(优先权原则,短进程优先原则,时间片原则)。

进程调度算法

  • 轮转调度算法(RR):将所有的就绪进程按FCFS策略排成一个就绪队列,系统每隔一定时间便产生一次中断,一个较为可取的时间片大小是略大于一次典型的交互所需要的时间。

  • 优先级调度算法:(分为抢占式和非抢占式。)
    静态优先级:在创建进程时确定,在进程的整个运行期间保持不变。确定该进程优先级大小的依据:进程类型,进程对资源的需求,用户要求。
    动态优先级:在创建进程之初,先赋予其一个优先级,然后随进程的推进或者等待时间的增加而改变,当采用抢占式调度方式时,可防止一个长作业长期地垄断处理机。

  • 多队列调度算法:该算法将系统中的进程就绪队列一个拆分为若干个,将不同类型或性质的进程固定分配在不同的就绪队列中。适用于多处理机系统。

  • 多级反馈队列算法:设置多个就绪队列,优先级按顺序依次降低,但时间片的大小一次增大。每个队列都采用FCFS算法,进程进入内存后,先放入第一队列末尾,如果一个时间片的时间未完成,则放入下一队列末尾,依此类推。按队列优先级调度,当第一队列空闲时才进入第二队列,并且如果在调度第二队列的时候,第一队列新加入了进程,则马上要把处理机分配给新进程。

  • 基于公平原则的调度算法:保证调度算法( n个相同类型的进程同时运行,保证每个进程获得相同的处理机时间1/n,计算比率,进程实际执行的处理时间和应获得的处理机时间之比,调度程序应选择比率最低的进程将处理机分配给他。),公平分享调度算法(对每个用户而言要公平)。

死锁概述

资源问题

可重用性资源和消耗性资源

  • 可重用性资源:不允许多个进程共享。按照请求,使用,释放资源的顺序,通常是利用系统调用来实现。每一类这样的资源数目是固定的,进程在运行期间既不能创建也不能删除它。
  • 可消耗性资源:在进程运行期间,由进程动态地创建和消耗,典型的是进程通信的消息。

可抢占性资源和不可抢占性资源

  • 可抢占性资源:这类资源不会引起死锁。
  • 不可抢占性资源:磁带机,打印机等。

计算机系统中的死锁(P105)

  • 竞争不可抢占性资源引起死锁(两个文件)
  • 竞争可消耗性资源引起死锁(进程通信的消息)
  • 进程推进顺序不当引起死锁(打印机和磁带机)
  • 死锁的定义:一组进程中的每一个进程都在等待这组进程中的其他进程才能引发的事件,那么这组进程是死锁的。
  • 产生死锁的必要条件:互斥条件,请求和保持条件(保持了一个资源,请求另一个已被占有的资源,导致请求进程被阻塞),不可抢占条件,循环等待条件(必然存在一个进程-资源的循环链)。
  • 处理死锁的方法:预防死锁(破环产生死锁的必要条件中的一个或者几个来预防产生死锁),避免死锁(在资源的动态分配过程中,用某种方法防止系统进入不安全状态),检测死锁(这种方法事先不采取任何限制条件,而是检测死锁的发生,发生后采取适当措施,解除死锁),解除死锁(与检测死锁往往同时存在)。

避免死锁

  • 避免死锁的实质:系统在进行资源分配时,应使系统不进入不安全状态。虽然并非所有不安全状态都必然转为死锁状态,但当系统进入不安全状态时,就有可能进入死锁状态,反之,只要系统处于安全状态,系统便不会进入死锁状态。
  • 避免死锁的基本思想就是确保系统始终处于安全状态。一个系统开始是处于安全状态的,当有进程请求一个可用资源时,系统对该进程的请求进行计算,若将资源分配给进程后系统仍处于安全状态,才将该资源分配给进程。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值