第二章-处理器管理_第1页
第二章-处理器管理_第2页
第二章-处理器管理_第3页
第二章-处理器管理_第4页
第二章-处理器管理_第5页
已阅读5页,还剩190页未读 继续免费阅读

下载本文档

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

文档简介

第二章处理器管理

主要内容

・中央处理器概述

・中新技术

•选程及其实现

•线程及其实现

•处理器调度算法

-,中央处理器概述

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

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

•处理器管理主要是负责管理、调度和分配处理

器,并控制程序的执行

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

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

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

•对一个选程的济源,处理器在调度时还可以选

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

・各种操作条统对线程的实现方式,各不相同

•两种并发的形式J:

①交替执行(单CPU)

②并行执行(多CPU)

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

也要考虑多CPU,或者说,在设计时,不能

假设CPU的数目

处理器硬件介绍

1.体宗结构

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

从主存中读取指令到指令寄存器,对指令进

行译码,取出操作教,然后执行指令

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

单处理器系统:一个计算机条统只包括一个运算处理器

多处理器系统:一个计算机条统有多个运算处理器

•早期计算机系统是基于单个处理器的顺序处理机器,程

序员编写串行物行的代回,让其在处理器上串行执行,

每条指令的执行也是串行的(取指令、取操作教、执行

操作、存储结果),采用流水线、发射体系结构等技术,

加快指令的执行

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

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

,分为两类

①共享存储

②分布式存储

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

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

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

I.主从式j索统CMain/SlaveMulti-Processor,

MSPJ

