首页 > 其他 > 详细

操作系统02_处理机管理

时间:2018-08-24 22:39:34      阅读:196      评论:0      收藏:0      [点我收藏+]

处理机调度

处理机调度是系统对处理机资源进行分配,使处于就绪状态的进程得以执行。使用的处理机调度算法决定了大型系统运行时的性能。

1.处理机调度层次

一个作业从提交到获得处理机执行,直至作业运行完毕,可能需要经过多级处理机调度。处理机调度的层次分三层:

  • 高级调度,调度对象为作业,又称作业调度或长程调度,主要用于多道批处理系统中。
  • 中级调度,又称内存调度,实际上是存储器管理的对换功能。提高内存利用率和系统吞吐量。
  • 低级调度,调度对象为进程,又称进程调度或短程调度,是最基本的调度,对系统性能影响也最大,决定就绪队列中哪个进程应该并且获得处理机。

2.作业与作业调度

  • 作业是用户提交给系统的一项相对独立的工作。
  • 作业调度的主要任务是,根据JCB(作业控制块)中的信息,检查系统中的资源是否满足作业的需求,并按照调度算法,从外存的后备队列中选取某些作业调入内存,并为其创建进程、分配必要的资源,并放入就绪队列。
  • 主要的调度算法如下:
    • 最简单的先来先服务(FCFS)调度算法,既可用于作业调度,也可用于进程调度。只考虑作业的等待时间,忽视了作业的运行时间。
    • 较常用的短作业优先(SJF)调度算法,既可用于作业调度,也可用于进程调度。只考虑作业的运行时间,忽视了作业的等待时间。
    • 较常用的优先级调度算法(PSA),基于作业的紧迫程度,既可用于作业调度,也可用于进程调度。
    • 比较好的是高响应比优先调度算法(HRRN),考虑了作业的等待时间和运行时间,改善了系统性能,但是每次调度之前先计算响应比(优先级=(等待时间+要求服务时间)/要求服务时间=响应时间/要求服务时间),增加了系统开销。

3.进程调度

  • 进程调度的任务是,保存处理机的现场信息,按某种算法选取进程并分配处理机。
  • 进程调度方式分为非抢占式和抢占式(广泛采用),抢占的原则有优先级原则、短进程优先原则、时间片原则。
  • 常见的调度算法有:
    • 基于时间片的轮转(RR)调度算法,采用非常公平的处理机分配方式,让就绪队列上的每个进程每次只运行一个时间片。
    • 优先级调度算法
    • 多队列调度算法
    • 多级反馈队列调度算法
    • 基于公平原则的调度算法

4.实时调度

  • 实时调度算法有:
    • 最早截止时间优先(EDF)算法
    • 最低松弛度优先(LLF)算法
  • 优先级倒置现象

处理机死锁

假如系统中有一个资源A和一个资源B,有两个进程P1和P2,P1成功请求并获得A,P2成功请求并获得B。此时,P1请求B,因B被分配给P2而阻塞;P2请求A,因A被分配给P1而阻塞。此时两个进程都被阻塞,都得不到资源继续运行,从而无法释放占有的资源,一直僵持下去而产生死锁问题。

1.死锁的产生

主要是多个进程对临界资源的争夺。产生死锁的必要条件:

  • 针对资源的互斥条件
  • 请求和保持条件
  • 不可抢占条件
  • 循环等待条件

2.避免死锁

银行家算法

3.死锁的检测与解除

  • 解除死锁的方法:
    • 抢占资源分配给死锁进程
    • 终止或撤销进程

操作系统02_处理机管理

原文:https://www.cnblogs.com/pycrab/p/9522246.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!