操作系统 - 处理器管理_第1页
操作系统 - 处理器管理_第2页
操作系统 - 处理器管理_第3页
操作系统 - 处理器管理_第4页
操作系统 - 处理器管理_第5页
已阅读5页,还剩174页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章处理器管理

概述

•处理器管理是操作系统中最核心的部分,

因为它管理的也是计算机中最重要的硬件

•处理器管理负责管理、调度和分配处理器,

并控制程序的执行。

•处理器管理的优劣直接影响系统的性能

•操作系统中最重要的是处理器管理

•处理器管理中最重要的是处理器调度

•两种并发的形式:

①交替执行(单CPU)

②并行执行(多CPU)

•在设计一个操作系统时,既要考虑单CPU,

也要考虑多CPU

•或者说,在设计时,不能假设CPU的数目

•对一个进程的资源,在调度时还可以进一

步细分,最小的调度单位称作线程(Thread)

•各种操作系统对线程的实现方式,各不相

处理器硬件介绍

1.体系结构

处理器的任务:按照程序计数器的指向,

从主存中读取指令,对指令进行译码,取

出操作数,然后执行指令

•根据处理器的数目,可以分为单处理器系

统和多处理器系统

•早期的计算机是单处理器结构,采用流水

线、发射体系结构等技术,加快指令的执

•并行技术出现后,发展得比较好的一种体

系结构为:多指令流多数据流结构

•分为两类

①共享存储

②分布式存储

①所谓共享式存储,是指共享所有处理器,

平等地访问同一个物理内存

根据处理器分配策略,又可以分为两类:

I.主从式系统(Main/SlaveMulti-

Processor,MSP)

ii,对称式系统(SymmetricMulti-

Processor,SMP)

•MSP:在特别的处理器上运行内核,在其

他处理器上运行系统程序和应用程序

•优点:实现简单

•缺点:主CPU一旦崩溃,系统就崩溃,且

主CPU会成为系统性能的瓶颈

•SMP:内核与应用程序可以运行在任意

CPU

•优点:对称性,单一地址空间,可靠性、

扩充性好

•缺点:实现复杂

②分布式存储:每个处理单元有自己独立的

主存与通道,各个单元之间通过线路或网

络相连

例如集群(Cluser)就是一种典型的分布

式系统

2.寄存器

寄存器用于存储数据、变量和运算的中间

结果,用于加快运算,保存状态

某时刻寄存器的内容,描述了一个进程当

时的执行状态,称为处理器现场

3.指令

每台计算机的机器指令的集合,称为指令

系统,它反映了该计算机的能力

•指令的分类:

①数据处理类

②转移类

③数据传送类

④移位与字符串类

⑤I/O类

•指令可分为特权指令和非特权指令

•特权指令,是指只能被内核使用的指令,

比如启动设备,设置时钟,控制中断屏蔽

位,清空主存,建立存储键,加载PSW等

关键操作

•非特权指令,是指可以被应用程序使用的

一些指令,当然内核也可以使用

•即,内核可以使用全部指令(特权与非特

权),而应用程序只能执行非特权指令

•如果应用程序中出现了特权指令,则会产

生保护中断,程序会转入特定的异常处理

程序进行处理

4.处理器状态:表明此时处理器是运行在内

核上还是应用程序上,即当时可以使用哪

些指令

分为两种状态:核心态(KernelMode,

也叫管态),用户态(UserMode,也叫

目态)

•核心态:

•运行在内核上

•可以执行所有指令

•可以访问所有内存与其他资源

•可以改变处理器状态

•用户态:

•运行在一般应用程序上

•只能执行非特权指令

•只能访问属于该进程的内存和其他资源

•不能改变处理器状态,除非采用特定的方

•Intelx86中,定义了这么几种级别

①0内核级

②1系统调用级

③2共享库级

④3应用程序级

实际使用时,根据操作系统自己的策略

•何时可由用户态转入核心态,两种途径:

①执行系统调用,申请操作系统服务

②产生中断或异常

•前者为应用程序主动发起的

•后者是由于产生了意外事件导致的

