Presentation is loading. Please wait.

Presentation is loading. Please wait.

操作系统 (处理器管理) 徐锋 Email: xf@nju.edu.cn 南京大学计算机科学与技术系.

Similar presentations


Presentation on theme: "操作系统 (处理器管理) 徐锋 Email: xf@nju.edu.cn 南京大学计算机科学与技术系."— Presentation transcript:

1 操作系统 (处理器管理) 徐锋 南京大学计算机科学与技术系

2 主要内容 什么是处理器管理? 处理器的相关知识 中断技术 进程与线程 处理器调度 作业管理与调度 低级调度

3 什么是处理器管理? 处理器管理是操作系统的重要组成部分,负责管理、调度和分派计算机系统的重要资源——处理器,并控制程序执行。 涉及两方面内容
运行的程序(进程)

4 处理器的相关知识 处理器 寄存器 机器指令 处理器状态 程序状态字(PSW, Program Status Word)

5 处理器 内部组成: 控制器 运算器 寄存器 中断装置 输入/输出电路 高速缓存(Cache)

6 寄存器 通用寄存器 数据寄存器 地址寄存器 I/O地址寄存器 I/O缓冲寄存器 控制寄存器 程序计数器 指令寄存器 中断寄存器

7 机器指令 指令是指示计算机执行某些操作的命令,一台计算机的所有指令的集合,称为指令系统,反映机器的功能和能力 指令系统可分为: 指令分类
复杂指令系统(CISC)、精简指令系统(RISC) 指令分类 按功能分: 运算(算术运算、逻辑运算、移位运算) 程序控制(转移、子程序调用、返回) 数据传送(一般传送、堆栈操作、数据交换) 输入/输出指令 按使用者分: 特权指令,仅供操作系统内核调用 非特权指令

8 处理器状态 特权指令的执行限制,使处理器必须能区分当前运行的程序是操作系统还是普通应用程序 处理器状态: 中断导致状态转换
管理状态(特权状态、系统状态、特态、管态),能执行所有机器指令 用户状态(目标状态、用户模式、常态、目态),只能执行非特权指令 中断导致状态转换 程序请求操作系统服务 产生中断事件

9 程序状态字(PSW) 用于区别不同的处理器工作状态 每个程序都有一个与其执行相关的PSW,而每个处理器均设置一组相关寄存器用于存储PSW信息
程序基本状态(程序计数器、条件码、状态位) 中断码 中断屏蔽位

10 中断技术 什么是中断? 中断源分类 中断装置 中断处理程序 中断的优先级和多重中断

11 什么是中断? 中断是用来向CPU报告某设备已完成某项操作的手段,是并发程序的基础。
中断事件处理需要硬件(中断装置)和软件(中断处理程序)配合完成。

12 中断源分类 中断源: 按中断事件的性质和激活的手段分: 引起中断的事件 强迫性中断事件 自愿性中断事件
机器故障、程序性错误(异常)、外部中断、输入输出中断事件、… 自愿性中断事件 调用访管指令

13 中断源分类 内外的划分标准: 按中断信号的来源分: 处理器和主存为内,其他硬件为外 外中断(中断) 内中断(异常)
电源故障中断、时钟中断(外部)、控制台中断、输入输出中断、… 内中断(异常) 通路校验错、主存奇偶校验错、非法操作码、地址越界、页面失效、调试指令、访管中断、算术操作溢出、…

14 中断与异常的区别 中断特点: 异常特点: 与现行指令无关 发生时间与CPU所处状态无关 两条指令之间才能响应中断 可被屏蔽 可嵌套
由现行指令执行而引起 在目态发生 可在一个指令周期内处理 不可屏蔽、不可嵌套 可细分为: 出错,处理完后回到当前出错指令 陷入,处理完后执行下一条指令(常用于系统功能调用)

15 中断装置 定义: 具体功能: 发现中断源并产生中断的硬件,通常包括逻辑电路和中断寄存器 捕获中断源,响应中断请求 保护现场
启动处理中断事件的中断处理程序,CPU从目态切换为管态