11.对称式条统(SymmetricMulti-Processor,

SMPJ

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

理器上运行条统程序和应用程序

•优点:实现简单

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

CPU会成为系统性能的瓶颈

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

-每个处理器都可以自我调度运行的进程和线程,单

个进程的多个线程可在不同处理器上同时运行

-操作条统内核也被设计成多进程或多线程,内核的

各个部分可以并行执行

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

•缺点:实现复杂

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

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

例如集群(CluserJ就是一种典型的分布式

系统

■集群(Cluster;条统

是一组互连的计算机系统,属于分布式系统的一种

集群操作系统也是分布式操作系统的一种

集群系统运行时构成统一的计算密源,给人以一台机

器的感觉

集群系统中的每一台计算机离开集群后自己可以独立

工作

•现今大多数通用操作索统既支持单处理器条统,

也支持多处理器系统和集群宗统

2.寄存器

寄存器用于存储数据、变量和运算的中间结果,用于加快

运算,保存状宓

计算机条统的处理器包括一组寄存器,其个数根据机

型的不同而不同,它们构成了一级存储,比主存参量

小,但访问速度快。

某时刻寄存器的内叁,描述了一个选程当时的执行状态,

称为处理器现场

寄存器的分类

通用寄存器:可由程序设计者指定许多功能,如存

放操作数或用作寻址寄存器

数据寄存器:存放操作教,作为内存数据的高速缓

地址寄存器:指明内存地址,如索引寄存器、段寄

存器、堆核指针寄存器等

I/O地址寄存器:指定1/。设备

■1/。缓冲寄存器:用于处理器和I/O设备交换数据

控制寄存器:存放处理器的控制和校态信息,至少

包括程序计数器PC和指令寄存器IR,中新等存器以

及用于点储器和I/。模块控制的寄存器

■其他寄存器

3.指令

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

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

指令的分类

⑴数据处理类指令:执行算术和谈春运算

(2)转移类指令:改变指令轨行序列,如无条件转移、

条件转移等

(3)数据传送类指令:用于在处理器的寄存器和寄存器、

寄存器和存储器单元、存储器单元和存储器之间交换

数据

(4)移住与字符串指令:算术、逆辑、循环移优;字符串

的传送、比较、查询、转换

(5)1/。类指令:用于启动外围设备,让主存和外围设备之

间交换数据

•指令按使用权F艮分类,可分为特权指令和非特

权指令

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

启动设备,设置时钟,控制中断屏蔽佳,清空

主存,建立存储键,加载PSW等关键操作

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

然内核也可以使用

•内核可以使用全部指令(特权与非特权),而应用程序

只能执行非特权指令

比如

1J置程序状态字指令属于特权指令

2)启动外围设备进行输入/输出的指令也属于特权指令,

只能在操作系统程序中执行,否则会出现多个用户程序

竞争使用外囹设备而导致I/。混乱

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

程序会转入特定的异常处理程序进行处理

•中央处理器怎么知道当前是操作条统还是一般

用户程序在运行呢?依赖于处理器状杰的标志

•在执行不同程序时,根据执行程序对济源和机

器指令的使用权限把处理器设置最不同状忐

4.处理器状出(运行模式):表明此时处理器

是运行在内核上还是应用程序上,即当时可

以使用哪些指令

分为两种状忐:核心忐fKernelMode,也叫

管志J,用户忠CUserMode,也叫百态)

•核心志:

•运行在内核上

•可以执行所有指令

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

,可以改变处理器技去

・用户志:

•运行在一般应用程序上

•只能执行非特权指令

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

・不能改变处理器技去,除非杂用特定的方式

总结

当处理器处于核心态时,程序可以执

行全部指令,访问所有济源,并具有

改变处理器状态的能力

当处理器处于用户态时,程序只能执

行非特权指令

Intelx86的处理器状忐级别

o级为操作系统内核级:处理1/0、存储管理和其他关键操作

1级为京统调用处理程序级:用户程序可以通过调用这里的过程

执行余统调用,但是只有一些特定的和受保护的过程可以波调用

2级为共享库过程级:它可以被很多正在运行的程序共享,用户

序可以调用这些过程,读取它们的数据,但是不能修改它们

3级为用户程序级:受到的保护最少

叁蒸:各个操作条呢笈实现过程中可以根据具体策啧有选择地使

用硬件提供的保护级别,如运行在乂86上的Windows操作条线只使

用了。级和3级

・何时可由用户忐转入核心态,两种途彳空:

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

②产生中断或异常,让中断处理程序工作

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

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

这两种情况都是通过中新机制发生的

•当索统响应中断交换程序状忠字时,处理中新事

件的处理程序的程序状忠字的处理器状去住一定

为“核心忐”

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

理器状忐,并被安排跳转到指定的地方开始执行

•由用户态转入核心忐:

每台计算机通常会提供一条特权指令称作加莪

程序状忐字LPSWCLoadPSWJ,用来实现操

作系统向用户程序的转换

・计算机如何知道当前处于何种工作技忐

•这时能否执行特权指令?

•通常操作系统都引入程序状忐字PSWfProgram

StatusWord;来区别不同的程序工作状态

5.程序收态字

PSWCProgramStatusWordJ,主要作用

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

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

应,每一个进程都有一个PSW的数据结构,当

某一个进程占用CPU执行时,它把自己的PSW

放入CPU,当这个进程被换出时,也更新它的

PSW数据结构

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

一些CPU条用几个寄存器来实现PSW寄云器的

方式

•如Intelx86中,用EFLAGS和EIP来表示PSW

程序状忐字寄存器一般包括以下内

■程序基本状宓:

程序讨教器:指明下一条执行的指令地址

条件码:表示指令执行的结果状忐

处理器校杰佳:指明当前的处理器状志,如日惑或

管忐、运行或等待

中新码:保存程序轨行时当前■发生的中断事件

中新冬薮住:指明程序执行中发生中断事件时,是否响

应出现的中断事件

4-

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

1.定义finterruptj:是指在程序执行过程中,

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

在CPU上的运行,转而执行相应的事件处理

程序,待处理完成后,再返回断点或调度其

他程序执行

•中断最初是用来斛决CPU轮询外囹设备导致大

量浪费CPU时间的问题,后来这种机制被应用

到其他各种情形中,包括系统调用、异常,也

出现了用软件模拟中新机制这种行为

•中断由中断源或中断装置发出,其共性:改变

处理器的操作执行次序,同时也是实现了把控

制权从应用程序转移向来的功能,比如从应用

程序转移到内核

•在提供中新装置的计算机系统中,在每两条指

令或某些特殊指令执行期间都检查是否有中断

事件发生,若无则立即执行下一条或继续执行,

否则响应该事件并转去处理中断事件

中新的分类r一)

从中断事件的性质和激活的手段来分

-强迫性中断事件

-自愿性中断事件

强迫性中断事件

■强迫性中断事件不是正在运行的程序所期待的,而是由

于随机发生的某种事故或外部请求信息所引起的

■这类中断事件大致有:

机器故障中新事件:如电源故障、主存储器出错等

程序性中断事件(异常):定点溢出、除数为0、地

址越界等

外部中断事件:如时钟的定时中断、控制台发控制

信息等

输入输出中断事件:如设备出错、传输结束等

