Presentation is loading. Please wait.

Presentation is loading. Please wait.

操作系统原理 Operating System Principles

Similar presentations


Presentation on theme: "操作系统原理 Operating System Principles"— Presentation transcript:

1 操作系统原理 Operating System Principles
四川大学计算机学院 段 磊 2014 Spring

2 处理器调度指在多道程序环境下将处理器分配给各进程。 在处理器调度中,合理的调度算法能够提高处理器的处理能力和系统性能,满足用户需求。
第3章 处理器调度 处理器调度指在多道程序环境下将处理器分配给各进程。 在处理器调度中,合理的调度算法能够提高处理器的处理能力和系统性能,满足用户需求。

3 本章目录 3.1 处理器调度的层次 3.2 评价调度算法的准则 3.3 调度算法 3.4 线程调度 3.5 实时调度 3.6 多处理器调度
3.1 处理器调度的层次 3.2 评价调度算法的准则 3.3 调度算法 3.4 线程调度 3.5 实时调度 3.6 多处理器调度 3.7 Windows 2000/XP系统的处理器调度 2018/12/8 《计算机操作系统》- 第3章

4 3.1 处理器调度的层次 内容 要点 高级调度-作业调度 中级调度 低级调度-进程调度 调度的本质 进程调度的概念 2018/12/8
3.1 处理器调度的层次 内容 高级调度-作业调度 中级调度 低级调度-进程调度 要点 调度的本质 进程调度的概念 2018/12/8 《计算机操作系统》- 第3章

5 3.1 处理器调度的层次 内容 要点 高级调度-作业调度 中级调度 低级调度-进程调度 调度的本质 进程调度的概念 2018/12/8
3.1 处理器调度的层次 内容 高级调度-作业调度 中级调度 低级调度-进程调度 要点 调度的本质 进程调度的概念 2018/12/8 《计算机操作系统》- 第3章

6 调度的概念与本质 调度: 单道程序环境与多道程序环境 处理器调度: 系统将计算机资源分配给进程。 多道程序环境下将处理器分配给各进程
2018/12/8 《计算机操作系统》- 第3章

7 调度的概念与本质 调度要解决的问题: WHAT:按什么原则分配CPU WHEN:何时分配CPU HOW: 如何分配CPU 调度算法
调度的时机 HOW: 如何分配CPU 调度过程 2018/12/8 《计算机操作系统》- 第3章

8 处理器调度的层次 处理机是计算机系统中的重要资源 处理机调度算法对整个计算机系统的综合性能指标有重要影响 高级调度也称为作业调度或宏观调度
处理机调度的三个层次: 高级调度 中级调度 低级调度 高级调度也称为作业调度或宏观调度 高级调度的时间尺度通常是分钟、小时或天 中级调度涉及进程在内外存间的交换 从存储器资源管理的角度来看,把进程的部分或全部换出到外存上,可为当前运行进程的执行提供所需内存空间,将当前进程所需部分换入到内存。指令和数据必须在内存里才能被处理机直接访问 低级调度也称微观调度 从处理机资源分配的角度来看,处理机需要经常选择就绪进程或线程进入运行状态,低级调度的时间尺度通常是毫秒级的。 由于低级调度算法的频繁使用,要求在实现时做到高效。 2018/12/8 《计算机操作系统》- 第3章

9 高级调度-作业的概念与分类 概念: 分类: 一个系统能够同时接纳作业的个数称为系统的多道程序度。
作业由一组统一管理和操作的进程集合构成,是用户要求计算机系统完成的一项相对独立的工作。 作业可以是完成了编译、链接之后的一个用户程序,也可以是用各种命令构成的一个脚本。 分类: 根据需要处理工作的类型,分为计算型作业和I/O型作业。 按照作业提交方式,分为批处理作业和终端型作业。 一个系统能够同时接纳作业的个数称为系统的多道程序度。 2018/12/8 《计算机操作系统》- 第3章

10 高级调度-作业的概念与分类 用户将作业提交给操作系统,等待输入程序和数据到磁盘。
系统接收输入的用户作业,并将其放入计算机磁盘。作业在磁盘上以后备队列形式进行组织,等待作业调度程序将作业调度到内存。 作业的状态: 提交状态 后备状态 执行状态 完成状态 作业被调度到内存,为作业分配资源并为其创建与之对应的进程,进程获得CPU,开始运行。 从作业的第一个进程完成开始,直到作业所有的进程完成,释放作业所占用的资源,退出系统的整个进程。 2018/12/8 《计算机操作系统》- 第3章

11 高级调度-概念与模型 作业调度概念: 模型:
按照操作系统预先规定的策略,从磁盘的作业后备队列中选择作业调入内存,为作业分配所需要的资源并建立与作业相对应的进程。 当作业运行的准备工作完成后,作业调度启动作业运行。 在作业运行结束后,作业调度归还并释放作业占用的资源,结束作业。 模型: 2018/12/8 《计算机操作系统》- 第3章

12 高级调度-策略与因素 接纳多少个作业 接纳哪些作业 作业数目太多时,可能会影响到系统的服务质量;
作业的数量太少时,又会导致系统的资源利用率和系统吞吐量太低 接纳哪些作业 先来先服务调度算法 短作业优先调度算法 基于作业优先级的调度算法 响应比高者优先的调度算法 2018/12/8 《计算机操作系统》- 第3章