•总之,应用程序需要在受控制的情况下,

改变处理器状态,并被安排跳转到指定的

地方开始执行

5.程序状态字

PSW(ProgramStatusWord),主要作

用是实现程序状态的保护与恢复

•每个CPU都有一个存放PSW的硬件装置,

而相应,每一个进程都有一个PSW的数据

结构,当某一个进程占用CPU执行时,它

把自己的PSW放入CPU,当这个进程被换

出时,也更新它的PSW数据结构

•注:并非每个CPU都有一个真正的PSW寄

存器,一些CPU采用几个寄存器来实现

PSW寄存器的方式

•如Intelx86中,用EFLSGS和EIP来表示

PSW

•分为三类标志

①状态标志:OF,SF,ZF,AF,CF,PF,

AC,串扫描,串比较等。

②控制标志:DF,VM,IF位

③系统标志:IOPL,NT,RF,用户保护模

•现代的操作系统,是由中断驱动的

1.定义(interrupt):是指在程序执行过程

中,遇到急需处理的事件时,暂时中止现

行程序在CPU上的运行,转而执行相应的

事件处理程序,待处理完成后,再返回断

点或调度其他程序执行

•请大家思考下,中断有什么好处?

•中断最初是用来解决CPU轮询外围设备导

致大量浪费CPU时间的问题,后来这种机

制被应用到其他各种情形中,包括系统调

用、异常,也出现了用软件模拟中断机制

这种行为

•中断有中断源或中断装置发出,其共性:

改变处理器的操作执行次序,同时也是实

现了把控制权从应用程序转移出来的功能,

比如从应用程序转移到内核

2.分类:

按照中断是由硬件还是软件发出的,可分

为:

①硬中断:由硬件发给CPU的中断

②软中断:由软件发给软件的中断

硬中断可以继续按照中断源硬件所处的

位置,分为:

I.外中断:来自处理器之外的硬件产生的

中断信号,比如键盘中断,设备中断

II.内中断:来自处理器内部的硬件产生的

中断

•外中断信号,不一定是代表了一定发生了

需要CPU处理的事情,很多时候,只是告

诉一下CPU设备完成了某项工作,这个时

候,CPU其实并不一定要知道这个中断发

生了

•因此,外中断可以分为可屏蔽中断与不可

屏蔽中断

•有一些中断,是比较紧急的情况,是不可

以忽略的,CPU在收到这些中断信号后,

必须马上进行处理,否则会引起系统的问

题,这些就是不可屏蔽中断

内中断:CPU在运算过程中,也会出现一

些错误或者意外事件,这里面一部分是运

算发生了错误,比如除数为零等,另外一

部分是程序“故意”而为之,目的就是触

发中断机制,使控制权强行跳转到另一个

地方

一般,把外中断就叫做“中断”,内中断

叫做“异常”,有些书上,把故意而为之

的异常,称为“陷阱”,把异常中的错误,

叫“故障”

•具体对内中断(异常)的产生原因,做一

下分类:

①访管中断:主动引发进行系统调用

②硬件故障:处理器内部的硬件问题

③程序性异常:运算过程中出现错误,比如

除数为0、页故障、地址越界等

•异常均不可屏蔽,因为其不是错误,就是

有意为之,都是有目的的,而中断则是要

分情况,有些可屏蔽,有些不可屏蔽

•举例:Intelx86规定的一些中断和异常:

Table6-1.ExceptionsandInterrupts

VectorNo.Mnemonic

DescriptionSource

0#DEDivideErrorDIVandIDIVinstructions.

1#DBDebugAnycodeordatareference.

2NMIInterruptNon-maskableexternalinterrupt

3#BPBreakpointINT3instruction

4*OFOverflowINTOinstruction

5*BRBOUNDRangeExceededBOUNDinstruction

6#UDInvalidOpcode(UnDefinedUD2instructionorreservedopcode"

Opcode)

7#NMDeviceNotAvailable(NoMathFloating-pointorWAir/FWAITinstrucnon

Coprocessor)

8#DFDoubleFaultAnyinstructionthatcangeneratean

exception,anNMI,oranINTR.

