操作系统—处理机管理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

调入顺序为:1、2、5、4、3
前台
后台
你排队去买火车票,假如买一张票,需 要花费10秒钟,如果在你前面的某个人 要买500张票,你以及在后面排队的人将 会感觉很糟糕。 售票员把这个单子接下来,并请他明天 来取,然后继续为后面买零票的顾客服 务。只在窗口没有人排队的空闲时间里, 售票员才来处理500张票的单子。
作业三
作业二
作业一
0
2
4
6
8
10 12 14
16 18
20 22
24 26 28 30
32 34 36 38
40
例题2平均周转时间
T1=30秒 T2=28.5+6=34.5秒(从1.5—30秒等待作业A完成) T3=33.5+2=35.5秒(从2.5—36秒等待作业A和B完成) 则:T=(T1+T2+T3)/3=(30+34.5+35.5)/3=33.33(秒)
课后练习
讨论: 有时貌似公平的解决方案,也有不合理的地方,因此 没有绝对的公平合理。今天所学的三个调度算法就是 一个例证。结合自己在平时生活中见到或亲身经历的 情况,谈谈想法。 复习: 教材P32—P37的内容。 作业: 有A、B、C、D四个作业,分别于0秒、2秒、2.5秒、6 秒进入系统后备队列,他们分别申请CPU时间8秒、4 秒、20秒、5秒。请参照教材的做法,分别给出在 FCFS、SJF、HRRF调度算法下的作业周转时间表和平 均周转时间。
作业管理
• 操作系统将用户提交的作业输入到 辅助存储器,并按照一定的调度策 略,选择合适的作业进入内存执行, 直至完成的管理过程。 • 作业管理贯穿整个作业的生命周期。
作业状态(P31)
• 提交状态——作业及说明书提交给系 统管理员,等待输入辅助存储器; • 后备状态——作业被输入到辅助存储 器中,等待调度程序挑选进入内存; • 运行状态——作业被调度程序选中, 加载进入内存执行; • 完成状态——作业执行完毕,系统回 收所有资源。
例题1
• 有三个作业,分别于第0秒、第1.5秒、第2.5秒分别进 入后备队列,他们所需CPU时间分别为:2秒、6秒、30 秒,按照FCFS调度算法,计算这三个作业的平均周转 时间。
作业三
作业二
作业一
0
2
4
6
8
10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40
0.4
0.2
FCFS
• 调入顺序 1、2、3、4、5
5 4 3 2 1 0.5 0 t5=0.7+0.5+0.4+0.4+0.2-0.6=1.6
t4=0.7+0.5+0.4+0.4-0.5=1.5 t3=0.7+0.5+0.4-0.4=1.2 t2=0.7+0.5-0.2=1
t1=0.7
0.2 0.4 0.6 0.7
结果比较
• 比较上面两个例子可以得出:在大作业 先行到达后备时,使用FCFS调度策略, 可能导致系统作业的平均周转时间较长, 也就是说如果小作业到达略微迟一点点, 就可能要等待很长时间。如果只要执行 一分钟的作业需要等待10小时,是一件 令人痛苦的事。
SJF——短作业优先