13 高级调度-OS任务 作业调度中操作系统需要完成如下主要工作: 确定作业的数据结构 确定作业的调度算法 为作业分配资源 回收作业资源
操作系统为每个进入系统的作业分配一个与进程控制块(PCB)类似的作业控制块(JCB) JCB是作业的标志,OS根据JCB中的信息对作业进行调度和管理。 作业运行需要各种资源,包括硬件资源和软件资源。硬件资源有内存、处理器和各种输入输出设备。软件资源有各种共享变量等。 作业的资源分配策略主要考虑的是作业所包含的进程所需要的资源,在一般情况下,资源按照进程需求进行分配。资源分配中需要避免由进程之间的资源竞争而造成的死锁等现象。 作业完成后,作业调度程序除了要输出相关的作业信息之外,还要回收作业所占用的全部资源,撤销与作业相关的进程和作业控制块。 在作业调度工作中,大多数工作由作业的调度程序完成。 内存和输入输出设备的分配和释放不是由作业调度程序完成,而是由存储器管理和设备管理程序完成的。 作业调度程序只是将作业对内存的要求和对设备的要求转交给相应的内存管理程序和设备管理程序,由内存管理程序和设备管理程序完成内存和设备的分配与回收。 2018/12/8 《计算机操作系统》- 第3章

14 高级调度-作业状态转换 作业调度将作业从后备状态转换到内存执行状态 作业执行状态包含作业所对应进程的就绪、运行和阻塞状态 2018/12/8
《计算机操作系统》- 第3章

15 3.1 处理器调度的层次 内容 要点 高级调度-作业调度 中级调度 低级调度-进程调度 调度的本质 进程调度的概念 2018/12/8
3.1 处理器调度的层次 内容 高级调度-作业调度 中级调度 低级调度-进程调度 要点 调度的本质 进程调度的概念 2018/12/8 《计算机操作系统》- 第3章

16 中级调度-概念与功能 又称为中程调度,是为了提高内存利用率和平衡系统负载而采取的一种利用外存补充内存的措施。
多进程环境下,内存中存在多个进程,其中有些进程可能需要挂起,这些进程暂时不参与对处理器的竞争。 为了充分利用内存资源,系统会采用进程对换的方法将进程换出到外存,将这些进程占用的内存空间释放,让内存能够接纳新的进程或使得内存中的进程能够更快推进。当被换出到外存中的进程挂起时间到时,又需要将这些进程换入到内存。 中级调度是在换出内存的进程中确定需要进入内存的进程的一种调度操作。 2018/12/8 《计算机操作系统》- 第3章

17 3.1 处理器调度的层次 内容 要点 高级调度-作业调度 中级调度 低级调度-进程调度 调度的本质 进程调度的概念 2018/12/8
3.1 处理器调度的层次 内容 高级调度-作业调度 中级调度 低级调度-进程调度 要点 调度的本质 进程调度的概念 2018/12/8 《计算机操作系统》- 第3章

18 低级调度-概念与功能 又称为进程调度、短程调度
按照一定的调度算法从内存的就绪进程队列中选择进程,为进程分配处理器,避免进程对处理器竞争的方法。 与作业调度和中级调度比较,进程调度发生的频率最高,作业调度发生的频率最低,中级调度主要用于内存管理,特别是虚拟存储器管理。 2018/12/8 《计算机操作系统》- 第3章

19 进程调度模型 低级调度-模型 只有进程调度的调度队列模型 2018/12/8 《计算机操作系统》- 第3章

20 进程调度模型 低级调度-模型 具有高、低两级调度的调度队列模型 2018/12/8 《计算机操作系统》- 第3章

21 进程调度模型 低级调度-模型 具有三级调度时的调度队列模型 2018/12/8 《计算机操作系统》- 第3章

22 低级调度-原因与机制 引起进程调度的主要原因如下: 机制: 处理器执行的进程完成任务,处理器空闲
处理器执行的进程转入阻塞状态,此时处理器空闲 处理器执行的进程被其它进程抢占 处理器执行的进程被挂起 机制: 排队器 分派器 上下文切换机制 2018/12/8 《计算机操作系统》- 第3章

23 低级调度-调度方式 思考:“抢占”可能带来的问题及原因? 非抢占方式: 抢占方式
如果执行进程正好在执行一个没有资源的无限循环,则执行进程不会放弃处理器,所有的就绪进程会永久等待,系统进入了一种僵持的状态。 非抢占方式: 简单,实时性差 抢占方式 时间片原则 优先权原则 短作业优先原则 指一个进程正在处理器中运行时,操作系统可以根据规定的抢占原则,将已经分配给进程的处理器从进程剥夺,并分配给其他的进程。 在系统允许抢占调度,并满足抢占条件的情况下,系统才可以采用抢占调度方式。 满足抢占条件的进程能够抢占当前正在执行进程的处理器。被抢占的进程状态从执行状态变为就绪状态,其进程控制块进入到进程就绪队列。 思考:“抢占”可能带来的问题及原因? 2018/12/8 《计算机操作系统》- 第3章

24 本章目录 3.1 处理器调度的层次 3.2 评价调度算法的准则 3.3 调度算法 3.4 线程调度 3.5 实时调度 3.6 多处理器调度
3.1 处理器调度的层次 3.2 评价调度算法的准则 3.3 调度算法 3.4 线程调度 3.5 实时调度 3.6 多处理器调度 3.7 Windows 2000/XP系统的处理器调度 2018/12/8 《计算机操作系统》- 第3章

25 3.2 评价调度算法的准则 内容 准则 评价指标 要点 指标含义 计算方式 2018/12/8 《计算机操作系统》- 第3章

26 调度算法的评价准则 面向用户的准则: 基本原则: 面向系统的准则: 周转时间短; 响应时间快; 具有公平性 截止时间的保证;
优先权准则 基本原则: 具有公平性 资源利用率高(特别是CPU利用率) 在交互式系统情况下要追求响应时间(越短越好) 在批处理系统情况下要追求系统吞吐量 面向系统的准则: 系统吞吐量高; 处理机利用率好; 各类资源的平衡利用 2018/12/8 《计算机操作系统》- 第3章