16 32位处理器的PC机通常的中断硬件结构 IRQ0 时钟 键盘 主中断 控制器 tty2 系统数据总线 tty1 INT CPU
INTA

17 中断装置工作过程演示 内存 1#中断向量 现行PSW PSW寄存器 中断源 控制 中断装置 中断控制部件 1 中断寄存器

18 中断处理程序 处理中断事件的程序 具体功能: 实现方法: 保护一些未被硬件保护的现场信息 识别中断源,分析中断产生的原因 处理发生的中断事件
恢复正常操作 实现方法: 向量地址是中断服务程序的入口 中断向量表 0#入口地址 1 1#入口地址 3 3#入口地址 处理程序段

19 中断事件处理 中断和异常的一般处理过程 硬件故障中断 程序性中断(浮点溢出、非法指令) 输入输出中断 访管中断 时钟中断 I/O操作正常结束
设备报道或设备结束 访管中断 时钟中断

20 中断的优先级 优先级 同时有多个中断事件发生时,中断装置按一定顺序对其作出响应,其先后顺序即优先级 优先级设定的原则
按造成计算机系统出错的严重程度划分 例,机器校验中断 》自愿性中断 》程序性中断 》外部中断 》输入输出中断 》重启动中断

21 中断的优先级和多重中断 中断优先级的设计导致: 中断屏蔽 高优先级的中断响应过程中,应屏蔽低优先级的中断
有些中断是不能被屏蔽的,如自愿访管中断

22 多重中断事件的处理 中断处理过程中,又产生了新的中断事件 串行处理 嵌套处理 即时处理 中断处理过程中关中断
开中断,暂停当前执行的中断处理程序,转而执行更高优先级的中断处理程序 即时处理 主要针对中断处理程序执行过程中发生的程序性中断

23 Linux中断处理 上半部分处理 程运行 ret_from_sys_call 程运行运行 do_signal( ) 中断 自陷 慢中断
快中断 进程正在运行 用户态 核心态 上半部分处理 返回原进 程运行 排队下半部分 快中断处理 系统调用处理 从系统调用返回 ret_from_sys_call 调用schedule( ) 调度新进 程运行运行 调度下半部分do_bottom_half( )/ do_softirq( ) 处理积累的信号 do_signal( ) restore_all

24 快中断与慢中断区别 慢中断处理前需要保存所有寄存器的值,而快中断仅需保存会被内核使用的寄存器的值
慢中断处理时,不关中断,快中断处理时,关中断 慢中断处理完成后,通常不立即返回被中断进程,而是转而执行调度程序。快中断处理完成后,通常返回被中断进程继续执行

25 Minix中断处理 类似于linux的低半处理方式 目的:为了缩短屏蔽中断的时间, 提高系统并发工作的能力
一种任务延迟处理机制, 核心代码在关中断的核心态完成与中断事件有关的基本处理, 另外一部分耗时的工作留在中断处理例程之外, 在开中断的非核心态完成。 这些非核心态运行的代码,在Minix中被组织成与设备基本相对应的任务(驱动程序)进程,如磁盘任务、终端任务、时钟任务等等, 其中中断任务需要对应如键盘, RS232串口等硬件.

26 信号机制 一种模拟硬件中断的简单通信机制(软件中断) signal, kill POSIX定义的信号类型(终端,Ctrl+C,2)
内核向进程(进程发生异常,向其通知) 进程向进程(进程间通信,发送某个事件) signal, kill POSIX定义的信号类型(终端,Ctrl+C,2) Ctrl + Z,SIGSTOP

27 信号的检测与处理流程 当前进程因中断/异常而进入核心态 用户空间 应用程序 继续执行 发送信号 执行信号处理程序 断点 断点返回 系统空间
信号处理程序执行结束,执行sigreturn( ) 系统空间 中断或异常服务 当前进程因中断/异常而进入核心态 在返回用户态之前,调用do_signal( ),handle_signal( )转向用户空间执行信号处理程序 陷入内核后执行善后工作 从内核返回用户空间