自愿性中断事件

自愿性中断事件是正在运行的程序所期待的事件

比如请求分配外设

请求1/0

这种事件是由于执行了一条访管指令而引起的,它表

示正在运行的程序对操作系统有某种需求,一旦机器执

行到一条访管指令时,便自愿停止现行程序的执行而转

八访管中断处理程序处理

中断的分类(一)

序序

两类中断事件

中断的分类r二)

按照中新是由硬件还是软件发出的,可分为:

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

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

・硬中断可以继续按照中断源硬件所处的住置,

分为:

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

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

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

•外中新包括:

-包源故障中新

-时钟中新

-控制台中新

-它机中新

-I/O中新等

•不同的中断具有不同的中新优先级,处理高一级中新

时,往往会屏蔽部分或全部低级中断

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

CPU处理的事情,很多时候,只是告诉一下CPU

设备完成了某项工作,这个时候,CPU其实并不

一定要知道这个中断发生了

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

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

略的,CPU在收到这些中断信号后,必须马上

进行处理,否则会引起索统的问题,这些就是

不可屏薮中断

•内中断(异常):CPU在运算过程中,也会出

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

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

是程序“故意”而为之,目的就是触发中断机

制,使控制权强行跳转到苏一个地方

二般

异把外中断就叫做“中断”,内中断叫做

为”,有些书上,把故意而为之的异常,

陷阱”,把异常中的错误,叫“故障”

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

分类:

①访管中新:主动引发我行条统调用

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

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

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

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

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

况,有些可屏薮,有些不可屏薮

•异常根据是否故意产生分成两类

1.出错(fault)

2.陷入(trap)

出错和陷入的区别

它们发生时保存的返回指令地址不同

出错保存指向触发异常的那条指令

陷入保存指向触发异常的那条指令的下一条指令

从异常返回时

出错会重新执行那条指令

陷入就不会重新执行那条指令

■如缺页异常是一种出错

陷入主要应用在调试中

中新和异常的区别

中断是由与现行指令无关的中新信号触发的(异步)

中新的发生与CPU处在用户模式或内核模式无关,通

常在两条机器指令之间才可响应中新,中新处理程序

提供的服务不是为当前进程所需的,如时钟中新,硬

盘读写服务请求中新

异常是由处理器正在轨行现行指令而引起的(同步),

一条指令执行期间允许响应异常,异常处理程序提雇

的服务是为当前进程所用的

中新可被屏霰,异常不能被屏霰

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

Table6-1.ExceptionsandInterrupts

VectorNo.Mnemonic

DescriptionSource

0*DEDtvkleErrorDIVandIDIVinstructions.

1#DBDebugAnycoGeordatareference.

2NMIinterruptNon-maskat)leexternalinterrupt

3吞BPBreakpointINT3instruction

A#OFOverflowINTOinstruction

5*BRBOUNDRangeExceededBOUNDinstruction

6#UDInvahdOpcode(UnDeftneaUD2Instructionorreservedopcode'

Opcode)

7DeviceNotAvailable(NoMaihFloating-pointorWAIT/FWAITinstruction

Coprocessor)

8#DFDoubleFaurtAnyinstructionthatcangeneratean

exception,anNMI,oranINTR.

9#MFCoProcessorSegmentOverrunFloating-pointinstruction.2

(reserved)

IOInvalidTSSTaskswitchorTSSaccess.

11#NPSegmentNotPresentLoadingsegmentregistersoraccessing

systemsegments

12#SSStackSeomentFaultStackoperationsandSSregisterloads.

13#GPGeneralProtectionAnymemoryreferenceandother

protectionchecks

14»PFPageFaultAnymemoryreference.

15(Intelreserved.Donotuse)

16Floating-PointError(MathFault)Floating-pointorWAnVFWAFTinstructson

17*ACAlignmentCheckAnydatareferenceinmemory.3

18#MCMachineCheckErrorcodesOfany)andsourcearemodel

dependent4

19SIMOFloating-F^ointHxcepxion5SIMDFloating-尸ointInstruction

20-31(Intelreserved.Donotuse.)

32-255MaskableInterruptsExternalinterruptfromINTRpinorINTn

instruction.

1-TheUD2instructionwasintroducedinthePentiumProprocessor

2.IA-32processorsaftermeIntel386processordonotgeneratethisexception

3.ThisexceotionwasintroducedintheIntel486processor