9#MFCoProcessorSegmentOverrunFloating-pointinstruction.2

(reserved)

10#TSInvalidTSSTaskswitchorTSSaccess.

11#NPSegmentNotPresentLoadingsegmentregistersoraccessing

systemsegments

12*SSStackSegmentFaultStackoperationsandSSregisterloads.

13#GPGeneralProtectionAnymemoryreferenceandother

protectionchecks

14#PFPageFaultAnymemoryreference.

15(Intelreserved.Donotuse)

16Floating-PointError(MathFault)Floating-pointorWArr/FWAITinstruction

17#ACAlignmentCheckAnydatareferenceinmemory?

18#MCMachineCheckErrorcodes(ifany)andsourcearemodel

dependent?

19#XFSIMDFloating-PointException5SIMDFloating-PointInstruction

20-31(Intelreserved.Donotuse)

32-255MaskableInterruptsExternalinterruptfromINTRpinorINTn

instruction.

1.TheUD2instructionwasintroducedinthePentiumProprocessor

2IA-32processorsaftertheIntel386processordonotgeneratethisexception

•Linux中把异常按照发生之后处理的方式,

分为以下四种:

①故障(Fault):发生问题处理完毕后,

再执行一次原来的指令

②陷阱(Trap):执行特定的调试指令时

触发,被调试的进程遇到所设置的断点

处会暂停等待

③终止(Abort):某些错误发生后,无法

恢复,不会返回原进程,有时甚至需要重

启计算机

④编程异常(ProgrammedException):

用于实现系统调用

•总结一下上面的

•故障发生后,处理完毕后将原来引发故障

的指令再执行一遍

•陷阱与编程异常发生后,处理完毕之后,

执行原指令的下一条指令

•终止则不再返回原来的指令

•软中断:不必由硬件产生的中断。实质是

用一种软件的办法来模拟硬中断的一种方

•软中断利用一般中断的思想方法,来处理

进程之间的一些问题

•软中断:模仿硬中断的方法,内核与进程

之间,或进程与进程之间的一种通信方式

①信号

②软件中断

•几种中断各自的用途:

①中断(外中断):外部设备对CPU的中断

②异常(内中断):因指令执行不正常而对

CPU的中断

③软件中断:用于硬中断服务程序对内核的

中断

④信号:用于内核或进程,对某个进程的中

•中断与信号有很多类似之处:

①概念上一致:都是中断源向某个目的地发

送中断信号

②均是异步:不知道何时会发生中断事件

③实现方式均采用向量表,以向量号做索引

查找中断处理程序

④均设有“中断屏蔽位”,可以对于一些中

断信号,置之不理

•中断与信号的区别:

①中断由硬件和软件实现,信号则专门由软

件实现

②中断向量表与中断处理程序位于内核空间,

而信号向量表属于内核空间,但信号处理

程序一般位于用户空间

③中断会立即处理,而信号则可能会延时

3.响应方式

尽管中断有这样那样的分类,但其处理起

来的方式是一致的:根据中断源提供的中

断向量,在主存中找到相应的处理程序入

口,并执行

中断向量由硬件或内核预先定义

•中断的捕获:

•外:每个指令执行结束后,CPU检查中断

寄存器中是否有中断事件,来判断是否有

外中断需要执行

•内:指令执行的时候,就会发生,无需去

检查中断寄存器

中断的响应:

①发现中断源

②保护现场:保护PSW

③转向中断/异常处理程序:切换用户态至核

心态

④恢复现场:恢复用户态,恢复PSW,下一

条指令是什么,要根据中断的类型

•以Linux中断机制为例:

•采用中断描述符表(IDT),含有256个中

断描述符,表示相应的中断或异常

•用一个专门的中断描述符表寄存器IDTR来

指代IDT的位置

•每个中断/异常有一个向量号,0-255,表示

在IDT中的索引

•在系统初始化时,创建IDT,分配向量号

•Linux对向量号的使用情况:

•0-31异常或硬件非屏蔽中断

•32-47硬件可屏蔽中断

•48-255软中断,其中128号为系统调用

4.具体的处理方式:

①程序性中断:几类错误:1,语法错误;2,

逻辑错误;3,运行异常

一般借助于信号机制,内核往往将这类事

件交给应用程序自行处理

②访管中断(异常的一种):

以Linux为例,调用号放入EAX,其余参数

分别放入EBX,ECX,EDX,ESLEDI

中,然后执行访管指令int0x80,陷入内

核,返回值也放回EAX

时钟中断:

时钟是内核进行调度工作的重要工具,利

用定时器能够确保内核可以获得控制权

时钟:绝对时钟间隔时钟

•绝对时钟:每隔一定时间间隔,产生一次

中断

•间隔时钟:当寄存器内容为0时,产生中断,

相当于闹钟

•中断需要硬件和软件结合来发挥作用,比

如这里时钟中断硬件只按已知时间间隔产

生中断,至于中断以后干什么,由软件来

负责

5.中断优先级、多重中断:

问题出现的背景:当同一时刻出现了多个

中断,怎么办

•处理的原则:

①以不发生中断丢失为前提,把紧迫程度相

当的中断源归为同一级别,紧迫程度差别

大的归为不同的级别

②级别高的中断有优先获得响应的权利,低

优先级的中断可以被高优先级的打断,反

之不行

•中断优先级:中断装置所预设的响应顺序

•中断优先级事先通过评估各种中断事件的

紧急程度,来规定不同的优先级

•当同时出现了多个中断事件时,可以用软

硬件相结合的办法,将中断事件排成一个

队列,根据优先级来排定。

•例如:

•旧M机器中,优先级如下:机器校验中断、

自愿性中断、程序性中断、外部中断、I/O

中断

•Intelx86,优先级如下:复位、异常、软件

中断、非屏蔽中断、可屏蔽中断

•有关多重中断的另一个概念:中断屏蔽位

•当某个中断处理程序正在执行时,可以暂

时关闭中断响应,这是通过对中断屏蔽位

来做到的

•中断屏蔽:产生并提出中断请求后,CPU

允许响应或禁止响应的状态位

•复位(0):禁止响应中断

•置位(1):允许响应中断

•中断屏蔽可以暂时禁止对某些中断,协调

中断响应与中断处理之间的关系

三.进程

1.一些概念

•定义:进程是可并发执行的程序在某个数

据集合上的一次计算活动,也是操作系统

进行资源分配不;的基本单位

•注:现代操作系统,往往把线程当做调度

的基本单位,但分配资源时,是以进程为

单位的

•通俗讲:进程就是一个正在执行的程序

•理论上:对当前运行程序的一种抽象

•实践上:是一种数据结构,用来刻画当时

的程序的动态执行状态

•进程的想法最早在MULTICS项目和

CTSS/360机器设计中出现,因此叫法不一

•MIT:Process进程

•IBM:Task任务

•Univac:Action活动

•为何要引入进程这个概念?

•在多道程序设计之下,原来的“程序”概

念已经不能用来描述这时候的情况了,程

序只是一个静态的概念,而进程是一个动

态的概念

•程序:存放在磁盘上的文件

•进程:运行着的程序实例,包括代码,数

据,信号,栈等多种信息

•进程的一些属性:

①结构性:至少包括程序块、数据块、进程

控制块

②共享性:多个进程执行的是相同的程序、

各个进程之间可共享资源

③动态性:是程序在数据上的一次计算过程,

有生命周期

④独立性:各个进程之间的资源彼此独立、

由操作系统保护各个进程之间不互相干扰

⑤制约性:各个进程共享系统资源,同时彼

此之间存在制约

⑥并发性

2.进程的状态:

由于进程是一个动态的概念,因此其具有

状态,基本的可以分为三种:运行态、就

绪态、等待态

分类标准:是否满足运行条件、是否占有

CPU

①运行态(running):满足运行条件、占

有CPU

②就绪态(ready):满足运行条件、不占

有CPU(等待被调度)

③等待态(wait):不满足运行条件、不占

有CPU,也叫睡眠,阻塞

•在各个操作系统设计时,为了便于管理,

在此三态基础上,又会增加一些状态