将CPU占用时间短的作业放在优 先运行的位臵上,可以提高系统 的周转率,这就是SJF调度策略。
多道程序运行的特点
1. 执行的并发性——从宏观上看,内存中 有多个程序同时执行。 2. 相互的制约性——一个程序占用的资源, 会影响到其他程序的运行。 3. 状态的多变性——程序时而运行,时而 停止等待,走走停停。
T=(0.7+0.3+0.9+1.2+2)/5=1.02
HRRF
• 调入顺序 1、2、5、3、4
R4=3.25 4 3 5 2 1 0.5 0 0.2 0.4 0.6 0.7 t4=0.7+0.5+0.2+0.4+0.4-0.5=1.7
R3=2 t3=0.7+0.5+0.2+0.4-0.4=1.4 R5=3 t5=0.7+0.5+0.2-0.6=0.8 R2=1 t2=0.7+0.5-0.2=1 t1=0.7
经典的作业调度算法
1. FCFS——先来先服务(First Come First Served ) 2. SJF——短作业优先 ( Sortest Job First ) 3. HRRF——最高相应比优先 ( Highest Response Ratio First )
FCFS
• 按照作业进入后备队列的先后次序作为 运行的先后次序。这与我们排队处理各 种事情的理念是一样的。在一般情况下, 在后备队列等待时间最长的将被调度进 入内存运行。但是如果此时该作业所需 的资源无法获得满足,将会被推迟选中。
3、程序执行过程不可再现
• 例如一辆汽车从事从A地到B地货物运输,虽然每次运 输时车型、运输的物品、行驶的线路都相同,但由于 各种交通因素的影响(其它车辆干扰、交通信号控 制),每次行驶过程都与以前不同,是独一无二的、 不可再现的。 • 同样,一个程序的执行过程受到在内存中的其他程序 的影响和制约。如果把该程序再次投入运行,尽管自 身的代码、数据、需求都没有变化,但由于内存中其 它程序数量及状态的变化,影响该程序的执行过程, 相对应的每个时刻的状态而言,本次执行过程有别于 过去任何一次执行过程,而且是不可再现的。
单道程序执行
1. 执行的连续性——程序一次执行 完毕,不被打断。 2. 资源的独占性——程序独自享有 所需要的各种资源。 3. 结果的再现性——程序重复运行 时,每一时刻的状态和结果都将 能够再现。
多道程序执行
在多道程序并发执行的情况下,程序的 上述三个特点都不存在了,相反呈现出 下面的特征:
程序的概念
• 程序是人们为了让计算机完成某 项任务,按照执行时间顺序而编 写的指令序列。
程序的特点
1. 连续执行——人们在编写时都假设, 自己的程序将一次执行完毕。 2. 独占资源——人们在编写时都假设, 自己的程序将无条件享有所需要的各 种资源。 3. 过程再现——人们在编写时都假设, 当程序重复运行时,每一时刻的状态 和结果都能够重复再现。
例题1 平均周转时间
T1=2秒 T2=0.5+6=6.5秒 (从1.5—2秒等待作业A完成) T3=5.5+30=35.5秒 (从2.5—8秒等待作业B完成) 则:T=(T1+T2+T3)/3=(2+6.5+35.5)/3=15(秒)
例题2
• 有三个作业,分别于第0秒、第1.5秒、第2.5秒分别进 入后备队列,他们所需CPU时间分别为:30秒、6秒、2 秒,按照FCFS调度算法,计算这三个作业的平均周转 时间。
作业执行的两种调度
• 系统执行作业通常分为两个阶段: • 1、系统从辅存中选择合适的作业进 入内存,属于作业调度。 • 2、系统对已经在内存中的作业分配 处理机,属于进程调度。
作业调度
• 操作系统按照一定的策略,将 “后备状态”的作业调入内存中 准备执行的行为,称之为作业调 度。 • 从作业位臵变化角度看,作业调 度是把要执行的作业从辅助存储
SJF调度策略不考率作业进入后 备的时间顺序,只考虑作业对 CPU的时间需求。

SJF调度策略的例子

有A、B、C三个作业分别在第0、7、10 秒进入后备,申请CPU时间为20秒、40 秒、10秒,假如系统在第10秒后开始 作业调度,按照SJF调度策略,不考虑 进入后备的顺序,只考虑后备作业对 CPU时间的需求量,调入运行顺序为C -> A -> B。
前台作业和后台作业
• 人们为解决各种不同的问题,编写各种不同的 程序,有的计算量大,有的计算量小;有的需 要经常性信息交互,有的不需要信息交互。在 分时操作系统中把那些运行时间短、交互频繁 的作业,赋予较高的运行级别,优先保证其 CPU时间片,称为前台作业。把计算量大而且 基本没有交互会话的作业,放在较低的运行级 别上,只是在没有前台作业运行或没有交互请 求时,才去运行它们,称之为后台作业。
作业状态转化图
用户把作业 提交给系统 操作人员 操作人员把 作业输入到 辅助存储器 操作系统把 作业加载进 入内存 作业执行完 毕,系统回 收资源
Biblioteka Baidu作业
辅存
主机
结 束
作业状态:
提交
后备
运行
完成
后备作业和作业控制块
• 被接纳到辅助存储器的作业,在没有投入运 行之前,被称为后备作业。 • 系统在接纳后备作业的时候,会为其建立一 个作业控制块(Job Control Block)。所有 后备作业的JBC形成一个后备作业队列。 • 作业控制块(JCB)包括了作业说明书的主 要内容,也包括一些作业状态等信息。 (P31 图2-18)
SJF算法的缺点