27 调度算法的评价指标 周转时间指用户作业提交给操作系统开始到作业完成为止的时间。周转时间通常是评价批处理系统性能、选择作业调度方式与算法的重要准则之一。 周转时间Ti = 作业在后备队列中的等待调度时间+进程在就绪队列上等待调度的时间+进程在CPU上的运行时间 + 进程等待I/O或其他事件发生的时间 作业的带权周转时间Tf  = 作业的周转时间Ti/系统为作业提供的服务时间Tsi 处理器利用率 CPU utilization 响应时间 response time 周转时间 turnaround time 系统吞吐量 throughput 在选择处理器的调度算法时,用户希望CPU利用率和系统吞吐量越大越好,响应时间和周转时间越小越好。 但是,通常情况下,系统希望的是能够合理利用处理器和各类资源,使作业的平均周转时间或带权周转时间小的调度算法。 对于实时系统,作业调度的关键在于能否满足作业的实时要求,对周转时间等指标并不特别着重。 处理器利用率为CPU有效工作时间与CPU总的运行时间之比,即: CPU利用率 = CPU有效工作时间/CPU总的运行时间 CPU总的运行时间 = CPU的有效工作时间 + CPU的空闲时间 响应时间是交互环境下用户从键盘提交第1个请求开始,到系统首次产生响应为止的时间,或者是屏幕上显示出结果为止的时间。 响应时间 = 从终端键盘输入的请求信息传送到处理机的时间 + 处理机对请求信息的处理时间 + 生成的响应信息回送到终端显示器的时间 单位时间内处理的进程数目为CPU的工作成效,单位时间内完成的进程数目为系统的吞吐量。 2018/12/8 《计算机操作系统》- 第3章

28 本章目录 3.1 处理器调度的层次 3.2 评价调度算法的准则 3.3 调度算法 3.4 线程调度 3.5 实时调度 3.6 多处理器调度
3.1 处理器调度的层次 3.2 评价调度算法的准则 3.3 调度算法 3.4 线程调度 3.5 实时调度 3.6 多处理器调度 3.7 Windows 2000/XP系统的处理器调度 2018/12/8 《计算机操作系统》- 第3章

29 3.3 调度算法 内容 作业调度算法 进程调度算法 要点 算法思想 指标计算 2018/12/8 《计算机操作系统》- 第3章

30 3.3 调度算法 内容 作业调度算法 进程调度算法 要点 算法思想 指标计算 2018/12/8 《计算机操作系统》- 第3章

31 作业调度算法 概念回顾 作业调度是在资源满足的条件下,将处于后备状态的作业调入内存,同时生成与作业相对应的进程,并为这些进程提供所需要的资源。 作业调度程序只保证被调度的作业有获得处理器的资格,而处理器的分配则需要进程调度才能完成。 主要算法 FCFS:先来先服务(First-Come First-Served) SJF:短作业优先(Shortest-Job-First) HRRF:响应比高者优先 HPF:优先权高者优先( Highest-Priority-First) 分类调度 2018/12/8 《计算机操作系统》- 第3章

32 FCFS:先来先服务 基本思想 算法评价 举例? 遵循先进入后备队列的作业,先进行调度的原则。 非抢占式算法 简单,易于编码实现
优先考虑作业的等待时间,没有考虑作业的执行时间长短、作业的运行特性和作业对资源的要求 算法评价 有利于长作业,不利于短作业 有利于CPU繁忙的作业,不利于I/O繁忙的作业 举例? 2018/12/8 《计算机操作系统》- 第3章

33 FCFS:先来先服务-例1 作业J1、J2、J3、J4依次到达作业后备队列,需要处理时间分别如下:J1为15ms,J2为5ms,J3为10ms,J4为3ms。 请给出作业执行的图示(横轴为时间,纵轴为作业) 请计算每个作业的等待时间和周转时间 请计算上述作业的平均等待时间和平均周转时间 2018/12/8 《计算机操作系统》- 第3章

34 FCFS:先来先服务-例2 如果4个作业A、B、C、D到达系统磁盘后备队列的顺序和需要执行的时间如下表所示。
到达时间(ms) 需要执行时间(ms) A 20 B 5 15 C 10 D 请给出作业执行的图示(横轴为时间,纵轴为作业) 请计算每个作业的周转时间和带权周转时间 请计算上述作业的平均周转时间和平均带权周转时间 2018/12/8 《计算机操作系统》- 第3章

35 SJF:短作业优先 基本思想 算法评价 举例? 根据作业控制块中作业申请时指出的执行时间,选取执行时间最短的作业优先调度。
抢占调度方式:只要就绪队列中出现了需要执行时间比当前正在运行作业的剩余处理时间更短的作业,则该作业会抢占当前正在运行的作业。 算法评价 克服FCFS调度算法对短作业不利的缺点,效率高,易 于编程实现 不利于长作业 预先估计作业的执行时间 举例? 2018/12/8 《计算机操作系统》- 第3章

36 SJF:短作业优先-例3 作业A、B、C、D需要处理的时间分别为20ms、15ms、10ms、5ms。 如果这4个作业同时到达作业后备队列
请给出采用短作业优先调度算法的作业执行图示 请计算平均周转时间和平均带权周转时间 如果这4个作业不是同时到达,A作业在0时间到达,B 作业在A作业之后5ms达到,C作业在A作业之后10ms 达到,D作业在A作业之后15ms达到 请给出采用短作业优先调度算法的作业执行图示 请计算平均周转时间和平均带权周转时间 如果A作业到达的时间为0,B、C、D作业达到系统的 时间分别改为1ms、2ms、3ms 请给出采用短作业优先调度算法的作业执行图示 请计算平均周转时间和平均带权周转时间 2018/12/8 《计算机操作系统》- 第3章

37 HRRF:响应比高者优先 初衷 响应比计算 抢占调度方式
FCFS调度算法只片面地考虑了作业的进入时间,短作业优先调度算法考虑了作业的运行时间而忽略了作业的等待时间。 响应比高者优先调度算法为这两种算法的折中。 响应比计算 作业的响应时间与作业需要处理的时间之比。 作业的响应时间为作业进入系统后的等待时间与作业要求处理器处理的时间之和。 抢占调度方式 2018/12/8 《计算机操作系统》- 第3章