•增加“新建态(new)”和“终止态

(exit)”,描述进程刚创建和结束时候的

两种状态

•增加“挂起态(suspend)”,指暂时把进

程换到磁盘缓冲区内

•在suspend状态基础上,又可以继续增加两

种状羔:

・挂起就绪态(readysuspend):把就绪态

的进程,换到磁盘缓冲区中

•挂起等待态(blockedsuspend):把等待

态的进程,换到磁盘缓冲区中

•挂起的原因:

•内存不够用了

•系统发生一些故障,一些进程暂时换出去

•处于等待态的进程,没必要占用资源

•调试进程的需要

•注:只有在内存的调度队列里的进程,才

具有被调度的资格,挂起的进程位于磁盘

上,因此尽管具有运行条件,但也无法被

调度,如需被调度,先要将其状态转为就

绪态

3.进程的描述和组成

•从单个角度看,一个运行的程序由以下组

成:

程序块:组成程序的代码集合

数据块:全局数据

栈:用来管理函数调用关系的结构

•如果在多道程序设计情况下,光靠以上三

个,已经不能描述出一个进程的状态了,

所以需要再引入一些数据结构

•进程控制块:存储进程的标志信息,现场

信息和控制信息,每一个进程分配一个进

程控制块

•另一个概念:进程上下文(processcontex)

进程执行时,除了本身自己的代码,数据,

栈外,还需要时不时地向内核申请服务,

当陷入内核后,就用到了内核自己专用的

一些资源,如核心栈,内存管理信息表等,

所有这些资源,称为进程上下文

•进程上下文包括:

①用户级上下文(userlevelcontex):进

程自己的代码、数据、栈等

②系统级上下文(systemlevelcontex):

进程陷入内核后,内核所使用的内存管理

信息表、核心栈,也包括进程控制块

③寄存器上下文(registercontex):各个

寄存器当时的信息,用于保护和恢复现场

•进程控制块(processcontrolblock):

•进程存在的唯一标识

•内核用来记录和刻画进程状态的数据结构

•管理和调度进程的依据

•进程控制块具有的信息:

①标识信息:进程号,进程组号等

②现场信息:各个寄存器当时的值

③控制信息:调度相关信息、进程间通信信

息、段页表指针信息等

•内核管理各个进程的方式一■进程队列

•根据进程的各种关系,定义队列:

按照进程状态队列:运行队列、就绪队列、

等待队列

按照进程间的父子关系

•因此一个进程可能同时处于几个队列之中

4.进程切换

•进程切换的大致过程:

用户空间发生中断或异常进入内核

回到用户空间进程切换

•进程切换发生在每一次陷入内核之后,

如果进程不再满足运行条件,内核就会再

次挑选另外的进程,而把当前进程放入其

他队列(就绪队列、等待队列、挂起队列

等)

•并非每一次陷入内核,就会发生切换,在

下列条件下,会发生切换:

①当进程失去了某些运行必要条件

②进程完成了系统调用,却发现失去了CPU

③进程完成了中断处理,却发现失去了CPU

④进程时间片已到

•步骤:

①保存原进程的处理器现场

②修改原进程PCB

③把原PCB加入相关队列

④选择另一进程

⑤修改该进程的PCB信息

⑥恢复挑选进程的地址空间

⑦恢复挑选进程的处理器信息

•处理器模式切换:

用户态和核心态相互转化

•与进程上下文切换的区别:进程上下文是

在不同进程间切换,处理器模式转化是在

同一个进程间切换

•具体的步骤:

①保存原进程的处理器现场

②处理器状态从用户态转为核心态

③设置中断屏蔽位(可选)

④根据调用号或者中断号,进入相应的服务

程序入口地址

•从CPU角度看,可以认为CPU在轮流为系

统中的各个进程服务

•每时刻,CPU都处在下列三种状态之一:

①用户空间,处于进程上下文,使用用户栈

②内核空间,处于进程上下文,使用核心栈

③内核空间,处于中断上下文

•注:当处于内核时,不能被抢占,即当一

个进程申请进入内核,或者发生中断之后,