4.ThisexceptionwasintroducedinttiePentiumprocessorandenhancedintheP6familyprocessors

5.ThisexceptionwasintroducedInthePentiumillprocessor

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

分为以下四种:

①故障CFaultJ:发生问题处理完毕后,再

执行一次原来的指令

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

发,被调试的进程遇到所设置的新点处会

暂停等待

③终止CAbort;:某些错误发生后,无法恢

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

算机

@编程异常(ProgrammedException):用于

实现京统调用

总结:

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

令再执行一遍

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

原指令的下一条指令

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

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

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

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

之间的一些问题

•软中断通常是由内核或选程对某个进程发出

的中断信号,可看作内核与进程或进程与进

程之间用来模拟硬中新的一种信号通信方式

①信号

②软件中断

•几种中断各自的用途:

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

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

CPU的中新

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

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

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

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

中断信号

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

③实现方式均系用句量表,以句量号做索引查

找中断处理程序

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

信号,置之不理

•中断与信号的区别:

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

实现

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

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

序一般住于用户空间

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

3.响应方式

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

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

量,在主存中找到相应的处理程序入口,并执行

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

•中新的捕获:

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

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

断需要执行

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

检查中断寄存器

•中断的响应:

①发现中断源

②保护现场:保护PSW

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

©恢复现场:恢复用户忠,恢复PSW,下一条

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

•以Linux中断机制为例:

•差用中断描述符表C1DTJ,含有256个中断

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

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

代IDT的住置

・每个中断/异常有一个句量号,0-255,表示在

IDT中的索引

•在索统初始化时,创建IDT,分配句量号

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

・0-31异常或硬件非屏薮中断

•32-47硬件可屏薮中新

・48—255软中断,其中128号为系统调用

4.具体的处理方式:

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

逆春错误;3,运行异常

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

交给应用程序自行处理

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

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

放入EBX,ECX,EDX,ESI,EDI寄存器中,然

后执行访管指令int0x80,陷入内核,返回值

也放回EAX

③时钟中新:

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

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

时钟:绝对时钟间隔时钟

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

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

相当于闹钟

■绝对时钟

豕统设置绝对时钟寄存器,定时地把该寄存器的内

叁加1。如果开始时这个寄存器的内焦为0,那么,

只要操作员告诉豕统开机时的年、月、日、时、分、

秒,以后就可施算出当前的年、月、0、时、分、

计算当前时间时,只要按时钟中新的次数和绝对时

林等存聚的内参推算就可得对

■间隔时钟

间隔时钟是定时将一个间隔时钟寄存器的内宏减1,

当间隔时钟寄存皋的内参为0时,产生一个间隔时

钟中新,起到闹钟的作用,意味着预定的时间到了。

操作系统经常利用间隔时钟作控制调度

总结:时钟的任务

维护绝对日期和时间

防止进程的运行时间超出其允许值,发现陷入

死循环的选程

对使用CPU的用户进程记账

处理进程的间隔时钟(闹钟)

对系统的功能或部件提供监视定时器

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

里时钟中新硬件只按已知时间间隔产生中断,

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

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

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

新,怎么办

•处理的原则:

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

中新源归为同一级别,紧迫程度差别大的归为

不同的级别

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

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

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

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

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

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

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

据优先级来排定。

•硬件:根据排定的优先次序做一个硬件

链式排定器,当有高一级的中断事件产

生时,封住比它优先级低的所有中断源

•软件:编写一个查询程序,依据优先级

次序自高利低进行查询

•例如:

•IBM机器中,优先级如下:机器校验中新、自

愿性中断、程序性中断、外部中断、1/0中断

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

新、非屏蔽中断、可屏薮中断

多重中新

•多重中新:中新同时出现、中新虽不同时出现却被硬

件同时发现、其他中新正在处理期间,CPU又响应了

新的中断事件,于是暂停正在运行的中断处理程序,

转去物行新的中断处理程序,这就是多重中新,又称

中新嵌套

•处理多重中断的另一个方法:中新屏薮住

•当某个中断处理程序正在轨行时,可以暂时关闭中新

响应,这是通过对中新屏霰住来做到的

•中断屏薮:产生并提出中断请求后,CPU允许

响应或禁止响应的状志住

•复核COJ:禁止响应中断

•置住C1):允许响应中断

・中断屏薮可以暂时禁止对某些中断响应,协调

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

-可以被屏薮的中新

•所有的输入输出中新

•外中新

•机器校验中断