38 HRRF:响应比高者优先 分析与评价 举例? 响应比高,可能是因为作业等待时间长,也可能是因为作业需要处理时间短。
响应比高优先调度算法不仅体现了等待时间长的作业会优先调度,而且还体现了处理时间短的作业也会优先调度。 该算法能够客观地对待长作业和短作业。 举例? 2018/12/8 《计算机操作系统》- 第3章

39 HRRF:响应比高者优先-例4 如果4个作业A、B、C、D到达系统磁盘后备队列的顺序和需要执行的时间如下表所示。
到达时间(ms) 需要执行时间(ms) A 20 B 5 15 C 10 D 计算各时间点的响应比及调度情况。 请给出作业执行的图示(横轴为时间,纵轴为作业) 请计算上述作业的平均周转时间和平均带权周转时间 2018/12/8 《计算机操作系统》- 第3章

40 FCFS、SJF、HRRF:比较 思考:对上述比较结果进行分析和评价。 作业 到达时间 需要处理 时间 FCFS周 转时间 SJF周转 时间
需要处理 时间 FCFS周 转时间 SJF周转 时间 HRRF调 度算法 A 20 B 5 15 30 45 C 10 35 25 40 D 平均周转时间 30.00 25.00 28.75 平均带权周转时间 3.38 1.97 3.00 思考:对上述比较结果进行分析和评价。 2018/12/8 《计算机操作系统》- 第3章

41 HPF:优先权高者优先 基本思想 评价 举例? 根据作业的优先权进行作业调度,每次总是选取优先权高的作业调度。
作业的优先数可由系统或用户给定。 评价 综合考虑了作业的执行时间和等待时间的长短、作业的缓急程度、作业对外部设备的使用情况等因素 根据系统设计目标和运行环境而给定各作业的优先权,决定作业调度的先后顺序。 举例? 2018/12/8 《计算机操作系统》- 第3章

42 HPF:优先权高者优先-例5 思考:动态优先权的“动态性”体现?
作业A、B、C、D一起达到,需要处理的时间分别为25ms、5ms、10ms、3ms,优先数分别为154、139、149、130,优先数越大、优先级越低。 请给出采用优先权高者优先调度算法的作业执行图示 请计算平均周转时间和平均带权周转时间 静态优先权 动态优先权 思考:动态优先权的“动态性”体现? 2018/12/8 《计算机操作系统》- 第3章

43 综合:分类调度算法 目的: 基本思想 均衡使用系统资源 兼顾不同大小的作业 按照使用系统资源或作业的大小的不同 首先分别对作业进行分类
然后再根据作业的类型进行调度 还可以进一步将同一类别的作业再按照优先级进行排队 2018/12/8 《计算机操作系统》- 第3章

44 3.3 调度算法 内容 作业调度算法 进程调度算法 要点 算法思想 指标计算 2018/12/8 《计算机操作系统》- 第3章

45 进度调度算法 概念回顾 主要算法 进程调度算法是低级调度算法。
在传统操作系统中,进程为资源分配和调度的基本单位,是操作系统中发生频率最高的调度。 主要算法 FCFS:先来先服务(略) TRR:时间片轮转调度算法 优先级调度算法 MQ:多级队列调度算法 MFQ:多级反馈队列调度算法 2018/12/8 《计算机操作系统》- 第3章

46 TRR:时间片轮转调度算法 基本思想 举例? 分时思想 首先将处理器的处理时间划分为大小相等的时间片。
调度程序每次从就绪队列中选择队首的进程,为之分配处理器的一个时间片并让进程运行。 当进程运行的时间片到时,强迫进程放弃处理器,到就绪队列中再次排队,并将处理器的下一个时间片分配给就绪队列中队首的进程。 所有就绪队列中的进程按照这样的形式轮转使用处理器时间片。 举例? 2018/12/8 《计算机操作系统》- 第3章

47 TRR:时间片轮转调度算法-例6 思考:时间片大小与平均周转时间的关系?
进程A、B、C、D需要处理的时间分别为20ms、10ms、15ms、5ms,在0时间达到。达到的先后顺序为A→B→C→D。 请给出不同时间片下的调度图示; 请计算不同时间片下的平均周转时间。 A:时间片为1 A:时间片为5 A:时间片为10 思考:时间片大小与平均周转时间的关系? 2018/12/8 《计算机操作系统》- 第3章

48 TRR:时间片轮转调度算法 思考:固定大小时间片与可变大小时间片? 分析与评价 抢占式调度算法
进程切换以时间片为单位,系统的花销主要体现在进程切换上。 当时间片很小时,切换的频率高,时间片花销大。 当时间片过大时,进程切换开销减小,但是进程轮转一次需要的等待时间增加,周转时间增加。 当时间片大到每个进程足以完成时,时间片调度算法便退化为FCFS算法。 时间片大小的取值需要考虑系统中进程个数、进程切换开销、响应时间、系统效率等多种因素。 思考:固定大小时间片与可变大小时间片? 2018/12/8 《计算机操作系统》- 第3章

49 优先级调度算法-例7 同时达到的进程P1、P2、P3、P4,它们的优先数分别为80、70、75、65,数字越大表示进程优先级越高,需要处理的时间分别是20ms、15ms、25ms、30ms。 请给出采用优先级算法的调度图示; 请计算平均周转时间和平均带权周转时间。 2018/12/8 《计算机操作系统》- 第3章

50 MQ:多级队列调度算法 基本思想 根据进程的类型不同,将进程就绪队列分为若干个独立的就绪队列,不同的就绪队列采用不同的调度算法,同一个就绪队列采用同一种进程调度算法。 主要用于有多组就绪进程的操作系统,如有批处理用户作业的进程和终端用户进程,批处理用户作业的进程运行在后台,终端用户的进程运行在前台。 一个作业的进程固定划分到一个就绪队列中。按照用户作业的性质不同,就绪队列进行不同组织。 2018/12/8 《计算机操作系统》- 第3章