28 进程 进程是现代操作系统中最基本、最重要的概念 两个角度看进程概念: 为什么引入进程? 从理论角度看,进程是对正在运行的程序活动规律的抽象
从实现角度看,进程是一种数据结构 为什么引入进程? 刻画系统的动态性、发挥系统的并发性,提高资源利用率(并发程序设计的工具) 解决共享性,正确描述程序的执行状态(标识程序的多次运行)

29 程序共享性——可再入,可再用 可再入程序,只有代码部分,调用方提供工作区,可同时被多个程序调用
可再用程序,调用过程中可修改自身数据,一次只能被一个程序调用,串行 对于可再入程序的多次运行,难以用程序本身来标识,需引入新的概念——进程

30 进程的定义与性质 定义 进程(process)是一个可并发执行的具有独立功能的程序关于某个数据集合的一次执行过程,也是操作系统进行资源分配和保护的基本单位。 性质 结构性 共享性 动态性 独立性 制约性 并发性

31 进程的状态和转换 三态模型 运行态 选中 出现等待事件 落选 就绪态 等待态 等待结束 阻塞态、睡眠态

32 进程的状态和转换 五态模型 终止态 运行态 新建态 选中 出现等待事件 落选 就绪态 等待态 等待结束

33 具有挂起功能的系统 什么是进程挂起? 为什么要挂起进程? 将进程对换到外部存储器上,释放其占有的系统资源,排除在进程调度之外
提高系统资源的利用率 减轻系统的负载 调试程序、排除故障

34 具有挂起状态的状态转换模型 等待事件结束 挂起 提交 解除挂起 解除挂起 挂起 挂起 提交 等待事件结束 挂起就绪态 挂起等待态 运行态
新建态 终止态 提交 就绪态 等待态 等待事件结束

35 进程的描述 操作系统的控制结构 通常以表的方式来管理和维护 常见的四类表 进程1内存映像 存储表 存储器 I/O表 设备 文件表 文件
进程表 进程1内存映像 进程N内存映像

36 进程的描述 进程的内存映像 进程控制块 (PCB) 用户堆栈 用户私有地址空间 (代码段、数据段) 共享地址空间 Minix进程结构 代码段
堆栈段 共享地址空间

37 进程上下文 进程物理实体和支持进程运行的环境合称为进程上下文 用户级上下文 寄存器上下文 系统级上下文 程序段、数据段、共享存储区、用户栈
程序状态字寄存器、栈指针寄存器、控制寄存器、通用寄存器 系统级上下文 进程控制块、主存管理信息(如页表)、核心栈

38 进程的描述 进程控制块的结构 每个进程都有且只有一个进程控制块 进程标识信息(外部标识+内部标识) 进程现场信息
(通用寄存器、PSW寄存器、各种指针) 进程控制信息 (调度、组成、通信等信息、资源清单等)

39 Minix进程控制表内容 进程管理 内存管理 文件管理 寄存器 正文段(代码段)指针 UMASK掩码 程序计数器 数据段指针 根目录
程序状态字(PSW) bss段指针 工作目录 栈指针 退出状态 文件描述符 进程状态 信号状态 有效UID 进程开始时间 进程标识号(PID) 有效GID 使用的CPU时间 父进程(PPID) 系统调用参数 子进程的CPU时间 进程组(GID) 各种标志位 下次报警时间 真实UID 消息队列指针 挂起的信号位 真实GID 信号位图

40 进程控制块 单个进程块刻画一个进程的运行状态 进程控制块的集合,则刻画了一个操作系统的当前状态
进程控制块的使用和修改,只能由操作系统内核来完成

41 进程队列 将处于同一状态的所有进程控制块链接在一起的数据结构,称为进程队列 便于操作系统进行统一的管理和调度 先进先出 PCB