但如果在系统运行过程中,仍不断有短作业 进入后备,则长作业前面就不断有“插队” 的,在极端情况下造成长作业永远得不到运 行,这对长作业是不公平的。 因此希望有一种算法能兼顾作业申请CPU时 间和在辅存中已等待时间这两方面的因素。

HRRF——最高相应比优先

最高相应比优先 (Highest Response_ratio First) 将作业在后备区已经等待的时间与该作业申请 需要的处理器时间相除,得出一个称之为“响 应比”系数: 响应比 = 已等待时间/申请CPU时间
操作系统的两种用户接口类型
1. 操作命令 ① 脱机命令——通过作业说明书、批处理程序 等形式提交给操作系统,由系统自动执行, 中途无需人工干预(无交互)。 ② 联机命令——通过键盘、鼠标、操纵杆等设 备向计算机发出一个操命令,接收并显示反 馈信息(有交互)。
2. 系统调用——通过程序调用接口形式提供给 用户的,如DOS中的系统调用,Windows 中 的API 。
1.2
1.6
2
2.2
T=(0.7+1+1.2+1.5+1.6)/5=1.2
SJF
• 调入顺序 1、5、3、4、2
t2=0.7+0.2+0.4+0.4+0.5-0.2=2 2 4 3 5 1 0.5 0 0.2 0.4 0.6 0.7 0.9 1.3 1.7 2.2 t4=0.7+0.2+0.4+0.4-0.5=1.2 t3=0.7+0.2+0.4-0.4=0.9 t5=0.7+0.2-0.6=0.3 t1=0.7
1.2 1.4
1.8
2.2
T=(0.7+1+0.8+1.4+1.7)/5=1. 12
环境对调度的影响
• P33 例2-6,只要内存许可就调入作业,并采用FCFS 调度算法: 作业 1 2 3 4 5 到达时间 10.1 10.3 10.5 10.6 10.7 所需CPU时间 0.7 0.5 0.4 0.4 0.2 所需内存量 15K 70K 50K 20K 10k
1. 程序执行是断断续续的; 2. 程序与其它程序共享资源; 3. 程序的执行过程不可再现。
1、程序执行的不连续性
单道程序执行: 等待CPU
3 2 1 输入输出 执行
多道程序执行(以分时系统为例):
3 2 1
2、与其它程序共享资源
• 从上例可以看出,多道程序在执行时, 一个程序要与其它程序共享CPU资源,实 际上,在多道程序运行时,包括内存、 外部设备在内的各种资源都需要共享 (竞争),在后面的内存管理和设备管 理章节中会有更详细的阐述。

如果一个作业的响应比大,要么该作业需要的 时间短,要么该作业已经在后备区等待了足够 长的时间。
例题(P33 例2-5)
• 有5个作业到达后备时间如下表:
作业 到达时间 所需CPU时间
1
2 3
10.1
10.3 10.5
(0)
(0.2) (0.4)
0.7
0.5 0.4
4
5
10.6
10.7
(0.5)
(0.6)
处理机管理
• 处理机管理主要介绍操作系 统对于CPU的管理,分为作业 管理和进程管理两部分。
作业步
• 完成整个作业的执行,往往要分为若干个步骤, 每个步骤称之为一个“作业步”。
• 作业步的划分通常以数据依赖关系来确定,即 上一步骤的输出结果是下一步骤执行所需要的 输入数据。 • 例如:一个C语言程序的执行可分为编译—>连 接—>运行三个步骤。编译步骤将源程序编译 成.obj的中间代码;连接步骤将中间代码转化 为可执行代码,执行步骤运行可执行代码。
作业调度的原则
1. 公平对待后备队列中的每一个作业 2. 进入内存的作业能均衡地使用资源 3. 力争在单位时间内为更多的作业服 务,提高吞吐能力
作业平均周转时间
假设第i个作业进入后备状态的时刻 为Si,执行完毕的时刻为Wi,则该作业周 转的时间为: Ti=Wi-Si 在系统中如果有n个作业,则平均周 转时间为:T=∑(Ti)/n 平均周转时间值越小,表示作业平 均等待的时间越短。
相关文档
最新文档