51 若进程采用“可抢占的最高优先级”调度算法,且忽略调度等所需的时 间,请回答有下列问题:
1)进程P1、P2、P3从开始到完成所用的时间分别是多少(要求用坐标 画出三个进程的工作过程,其中横坐标表示时间,纵坐标表示CPU和IO 设备)。 2)这三个进程从开始到全部完成时CPU的利用率是多少?IO1和IO2 的利用率是多少? 作业-进程调度 某多道程序设计系统中配有一台处理器CPU和两台输入/输出设备IO1和IO2。现有优先级由高到低的3个进程P1、P2、P3同时存在,它们使用资源的先后顺序和占用时间分别是: 进程P1: 进程P2: 进程P3: IO2(30ms)-CPU(10ms)-IO1(30ms)-CPU(10ms)-IO2(10ms) IO1(20ms)-CPU(20ms)-IO1(40ms) CPU(30ms)-IO2(20ms) 2018/12/8 《计算机操作系统》- 第3章

52 本章目录 3.1 处理器调度的层次 3.2 评价调度算法的准则 3.3 调度算法 3.4 线程调度 3.5 实时调度 3.6 多处理器调度
3.1 处理器调度的层次 3.2 评价调度算法的准则 3.3 调度算法 3.4 线程调度 3.5 实时调度 3.6 多处理器调度 3.7 Windows 2000/XP系统的处理器调度 2018/12/8 《计算机操作系统》- 第3章

53 现代OS中,进程是资源分配的基本单位,线程是调度的基本单位。因此,低级调度为线程调度。
由于线程需要进程环境的支撑,因此,线程调度与线程和进程之间的关系有关。 线程的实现方式有: 用户级线程 内核级线程 2018/12/8 《计算机操作系统》- 第3章

54 现代OS中,进程是资源分配的基本单位,线程是调度的基本单位。因此,低级调度为线程调度。
由于线程需要进程环境的支撑,因此,线程调度与线程和进程之间的关系有关。 线程的实现方式有: 用户级线程 内核级线程 2018/12/8 《计算机操作系统》- 第3章

55 内核看不见用户级线程,内核按照进程调度分配处理器。
用户级线程存在于用户地址空间 内核在进程调度时,根据相应的进程调度算法。在每个进程分得的时间片中,由线程调度算法决定该进程中的线程怎样共享这个时间片,决定哪个线程首先被处理器运行。 线程调度算法与进程调度算法没有关系 为实现简单,线程调度算法会选择FCFS的方式。 2018/12/8 《计算机操作系统》- 第3章

56 内核看不见用户级线程,内核按照进程调度分配处理器。
用户级线程存在于用户地址空间 内核在进程调度时,根据相应的进程调度算法。在每个进程分得的时间片中,由线程调度算法决定该进程中的线程怎样共享这个时间片,决定哪个线程首先被处理器运行。 线程调度算法与进程调度算法没有关系 为实现简单,线程调度算法会选择FCFS的方式。 2018/12/8 《计算机操作系统》- 第3章

57 内核会根据线程调度算法选择一个处于就绪状态的内核级线程运行。
线程调度在处理器调度中起决定作用。 内核会根据线程调度算法选择一个处于就绪状态的内核级线程运行。 在选择线程时,内核不会考虑该线程属于哪一个进程,对所有进程的所有线程都公平对待,任何一个线程都被看作一个独立的线程。 线程最大的优势在于应用在多处理器环境下 2018/12/8 《计算机操作系统》- 第3章

58 内核会根据线程调度算法选择一个处于就绪状态的内核级线程运行。
线程调度在处理器调度中起决定作用。 内核会根据线程调度算法选择一个处于就绪状态的内核级线程运行。 在选择线程时,内核不会考虑该线程属于哪一个进程,对所有进程的所有线程都公平对待,任何一个线程都被看作一个独立的线程。 线程最大的优势在于应用在多处理器环境下 2018/12/8 《计算机操作系统》- 第3章

59 本章目录 3.1 处理器调度的层次 3.2 评价调度算法的准则 3.3 调度算法 3.4 线程调度 3.5 实时调度 3.6 多处理器调度
3.1 处理器调度的层次 3.2 评价调度算法的准则 3.3 调度算法 3.4 线程调度 3.5 实时调度 3.6 多处理器调度 3.7 Windows 2000/XP系统的处理器调度 2018/12/8 《计算机操作系统》- 第3章

60 实时调度要求能够控制实时进程,满足实时任务的时间限制。
实时操作系统中的处理器调度为实时调度。 实时调度要求能够控制实时进程,满足实时任务的时间限制。 在实时系统中,衡量调度性能的指标不是周转时间和等待时间,而是能否满足实时任务的截止时间要求。 2018/12/8 《计算机操作系统》- 第3章

61 3.5.1 实时调度需要满足的条件 实时任务截止时间是实时调度的基本指标。 实时调度需要满足如下条件:
实时调度需要满足的条件 实时任务截止时间是实时调度的基本指标。 实时调度需要满足如下条件: 系统向实时调度提供与实时任务相关的信息 对系统处理能力的衡量 抢占调度和快速切换机制 2018/12/8 《计算机操作系统》- 第3章

62 与实时任务相关的信息(1) 就绪起始时间 截止时间 实时任务对应的进程被创建并加入到进程就绪队列
如果实时任务是周期任务,就绪起始时间是一个时间串 如果实时任务是非周期任务,就绪起始时间是一个预知的值 截止时间 当实时系统中的实时任务发生时,实时系统中的就绪进程按照进程的截止时间进行排列 对于周期性实时任务,截止时间为下一次任务发生的时间 对于非周期性实时任务,任务的所有者需要提供截止时间 2018/12/8 《计算机操作系统》- 第3章