42 进程队列管理和状态转换示意 … 就绪队列 完成 提交 指派 CPU 事件1等待队列 等待事件1 等待事件2 事件n等待队列 等待事件n 超时
事件出现 等待事件2 事件n等待队列 等待事件n

43 进程切换与模式切换 模式切换≠进程切换 模式切换是中断驱动的,在用户态和核心态之间切换
进程切换只能在核心态(管理态)完成,是一个进程与另一个进程之间的切换 进程切换一定是先产生模式切换,而模式切换不一定导致进程切换。(模式切换频繁、进程切换较少)

44 进程切换与模式切换 用户态运行(1) 用户进程 中断引起的模式切换 模式切换 核心态运行(2) 中断、中断返回 系统进程 等待 调度进程
唤醒 等待态(4) 就绪态 (3)

45 用户进程/系统进程 用户进程和系统进程是一个进程的两个侧面,对应一个进程实体(PCB) 系统进程是在核心态执行操作系统代码的进程
用户进程是在用户态执行用户程序的进程

46 进程控制 原语: 在管态下执行、完成系统特定功能的过程。 其执行不可中断 操作系统内核实现 操作系统用于进行进程控制的工具

47 进程控制的内容 进程创建 进程阻塞和唤醒 进程撤消(终止) 进程挂起和激活

48 进程创建 常见原语:fork, clone 主要内容: fork, 派生,父子进程关系 clone, 克隆,对等关系 申请PCB
分配进程映像空间 分配资源 将进程内容装入分配空间 初始化PCB,分配唯一标识 加入就绪队列,或投入运行 通知操作系统其他模块

49 进程阻塞与唤醒 常见原语(阻塞):wait, waitpid 进程阻塞内容: 进程唤醒内容: 保存现场到PCB 修改进程状态(运行→等待)
转入进程调度程序,调度其他进程 进程唤醒内容: 从相应等待队列中取出PCB 修改进程状态(等待→ 就绪) PCB加入就绪队列

50 进程撤消(终止) 常见原语: exit 原因: 主要内容: 完成 出现严重异常 根据进程标识号,找到相应的PCB
将该进程资源归还给父进程或系统 若有子进程,则要撤消其所有子(孙)进程 PCB出队,将PCB归还PCB池

51 线程 引入线程的动机(原因): 以进程为单位的并发程序设计效率不高: 解决思路: 进程时空开销大 进程通信代价高 进程间并发粒度大
频繁调度耗费大量CPU时间 空间(内存资源)占用大 进程通信代价高 进程间并发粒度大 解决思路: 将进程的两项功能:独立分配资源、独立分派调度分离

52 单线程进程与多线程进程比较 单线程进程 多线程进程 管理者 PCB PCB 用户地址空间 用户地址空间 执行控制 执行控制 用户堆栈
系统堆栈 系统堆栈 系统堆栈 执行序列

53 多线程环境下进程与线程的定义 进程: 线程: 操作系统中进行保护和资源分配的基本单位
操作系统中能够独立执行的实体,是处理器调度和分配的基本单位 轻量级进程 同一进程中的所有线程共享进程获得的主存空间和资源

54 线程结构 线程控制块(TCB) 用户堆栈 系统堆栈(可选)

55 线程的特征 并发性: 共享性: 动态性: 结构性 可在一个或多个CPU上并发或并行执行 共享进程资源,通信和同步更容易实现
一个执行序列的执行过程 结构性 TCB

56 线程的状态与转换 运行态 选中 出现等待事件 落选 就绪态 等待态 等待结束

57 线程的管理与实现 通过提供线程包(库)来提供一整套关于线程管理的原语实现对多线程的支持 基本的线程管理(控制): 线程的实现方式:
spawn 孵化 block 阻塞/封锁 unblock 活化/恢复 finish 撤消 线程的实现方式: 内核级实现 KLT 用户级实现 ULT 混合实现

