第三章 处理机调度与死锁(一)

3.1 处理机调度的层次和调度算法的目标

1.系统运行并不一定存在高级调度

批处理系统有作业调度,分时系统和实时系统不需要作业调度。

2.引入中级调度的主要目的是,提高内存利用率和系统吞吐量,根据条件将一些进程调出或再调入内存。

3.调度程序也是程序。

4.调度原则:

  • 面向用户的准则;
  • 面向系统的准则。
4.1 面向用户的准则
  • 平均周转时间短
  • 响应时间快
  • 均衡性
  • 截止时间的保证
4.2 面向系统的准则
  • 系统吞吐量高
  • 处理机利用率高

5.CPU处理时间Ts

周转时间T=Ts+Tw
带权周转时间W=T/Ts
平均带权周转时间和平均周转时间为n个作业求平均。

3.2 作业与作业调度

1.调度队列模型

  • 仅有进程调度的调度队列
  • 具有高级和低级调度的调度队列模型
  • 同时具有三级调度的调度队列模型
1.1 仅有进程调度的调度队列模型
  • 分时系统
  • 调度处于就绪状态的进程
  • 栈、树、无序链表
  • 分时系统中把就绪进程组织成FIFO队列形式:按时间片轮转方式运行
1.2 具有高级和低级调度的调度队列模型

批处理系统中,还需要作业调度。

1.3 引入中级调度后,数据在内外存间互换。

就绪状态:分为内存就绪和外存就绪
阻塞状态:分为内存阻塞和外存阻塞

2.先来先服务调度算法

  • 新作业只有当进程执行完或被阻塞才会执行。
  • 有利于CPU繁忙型(利用CPU时间长)的作业,而不利于I/O繁忙(利用CPU时间短)的。
  • 带权周转时间越高,则越不占优势。

3.高响应比优先调度算法

  • 优先权=(等待时间+要求服务时间)/要求服务时间
    =响应时间/要求服务时间
  • 等待时间越长,优先级越高。
  • 同时到达的作业优先权相同,为1。

3.3 进程调度

1.调度程序的任务职能:调度和分派

  • 记录系统中所有进程的有关情况(记录在PCB中)
  • 确定分配处理机的原则(算法)
  • 分配处理机给进程
  • 从进程收回处理机
    3和4为保存、更新CPU现场(PCB中进程队列处理)。

2.进程调度描述工具:Gantt(甘特)图

3.调度进程

  • 上下文切换程序
  • 分配程序(分派器)
  • 队列管理程序(排队器)

4.非抢占方式的进程调度时机:程序完成、发生某事件阻塞

5.抢占方式抢占时间点:作业完成时、作业阻塞时、新作业来时、时间片结束时(根据算法细节而定)

6.轮转法进程阻塞时,未用完时间片也要让出CPU。

7.抢占方式、优先权原则

问题描述:现有三个进程P1、P2、P3,优先级由高到低分别为P1、P2、P3,三个进程所需占用资源如下,请按资源角度为进程排序
P1:I/O2 30ms,CPU 10ms,I/O1 30ms,CPU 10ms,I/O2 10ms
P2:I/O1 20ms,CPU 20ms,I/O2 40ms
P3: CPU 30ms,I/O1 20ms
在这里插入图片描述
CPU就绪队列中按优先级排序。
I/O设备无资源抢占,无优先级。

3.4 实时调度

1.实时系统指系统能够在限定响应时间内提供所需水平的服务。

2.硬实时任务能满足实时任务对截止时间的要求。

3.软实时任务:联系着一个截止时间,但不严格,可偶尔错过,不会对系统造成大的影响。

4.最低松弛度优先LLF算法

  • 抢占时间点:进程执行完、进程I/O阻塞、新进程出现时可能抢占、某进程松弛度为0时发生抢占(根据题意有时候如此,不同事件不同)
  • 松弛度=必须完成时间-其本身的运行时间-当前时间
    =截止完成时间-还需执行时间-当前时间(时间实为时刻)
  • 抢占与否与算法基本实现有关。

3.5 死锁概述

1.当进程处于死锁状态时,若无外力作用,它们都无法再向前推进。

2.资源分类

  • 可剥夺性资源和非可剥夺性资源
  • 永久性资源和临时资源

3.产生死锁的必要条件:

  • 竞争资源
  • 进程间推进顺序非法

猜你喜欢

转载自blog.csdn.net/CheneyKKE/article/details/83246744