63 与实时任务相关的信息(2) 处理时间 实时任务的资源需求 实时任务的优先级
实时任务从开始到完成所需要的时间。可由实时任务的所有者提供,也可以由系统提供 实时任务的资源需求 实时任务执行时所需要的一组资源 实时任务的优先级 用户或系统需要为每个实时任务指定优先级,作为调度的依据 2018/12/8 《计算机操作系统》- 第3章

64 实时系统中,可能因为处理器的处理能力不足而影响实时任务的完成,或导致系统产生故障。
对系统处理能力的衡量 实时系统中,可能因为处理器的处理能力不足而影响实时任务的完成,或导致系统产生故障。 单处理器情况下系统对周期性的实时任务的处理,必须满足下列条件: 其中,i表示周期事件,Pi为周期事件i发生的周期,Ci为需要处理器的处理时间。 2018/12/8 《计算机操作系统》- 第3章

65 当系统不能调度这些周期性实时任务时,可以通过提高处理器的处理能力的方法减少每个周期任务的处理时间;或者采用多处理器系统,提高处理能力。
对系统处理能力的衡量 当系统不能调度这些周期性实时任务时,可以通过提高处理器的处理能力的方法减少每个周期任务的处理时间;或者采用多处理器系统,提高处理能力。 如果采用的处理器数目为N,则处理条件变为: 2018/12/8 《计算机操作系统》- 第3章

66 抢占调度和快速切换机制 在要求严格的实时系统中,允许一个优先权高的实时任务抢占优先权低的实时任务
在实际应用中,判断能否满足截止时间要求不是一件容易的事 快速切换机制可以实现对实时任务的快速切换 快速切换机制用硬件装置实现快速中断机构,做到尽量不漏掉实时任务的中断,禁止中断的时间越短越好 在软件实现上,也可以通过提高分派程序对任务切换的速度,以提高系统的性能。 2018/12/8 《计算机操作系统》- 第3章

67 3.5.2 实时调度算法 实时调度算法分为: 动态实时调度算法在实时任务运行时作出调度决策。
实时调度算法 实时调度算法分为: 动态实时调度算法在实时任务运行时作出调度决策。 静态实时调度算法在系统启动实时任务之前作出调度决策。 2018/12/8 《计算机操作系统》- 第3章

68 常用的实时调度算法 -- 抢占式调度算法 常用于要求严格的实时系统中 基于时钟中断的优先权抢占调度算法 立即抢占调度算法 单比率调度算法
如果某实时任务的优先级高于正在运行的任务,该实时任务并不立刻抢占,而是等到时钟中断到来时,才抢占。 立即抢占调度算法 一旦出现外部中断,只要系统不处于临界区,系统立即剥夺当前执行的任务,把处理器分配给当前紧急的任务。 单比率调度算法 事先为每个实时任务分配一个与任务发生频率成正比的优先级,运行频率越高的任务,其优先级越高。运行时优先级高的任务可以抢占优先级低的任务。 2018/12/8 《计算机操作系统》- 第3章

69 常用的实时调度算法 -- 非抢占式调度算法 实时调度中,对于实时要求不太严格的系统,可以采用非抢占式调度 非抢占式轮转调度算法
运行完一个对象的实时任务(将其挂在队列尾,等待下次运行),再运行另一个对象的实时任务。所有实时任务轮转。 非抢占式优先级调度算法 系统按照优先级进行非抢占调度。要求紧迫的实时任务赋予高的优先级,排在就绪队列队首,先进行调度。 期限调度算法 根据实时任务的截止期限进行就绪队列的排队,截至期限短的实时任务排在队首,首先进行调度。 2018/12/8 《计算机操作系统》- 第3章

70 常用的实时调度算法举例 实时系统中有一组实时任务A、B、C、D、E,CPU处理时间分别为325ms、225ms、160ms、95ms、420ms,截止时间分别为690ms、675ms、无期限、135ms、1 100ms。 如果采用最小截止期限优先调度算法,这些进程调度的顺序为? 2018/12/8 《计算机操作系统》- 第3章

71 常用的实时调度算法举例 实时系统中有一组实时任务A、B、C、D、E,CPU处理时间分别为325ms、225ms、160ms、95ms、420ms,截止时间分别为690ms、675ms、无期限、135ms、1 100ms。 采用最小截止期限优先调度算法,进程调度的顺序为:D→B→A→E→C 2018/12/8 《计算机操作系统》- 第3章

72 本章目录 3.1 处理器调度的层次 3.2 评价调度算法的准则 3.3 调度算法 3.4 线程调度 3.5 实时调度 3.6 多处理器调度
3.1 处理器调度的层次 3.2 评价调度算法的准则 3.3 调度算法 3.4 线程调度 3.5 实时调度 3.6 多处理器调度 3.7 Windows 2000/XP系统的处理器调度 2018/12/8 《计算机操作系统》- 第3章

73 多处理器调度 计算机系统有多个处理器,多个处理器的调度称为多处理器调度。多处理器调度与多处理器系统的结构形式有关: 松耦合多处理器系统
每个处理器相对独立,拥有自己的内存和I/O通道。多处理器调度对系统中的每个处理器,采取与单处理器调度相同的方法。 紧耦合多处理器系统 多个处理器共享内存和外围设备,处理器的相对独立性差。在这种多处理器系统中,处理器调度方法比较复杂。 2018/12/8 《计算机操作系统》- 第3章

74 多核处理器是在一个处理器中封装多个处理核(单元),每个核都具有处理能力。
多核处理器相当于共用内存和外围设备的多处理器,在原理上多核处理器属于紧耦合多处理器系统。 2018/12/8 《计算机操作系统》- 第3章