58 三种线程实现方式示意 ULT KLT Process 用户空间 用户空间 用户空间 线程库 线程库 内核空间 内核空间 内核空间 P P P
内核级线程 用户级线程 混合式线程 ULT KLT P Process

59 内核级实现的优缺点 优点: 缺点: 能够在多个处理器上同时执行多个线程 某个进程中一个线程被阻塞,不会影响其他线程的运行
线程间的切换代价高,需要涉及两次模式切换

60 用户级实现的优缺点 优点: 缺点: 线程切换不涉及模式切换(代价小) 调度算法的选择较灵活 同一进程的多个线程不能同时在多个处理器上运行
一个线程的阻塞将导致整个进程的阻塞

61 混合型实现的优缺点 优点: 设计得当,将可结合前两者的优点,并避开其缺点 缺点: 设计不当,将产生更差的效果

62 并发多线程程序设计的优点 易于实现多个活动间的通信 更低的管理开销 I/O密集型应用能获得更好的性能
能更好地利用多(核)处理器,加快程序执行

63 处理器调度 主要内容: 处理调度细可分为: 挑选作业进入内存 在进程之间分配处理器时间 高级调度,作业管理(用户接口)
中级调度,决定作业(进程)进入内存 低级调度,决定作业(进程)占用处理器

64 处理器调度层次示意 就绪态 终止态 运行态 新建态 等待态 低级调度 挂起等待态 挂起就绪态 中级调度 高级调度

65 处理器调度模型 低级调度 高级调度 就绪队列 提交 指派 CPU 中级调度 挂起就绪队列 中级调度 挂起等待队列 等待队列 等待事件 超时
事件出现 挂起等待队列 等待队列 等待事件

66 高级调度 又称作业调度、长程调度 多道批处理系统中的主要内容: 分时系统中的主要内容: 后备作业→进程 作业准备→启动→善后工作
是否接受一个终端用户的连接? 交互作业能否被接纳,并创建进程?

67 中级调度 又称平衡负载调度、中程调度 主要内容: 具有“挂起”功能的操作系统 控制主存储器中能容纳的进程数
保证在合理数目的进程间竞争处理器及相关资源 具有“挂起”功能的操作系统 “挂起”状态的进程不参与低级调度

68 低级调度 又称(进)线程调度、短程调度 两类低级调度方式: 剥夺方式开销通常大于非剥夺方式,但可避免一个进程或线程长时间独占处理器 剥夺方式
优先级剥夺 限时剥夺 非剥夺方式 剥夺方式开销通常大于非剥夺方式,但可避免一个进程或线程长时间独占处理器

69 调度算法 任何层次的处理器调度均由操作系统相应的调度程序实施,调度程序所使用的算法,被称为调度算法。

70 如何评价调度算法? 考虑的主要因素: 资源利用率, 响应时间(分时系统、实时系统) 周转时间(批处理系统) 吞吐率 公平性
CPU有效工作时间/CPU总运行时间 响应时间(分时系统、实时系统) 从作业提交到收到回应的时间 周转时间(批处理系统) 作业提交开始到作业完成的时间 平均周转时间、平均带权周转时间 吞吐率 单位时间内处理的作业数 公平性 确保每个用户,每个进程获得合理的CPU份额或其他资源份额,不会出现“饿死”现象

71 批处理作业的管理与调度 作业的生命周期: 提交→收容→执行→完成 输入状态 后备状态 执行状态 完成状态 中级调度低级调度 高级调度

72 批处理作业调度考虑 用户角度: 每个用户希望自己的作业周转时间等于或接近作业执行时间 操作系统角度: 处理器的利用率高,作业平均周转时间小

73 几个典型的作业(高级)调度算法 先来先服务算法 最短作业优先算法 最短剩余时间优先算法 响应比最高优先算法 另外,还有: 优先数法
分类调度算法 用磁带与不用磁带的作业搭配