在内核处理时,不能再响应另一个进程的

系统调用

•但是内核可以响应中断

5.进程的控制和管理

内核有专门的进程管理程序,控制着众多

进程的生命周期

主要工作:创建进程,阻塞、唤醒进程,

挂起、激活进程,终止和撤销进程

・新概念:原语primitive

是指一个不可分割的动作,在这个动作执

行期间,不允许中断

上述的几个行为,就是一种原语,采用特

殊的硬件指令实现

•注:并非内核所有的行为,都是原语,只

有少部分的比较关键的行为是原语

原语执行时不响应中断,会影响系统的效

①进程创建:

•从PCB池中申请一个空闲的PCB,分配进

程号

•为新进程分配地址空间并加载

•分配其他资源

•初始化PCB

•把新进程设置为就绪态,放入就绪队列

•通知其他模块更新信息

②进程撤销

•根据要撤销的进程号,从响应队列中找到

并删除

•释放该进程占用的全部资源

•撤销其所有子进程

•回收PCB放入池中

阻塞、唤醒

阻塞是进程主动调用阻塞原语来进行的,

也就是说,是主动行为

唤醒则要另一个进程来唤醒它

•阻塞步骤:

•停止执行,保存现场信息

•修改PCB内容,特别是进程状态,并移入

响应队列

•进入调度程序,选择另外的进程运行

•唤醒步骤:

•取出待唤醒的进程

•修改PCB的相关内容,移入就绪队列

•等待下次被调度

④进程挂起和激活

这个过程跟阻塞、唤醒很相似,只不过阻

塞、唤醒是在就绪和等待队里移动,挂起、

激活是在内存和磁盘缓冲区移动

四.线程

进程内部可以再进一步分为线程(Thread)

进程实现的需求:同一个计算机中,多个

程序需要同时运行

线程实现的需求:同一个进程内,多个功

能需要同时运行

宗旨:提高并行性,提高效率

传统的进程,都是运行在同一个处理器上,

在同一个进程内,是串行的

引入了线程,对外:就可以把进程的不同

部分放到不同的处理器上

对内:可以在一个功能暂时不执行时,转

而去执行其他的功能

・比如:

•Eclipse在进行编写程序的时候,可以实现

实时编译

•Word在进行编辑工作的时候,可以实现拼

写检查,自动保存等等

•对于一个用户来讲

如果是单进程和多进程,用户会有很明显

的感觉

如果是单线程和多线程,则不会有太大的

感觉,他们的表象很相似,内部实现不同

•从线程到进程,是对并行性进一步要求的

结果

实质是把CPU的分配权,进行进一步的细

①定义:线程是进程中能够并发执行的实体,

是进程的组成部分,也是处理器调度的基

本单位

•一个进程可以有多个线程

这些线程共享进程的资源,它们协同完成

整个进程的工作

各个线程之间也会有资源竞争

②线程组成部分:

线程控制块

线程上下文

核心栈

线程私有数据区

•线程与进程的主要区别,就是进程有自己

的独立空间,线程没有自己完全独立的空

各个线程共享进程的代码区和全局数据去,

各个线程执行的代码区的不同代码,访问

全局数据的不同数据

线程状态

与进程不同,线程只有运行、就绪和等待

线程没有挂起态,线程的挂起和激活,是

随着宿主进程挂起和激活,

④线程的实现

I.用户级线程

II.内核级线程

III.混合式线程

•用户级线程:

指提供可以进行线程管理的工具,负责线

程的创建、管理、调度,与内核无关

・优点:

无需陷入内核

比较容易地修改线程调度算法

即使内核不支持多线程,也能实现多线程

•缺点:

一个线程阻塞,会引起所有其他线程阻塞

只能在当前进程的CPU上进行调度

•内核级线程

内核具体创建、管理线程的功能,同时提

供系统调用供用户程序使用

・优点:

阻塞一个线程,不会影响整个进程的阻塞,

其他线程可以继续运行

可以把线程分配到多个处理器上进行

•缺点:

线程管理需要陷入内核,开销大

内核需要专门进行修改,才能具备此功能