75 在多处理器系统中,不但存在多处理器的并行,还存在单处理器的并发。
多处理器中同步的粒度 在多处理器系统中,不但存在多处理器的并行,还存在单处理器的并发。 多处理器中同步的粒度指系统中的多个进程或线程之间同步的频率,是描述多处理器系统特征和进程并发度的重要指标。 根据进程或线程之间同步的周期划分为5个层次:细粒度并行、中粒度并行、粗粒度并行、超粗粒度并行、独立并行。 2018/12/8 《计算机操作系统》- 第3章

76 同步的周期 细粒度并行 中粒度并行 粗粒度并行 超粗粒度并行 独立并行 同步周期小于20条指令,非常复杂的并行操作,属于超高并行度应用
同步周期为20~200条指令。此类应用适合于多线程技术实现,多线程并发执行,降低OS在进程切换上的开销。 粗粒度并行 同步周期为200~2 000条指令,此类应用适用于多进程并发实现。 超粗粒度并行 同步周期为2 000条指令以上,进程之间的交互频率非常小。 独立并行 进程之间没有明显的同步,每个进程都代表独立的应用或作业。 2018/12/8 《计算机操作系统》- 第3章

77 一个具有细粒度和中粒度并行的线程应用,由于线程之间的交互非常频繁,线程的调度策略对整个系统的性能有很大影响。
同步的周期 一个具有细粒度和中粒度并行的线程应用,由于线程之间的交互非常频繁,线程的调度策略对整个系统的性能有很大影响。 对具有独立并行的进程、具有粗粒度并行的进程和超粗粒度并行的进程,进程的调度策略与多道程序系统相似。 2018/12/8 《计算机操作系统》- 第3章

78 多处理器调度策略的设计比单处理器复杂,其设计要点包括: 多处理器分配策略 如何在每个处理器上支持多道线程 如何从就绪队列中指派进程
多处理器调度的设计要点 多处理器调度策略的设计比单处理器复杂,其设计要点包括: 多处理器分配策略 如何在每个处理器上支持多道线程 如何从就绪队列中指派进程 2018/12/8 《计算机操作系统》- 第3章

79 多处理器分配策略 (1)结构上多个处理器地位相同 静态分配策略 动态分配策略 多处理器对内存和I/O设备的访问方式相同,地位相当
所有处理器放在一个处理器池中 静态分配策略 在进程创建时系统把所创建的进程永久分配给一个处理器,每个处理器对应一个进程调度队列。 动态分配策略 所有处理器共用一个进程就绪队列,当某个处理器空闲时,系统从进程就绪队列中调度一个进程运行。 优点:实现简单,调度代价低 缺点:容易造成处理器之间工作负荷不均匀 2018/12/8 《计算机操作系统》- 第3章

80 多处理器分配策略 (1)结构上多个处理器地位相同 静态分配策略 动态分配策略 多处理器对内存和I/O设备的访问方式相同,地位相当
所有处理器放在一个处理器池中 静态分配策略 在进程创建时系统把所创建的进程永久分配给一个处理器,每个处理器对应一个进程调度队列。 动态分配策略 所有处理器共用一个进程就绪队列,当某个处理器空闲时,系统从进程就绪队列中调度一个进程运行。 优点: 简单、方便,利于提高系统效率 缺点: 进程在不同处理器之间切换,系统调度进程开销大 2018/12/8 《计算机操作系统》- 第3章

81 多处理器分配策略 (2)结构上多个处理器地位不同
如果各处理器之间对内存和I/O设备的地位和访问方式不相同,则系统可将多个处理器分为主处理器和从处理器,主处理器管理从处理器。 OS核心运行在主处理器上,所有的调度策略由主处理器上的OS核心决定,多处理器调度需要考虑每个处理器的工作负荷。 优点: 处理器调度效率非常高,甚至比单处理器下的多道程序系统还高。 缺点: 整个系统过分依赖主处理器上运行的OS核心,如果OS核心出现问题或主处理器出现问题,多处理器系统会全面崩溃。 2018/12/8 《计算机操作系统》- 第3章

82 多处理器系统如果不采用主从方式,可以采用分布式管理结构。
多处理器分配策略 多处理器系统如果不采用主从方式,可以采用分布式管理结构。 在分布式管理结构下,OS可以在所有处理器上执行,每个处理器都可以自我调度,系统的可靠性更高。 缺点:实现非常复杂,在操作系统之间很难保持同步。 2018/12/8 《计算机操作系统》- 第3章

83 综合主从式系统和分布式系统的优点,CMU的Mach操作系统就是一个典范。
多处理器分配策略 综合主从式系统和分布式系统的优点,CMU的Mach操作系统就是一个典范。 支持线程的操作系统 建立二级线程队列,实现多处理器下线程调度 第1级为一个全局共享的就绪线程队列 第2级为每一个处理器的局部就绪线程队列 第2级队列中所有线程都已调度完,系统才到全局就绪线程队列中按照动态调度策略分配线程 2018/12/8 《计算机操作系统》- 第3章

84 如何在多处理器系统的每个处理器上支持多道线程,是多处理器系统调度的难点。 (1)粗粒度并发、超粗粒度并发和独立并发的进程
如何在每个处理器上支持多道线程 如何在多处理器系统的每个处理器上支持多道线程,是多处理器系统调度的难点。 (1)粗粒度并发、超粗粒度并发和独立并发的进程 一个处理器上实现多进程并发,在多个处理器上实现多进程并行都是可能的 (2)中粒度并发的进程,或细粒度并发的线程 调度方式需分别针对不同的线程实现进行分析 2018/12/8 《计算机操作系统》- 第3章

85 对从就绪队列中选择哪个进程运行的问题,在单处理器的进程调度算法中有先来先服务、优先级高者优先等很多方法。
如何从就绪队列中指派进程 对从就绪队列中选择哪个进程运行的问题,在单处理器的进程调度算法中有先来先服务、优先级高者优先等很多方法。 对多处理器系统,如果进程调度算法太复杂,调度算法的实现会使系统付出过高的代价。 因此,在选择调度算法上强调的是算法使系统运行简单有效和代价低。 2018/12/8 《计算机操作系统》- 第3章