74 先来先服务算法FCFS 按照作业进入系统的作业后备队列的先后次序挑选作业,先进入系统的作业优先被挑选 优点: 缺点: 实现简单
不利于短作业而优待长作业 效率低

75 最短作业优先算法SJF 以进入系统的作业所要求的CPU时间长短为标准,总是选取时间最短的作业投入运行 优点: 缺点: 实现简单
实际系统中,往往很难预测作业的运行时间 导致长作业等待时间过长,甚至出现“饥饿”现象 效率高

76 最短剩余时间优先SRTF 每次调度时,总选择预测剩余运行时间最短的作业优先运行 优点: 效率相对较高 缺点: 调度频繁 与最短作业优先类似

77 响应比最高优先算法HRRF 在FCFS和SJF之间的折中,既考虑作业的等待时间,而考虑作业的运行时间 响应比=作业响应时间/作业估计计算时间
优点: 防止了饥饿发生

78 几个典型的低级调度算法 先来先服务 时间片轮转 优先数调度 多级反馈队列调度 保证调度 彩票调度

79 先来先服务调度算法 非抢占调度方式 使用就绪队列实现,先进先出 特点: 实现容易,但效率低,不利于I/O频繁操作的进程

80 时间片轮转调度算法 抢占调度方式 实现: 分类: 时间片的选取 时钟中断,轮流执行 基本时间片轮转法,时间片相同
动态时间片轮转法,时间片不同 时间片的选取 时间片太长 = FCFS 时间片太短,调度频繁

81 优先数调度算法 抢占和非抢占调度方式 实现: 取优先数最大的进程执行 分类: 静态优先数 动态优先数 如何计算优先数? 何时计算优先数?

82 动态优先数调度算法的基本原则 一个进程连续占用处理器的时间越长,则其再次获得调度的优先数越小
一个进程等待处理器的时间越长,则其再次获得调度的优先数越大

83 动态优先数调度算法举例 早期UNIX版本的动态优先数计算公式:
p – pri = min {127, (p – cpu/16 + PUSER + p –nice) } 值越小,优先权越高(取值范围:-100~127) 重要参数: p – nice 描述进程的紧急程度(基本优先数) p – cpu 描述进程的动态情况,反映了进程使用处理器的时间,每20ms对当前运行进程的该参数加一,每1s检查所有进程的参数,小于10则置0,大于则减10。

84 动态优先数调度算法举例 调度的实施: 动态优先数调度算法,计算各进程的优先数需要占用较多的CPU时间,为降低调度开销,应选择合适的时机和合适的计算对象 UNIX算法的实现: 对于优先数大于100的进程,系统每秒种计算一次优先数 每次系统调用命令处理完成后,重新对现进程的优先数进行计算

85 多级反馈队列调度算法 又称:反馈循环队列或多队列策略 主要思想: 进程分级方式:
将就绪队列分为多级队列,较高的队列分配的时间片较短,但具有较高的优先权占有处理器,同一队列按先来先服务原则调度 进程分级方式: 静态分级 动态分级

86 多级反馈队列调度算法示意 低级就绪队列 超过时间片 选中,时间片500ms 等待其他外设 启动其他外设 启动磁盘/磁带 运行 等待磁盘/磁带
高级就绪队列 中级就绪队列

87 保证调度算法 基本思想: 例: 向用户做出明确的性能保证,并在调度中实现该保证 在有n运行的用户系统中,每个进程将获得处理器能力的1/n。
实现: 计算实际获得的CPU时间和应获得的CPU时间之比,调度转向比率最低的进程。

88 彩票调度算法 基本思想: 为进程发放针对系统各资源的彩票。当调度程序需要作出决策时,随机选择一张彩票,持有该彩票的进程将获得系统资源。 进程所持有的彩票越多,获得系统资源的机会越大 特点: 对系统的情况反应迅速 允许多个进程进行协作