⑤Linux的进程和线程

五.处理器调度

•主存、处理器与作业、进程之间,永远是

供不应求的关系

•处理器调度:按照何种原则挑选作业进入

主存运行,如何把处理器进行分配

1.作业(job):用户交给操作系统的一个

独立任务,每个作业必须经过若干相对独

立且相互关联的顺序加工步骤才能得到结

•作业由用户组织,作业步骤由用户指定,

操作系统根据用户的指定,创建进程来完

成相应的处理任务,并返回处理的结果

•作业与进程的关系:

作业是任务实体,进程是执行实体

操作系统通过创建进程,来完成作业要求

•作业管理:

作业组织、作业调度、运行控制

作业管理与调度的步骤:批处理和交互型

•批处理作业的组织和管理

a)批处理作业的输入

b)批处理作业的建立

C)批处理作业的调度

a)批处理作业的输入

脱机方式

作业:程序+数据+作业说明书

程序和数据用于解决问题

作业说明书告诉操作系统如何组织程序和

数据来工作

b.批处理作业的建立

建立作业控制块,组成作业表,建立好作

业队列,等待高级调度程序的调度

c)批处理作业的调度

选择作业、分配资源、、作业控

缶I]、后续处理

•交互型作业的组织和管理

交互型作业,即我们平时的工作方式,靠

命令行或图形界面来与操作系统进行交互

可以认为用户的一次上机过程,就是一次

交互型作业,只不过与批处理作业相比,

交互型作业的作业说明书就是用户键入的

每一条命令或鼠标动作

2.处理器调度层次:

①高级调度(作业调度)

②中级调度(进程调度)

③低级调度(线程调度)

①高级调度:在多道批处理操作系统中,从

输入的作业中,按照预定的调度策略挑选

一些作业,为其分配资源,做好运行前准

备工作,以及作业完成后的善后工作

高级作业调度挑选出来的作业,等待下一

级调度流程的继续挑选

②中级调度:

根据内存资源情况,决定哪些作业可以继

续留在内存中,哪些作业被“挂起”到磁

盘缓冲区中

既在上一级调度选择的作业中,继续挑选

作业,进入下一级调度

低级调度:

根据某种调度算法,决定哪些进程(线程)

占有CPU运行,哪些进程(线程)必须让

出CPU

这是处理器调度中最核心的部分

•注:低级调度是所有多道程序设计环境中

必备的,但中级和高级调度,则可有可无

•根据具有哪几种调度方式,可有:三级调

度模型,两级调度模型,一级调度模型

3.衡量调度算法好坏的原则

①资源利用率

②吞吐量

③公平性

④响应时间

⑤周转时间

①资源利用率

许多资源经常会发生等待,好的调度算法,

应该尽量避免资源白白的等待,浪费时间,

而应该把等待的时间分配给当时其他可以

执行的线程,提高资源的利用率

②吞吐率:

单位时间内处理作业的个数

公平性

确保每个进程都能获得合理的CPU份额和

其他份额,避免出现,饿现象

饥饿:指一个进程长时间没得到执行的机

④响应时间:从交互式进程提交一个请求,

到得到响应之间的时间间隔,这是分时和

实时系统很重要的指标

⑤周转时间:

批处理用户从向系统递交作业开始,到作

业完成为止的时间间隔

具体是指一个作业在系统中的等待时间和

运行时间

操作系统比较看重各个作业的平均周转时

•掌握如何计算平均作业周转时间和平均带

权作业周转时间

4.调度算法

这里的调度算法,很多都适用于三种调度

层次,以低级调度为例

•低级调度的对象一一在内核不支持线程的

环境中,是进程,在内核支持线程的环境

中,是线程

现代的操作系统,一般都是以线程为最小

的调度单位

•低级调度的主要功能:

调度和分派

调度:决定把哪个线程换进或换出处理器

分派:如何进行换进和换出

前者称为“调度策略”,后者称为“调度

机制”

•低级调度的基本类型:

抢占式(preemptive):内核可以随时根据

某个原则来剥夺当前进程的运行权利

非抢占式(nonpree

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论