86 多处理器系统中,进程与线程并发,多处理器调度中非常典型的是线程调度 1.负载共享调度算法 2.群调度算法 3.处理器指定调度算法
线程调度策略 多处理器系统中,进程与线程并发,多处理器调度中非常典型的是线程调度 1.负载共享调度算法 2.群调度算法 3.处理器指定调度算法 4.动态调度算法 2018/12/8 《计算机操作系统》- 第3章

87 负载共享调度算法 如果多处理器系统是中粒度并发的进程,细粒度并发的线程,当一个处理器空闲时,系统从全局共享线程队列中选择一个就绪线程占有处理器运行。线程调度的方法有: 先来先服务 所有线程按照到来的先后顺序排在就绪队列 最小线程数优先 进程包含的未被调度线程数最少,进程获最高优先级 抢占的最小数线程优先 刚到达进程包含的线程数少于正执行的进程的线程数时,可抢占 2018/12/8 《计算机操作系统》- 第3章

88 负载共享调度算法 优点: 缺点: 所有处理器均衡分配负载,不会出现作业没有完成而处理器空闲的现象。
一旦有处理器空闲,OS就能在该处理器上运行调度程序,选出下一个线程。线程调度不需要集中的调度程序。 就绪队列可以按照单处理器下的各种方式进行组织,调度算法也可以按照单处理器所用的算法。 缺点: 就绪线程队列占据内存,互斥访问。 被抢占的进程在同一个处理器上恢复运行的概率很小,而要在另一个处理器上恢复高速缓存的信息会增加系统开销。 所有线程被置于公共线程池中,所有线程获得处理器的机会相同,同一进程的所有线程不可能同时占有处理器,同一进程的所有线程不可能只在一个处理器上运行。进程切换会影响系统的性能。 2018/12/8 《计算机操作系统》- 第3章

89 把属于一个进程的一组线程在同一时间一次性地调度到一组处理器上运行。该调度算法主要用于组成一个进程的一组线程的调度
群调度算法 把属于一个进程的一组线程在同一时间一次性地调度到一组处理器上运行。该调度算法主要用于组成一个进程的一组线程的调度 优点: 当紧密相关的线程同时执行时,同步造成的等待时间会减少,线程切换也相应减少,系统性能得到提高。 由于算法一次性同时调度一组处理器,调度的耗费会减少。 2018/12/8 《计算机操作系统》- 第3章

90 群调度将多个属于同一进程的线程一起调度,以进程为单位分配处理器的时间片,比以单个线程为单位进行调度更节约调度耗费。
群调度算法 群调度将多个属于同一进程的线程一起调度,以进程为单位分配处理器的时间片,比以单个线程为单位进行调度更节约调度耗费。 这样做会使每个应用程序所含有线程数目不同,系统需要处理的工作量不同,而引起处理器工作负荷不均匀,造成一些处理器负担过重,一些处理器空闲,最终导致处理器处理时间浪费等问题。 2018/12/8 《计算机操作系统》- 第3章

91 群调度算法应用于一个进程的多个并发线程时,多线程并行执行具有较好系统效率。 因此,它仍然被广泛应用在支持并行的多处理器系统中。
2018/12/8 《计算机操作系统》- 第3章

92 处理器指定调度算法与静态分配调度算法非常相似 调度器指派调度算法针对一个进程有多个线程而言,给属于一个进程的一组线程专门指派一组处理器
一旦该进程被调度,它的每一个线程都被分配了一个处理器,这些线程一直占有这些处理器运行,直到整个进程结束。 2018/12/8 《计算机操作系统》- 第3章

93 处理器指定调度算法中,系统要付出的代价是处理器时间的浪费。 处理器指定调度算法从表面上看,系统性能较低。
但是,其通过线程在不同处理器上的高度并行使应用程序具有最快的执行速度,缩短了进程的整个生命周期,避免了线程处理中的切换。 2018/12/8 《计算机操作系统》- 第3章

94 动态调度算法 动态调度算法也称合作调度算法,由操作系统和应用进程共同合作完成调度。
OS负责在进程之间分配处理器,进程完成所属线程的处理器分配。 动态调度算法适合用于一个作业中有多个线程,即一个进程中有多个线程的情况。至于单线程进程,则不适合用该调度算法。 动态调度算法比群调度和处理器指定调度更有利于提高系统性能。 2018/12/8 《计算机操作系统》- 第3章

95 本章目录 3.1 处理器调度的层次 3.2 评价调度算法的准则 3.3 调度算法 3.4 线程调度 3.5 实时调度 3.6 多处理器调度
3.1 处理器调度的层次 3.2 评价调度算法的准则 3.3 调度算法 3.4 线程调度 3.5 实时调度 3.6 多处理器调度 3.7 Windows 2000/XP系统的处理器调度 2018/12/8 《计算机操作系统》- 第3章

96 Windows 2000/XP作为一个商用的操作系统,其根本目的是为用户提供交互式的计算环境和各种服务器功能,因而,用户对其性能的要求很高。
对称多处理器系统上的线程调度 2018/12/8 《计算机操作系统》- 第3章

97 作业通过发送电子邮件附件形式提交到助教老师邮箱:
练习 3.14 ~ 3.20 作业通过发送电子邮件附件形式提交到助教老师邮箱: 谢昭阳 (周二) 赵 静 (周四) 作业文件名命名要求: OS_学号_姓名_n.doc (n为当章节序号) 如一个合法文件名: OS_95002_张三_3.doc 2018/12/8 《计算机操作系统》- 第3章

98 Any Question? Thank you ! 2018/12/8 《计算机操作系统》- 第3章


Download ppt "操作系统原理 Operating System Principles"

Similar presentations


Ads by Google