89 实时调度与调度算法 什么是实时系统? 时间因素非常关键的系统,强调响应时间 分类: 构成: 特点: 软实时系统、硬实时系统
将程序分为多个进程,每个进程负责处理相应的周期性出现的事件 特点: 规模小、进程切换快、中断可屏蔽、处理时间短、能够管理多个高精度的定时器

90 实时调度与调度算法 什么是可调度? 在忽略调度本身所花费CPU时间的前提下,系统能够在各事件规定的响应时间处理完这些事件。
对于周期事件,判断系统任务是否可调度的数学公式: C1/P1 + C2/P2 + … + Cm/Pm <= 1 其中m为事件总数,Ci为某个事件的处理时间,Pi为事件发生的周期

91 实时调度与调度算法 几个典型的实时调度算法: 单比率调度算法(静态) 限期调度算法(动态) 最少裕度调度算法(动态)
进程的优先级与对应的事件出现频率成正比 该算法最优 限期调度算法(动态) 进程就绪队列按照对应事件处理的截止期限排序 最少裕度调度算法(动态) 裕度 = 截止时间 - (就绪时间 + 计算时间) 选择裕度最小的进程先执行

92 实时调度算法举例 A, B两进程于当前时间点12ms处同时被创建,并进入就绪队列。各进程的相关信息:
A进程的截止时间是15ms,估计计算时间为1ms B进程的截止时间是16ms,估计计算时间为2.5ms 采用上述三种调度算法,当前时间应选择哪个进程运行? A,B进程就绪 A进程截止 B进程截止 12ms 15ms 16ms

93 多处理器调度与调度算法 多处理器系统: 同步粒度: 松散耦合多处理器系统 紧密耦合多处理器系统 是指进程之间同步的频率 可分为:
细粒度(指令) 中粒度(线程) 粗粒度(进程) 超粗粒度(网络分布系统) 独立

94 多处理器调度与调度算法 多处理器调度设计的要点: 为进程分配处理器 在单个处理器上支持多道程序设计 如何指派进程
在主从方式、对等方式和混合方式之间选择? 在单个处理器上支持多道程序设计 是否需要支持多道程序并发执行? 如何指派进程 如何进行低级调度?

95 多处理器调度与调度算法 进程调度算法不是关注的重点 多处理器调度主要是线程调度 几个典型的调度算法 负载共享调度算法 群调度算法
处理器专派调度算法 动态调度算法

96 负载共享调度算法 基本思想: 进程并不分配给一个特定的处理器,系统维护一个全局的就绪线程队列,当某个处理器空闲时,就选择一个就绪线程占有处理器运行。 CPU1 全局就绪线程队列 CPU2 CPU1

97 负载共享调度算法 优点: 缺点: 把负载均匀分派到所有可用的处理器,保证了处理器的高效率 不需要一个集中的调度程序
运行进程的选择可以采用各种可行的策略 先来先服务、最少线程数优先、有剥夺的最少线程数优先 缺点: 就绪线程队列必须互斥访问,可能成为性能瓶颈 被抢占的线程很难在同一个处理器恢复执行,处理器高速缓存的恢复带来性能的下降 线程间没有优先级差别

98 群调度算法 基本思想: 优点: 把一组进程在同一时间一次性调度到一组处理器上运行。
当紧密相关的进程同时执行时,同步造成的等待将减少,进程切换也相应减少,提高系统运行效率 由于是一次调度一组进程,调度的代价减少

99 处理器专派调度算法 基本思想: 给一个应用专门指派一组处理器,一旦一个应用被调度,它的每个线程被分配一个处理器并一直占有该处理器,直到整个应用运行结束。 特点: 仅考虑单个应用的执行效率,不考虑处理器的利用率

100 动态调度算法 基本思想: 由操作系统和应用进程共同完成调度。 操作系统负责在应用进程间划分处理器,应用进程自主决定其内部线程的执行情况


Download ppt "操作系统 (处理器管理) 徐锋 Email: xf@nju.edu.cn 南京大学计算机科学与技术系."

Similar presentations


Ads by Google