-不可以被屏薮的中断

•电I源新电I中新

•自愿性访管中新

-中新的屏薮是根据程序状忐字中的中新屏霰住来实现的。

通常允许中断时屏蔽优为1,禁止中断时,屏霰伐为0

H

1.基本概念

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

合上的一次计算活动,也是操作系统进行济源

分配和保护的基本单住

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

本单传,但分配济源时,是以进程为单传的

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

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

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

序的动忐执行技忐

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

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

•MIT:Process也程

•IBM:Task任务

•Univac:Action活动

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

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

经不能用亲描述这时候的情况了,程序只是一

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

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

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

信号,核等多种信息

•进程的一些属性:

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

制块

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

个选程之间可共享济源

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

有生命周期

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

操作条统保护各个选程之间不互相干扰

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

之间存在制约

⑥并发性

2.进程的状忠:

由于选程是一个动忐的概念,因此其具有状忐,

基本的可以分为三种:运行忠、就绪志、等待

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

®运行忐Crunning;:满足运行条件、占有

CPU

②就绪志(ready;:满足运行条件、不占有

CPU(等待被调度)

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

CPU,也叫雁眠,阻塞

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

三忠基础上,又会增加一些状志

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

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

种状忐

•增加“挂起去(suspend),指暂时把进程

换到磁盘缓冲区内

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

我去:

・挂起就绪志(readysuspendJ:把就绪志的进

程,换到段盘缓冲区中

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

进程,换到段盘缓冲区中

・挂起的原因:

•内存不够用了

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

•处于等待点的选程,没必要占用济源

・调试进程的需要

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

被调度的落格。挂起的选程住于磁盘上,尽管

具有运行条件,但也无法被调度,如需被调度,

先要将其收忐转为就绪出

3.进程的描述和组成

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

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

数据块:全局数据

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

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

已经不能描述出一个进程的状志了,所以需要

再引A^一些数据结构

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

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

•另一个概念:选程上下文(processcontexj

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

外,还需要时不时地句内核申请服务,当陷入

内核后,就用到了内核自己专用的一些资源,

如核心核,内存管理信息表等,所有这些资源,

称为进程上下文

选程上下文包括:

①用户级上下文(userlevelcontexj:进程自

己的代码、数据、找等

②系统级上下文(systemlevelcontexJ:进程

陷入内核后,内核所使用的内存管理信息表、

核心核,也包括进程控制块

③寄存器上下文(registercontexJ:各个寄存

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

•进程控制块(processcontrolblockj:

•进程存在的唯一标识

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

•管理和调度选程的依据

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

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

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

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

段页表指针信息等

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

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

按照进程技忐队列:运行队列、就绪队列、等待

队列

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

4.进程切换

•进程切换的大致过程:

用户空间发生中断或异常

回到用户空间;1进程切换

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

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

另外的进程,而把当前进程放入其他队列(就

绪队列、等待队列、挂起队列等)

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

列条件下,会发生切换:

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

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

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

@进程时间片已到

•步骤:

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

②修改原进程PCB

③把原PCB加入相关队列

©选择苏一进程

⑤修改该进程的PCB信息

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

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

•处理器模式切换:

用户走和核心态相互转化

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

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

程间切换

•具体的步骤:

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

②处理器状忠从用户去转为核心出

③设置中断屏蔽住(可选J

@根据调用号或者中断号,选人相应的服务程

序八口地址

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

中的各个进程服务

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

①用户空间,处于选程上下文,使用用户找

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

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

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

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

处理时,不能再响应另一个进程的系统调用

,但是内核可以响应中断

5.进程的控制和管理

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

程的生命周期

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

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

•新概念:原语primitive

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

间,不允许中断

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

硬件指令实现

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

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

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

®选程创建:

•从PCB池中申请一个左间的PCB,分配进程

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

•分配其他资源

•初始化PCB

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

•通知其他模块更新信息

②进程撤销

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

删除

•绛放该进程占用的全部济源

•撤销其所有子进程

•回收PCB放入池中

③阻塞、唤醒

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

就是说,是主动行为

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

•阻塞步骤:

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

•修改PCB内奈,特别是进程状去,并移入响应

队列

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

•唤醒步骤:

•取出待唤醒的进程

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

•等待下次被调度

@进程挂起和激活

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

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

是在内存和凝盘缓冲区移动

四、线程

・进程内部可以再进

温馨提示

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

评论

0/150

提交评论