第二章处理机管理计算机软件及应用_IT计算机_专业课件

PPT
  • 阅读 38 次
  • 下载 0 次
  • 页数 121 页
  • 大小 409.842 KB
  • 2022-12-01 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档40.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
第二章处理机管理计算机软件及应用_IT计算机_专业课件
可在后台配置第一页与第二页中间广告代码
第二章处理机管理计算机软件及应用_IT计算机_专业课件
可在后台配置第二页与第三页中间广告代码
第二章处理机管理计算机软件及应用_IT计算机_专业课件
可在后台配置第三页与第四页中间广告代码
第二章处理机管理计算机软件及应用_IT计算机_专业课件
第二章处理机管理计算机软件及应用_IT计算机_专业课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 121
  • 收藏
  • 违规举报
  • © 版权认领
下载文档40.00 元 加入VIP免费下载
文本内容

【文档说明】第二章处理机管理计算机软件及应用_IT计算机_专业课件.ppt,共(121)页,409.842 KB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-77053.html

以下为本文档部分文字说明:

第二章处理机管理计算机软件及应用_IT计算机_专业2.1中央处理器(CPU)一、处理器的构成处理器由运算器、控制器、一组寄存器以及高速缓存构成。运算器:实现指令中的算术和逻辑运算,是计算机计算的核心。控制器:负责控制程序运行的流程,包括取指令、维护CPU状态、

CPU与内存的交互等等。寄存器:是指令在CPU内部作处理的过程中暂存数据、地址以及指令信息的存储设备,在计算机的存储系统中它具有最快的访问速度。高速缓存:处于CPU和物理内存之间,访问速度快于内存,低于寄存器。利用程序局部性原理使得高速指令处理和低速内存访

问得以匹配,从而提高CPU的效率。二、寄存器两类寄存器:用户可见寄存器:高级语言编译器通过算法分配并使用之,以减少程序访问主存次数。控制和状态寄存器:用于控制处理器的操作。由OS的特权指令使用,以控制其它程序的执行。计算机系统的处理器

包括一组寄存器,其个数根据机型的不同而不同,它们构成了一级存储,比主存容量小,但访问速度快。这组寄存器所存储的信息与程序的执行有很大关系,构成了处理器现场。1.用户可见寄存器机器语言(汇编语言)直接引用包括数据寄存器、地址寄存器等数据寄存器(datareg

ister):又称通用寄存器地址寄存器(addressregister):用于存储数据及指令的物理地址。如indexregister、segmentpointer、stackpointer2.控制和状态寄存器用于控制

处理器的操作大部分对于用户是不可见的一部分可以在某种特权模式(由OS使用)下访问常见的控制和状态寄存器:程序计数器(PC:ProgramCounter):记录将要取出的指令的地址指令寄存器(IR:InstructionRegiste

r):包含最近取出的指令程序状态字(PSW:ProgramStatusWord):记录处理器的运行模式信息等等三、特权指令和非特权指令1.处理器执行指令过程处理器依据在程序计数器中的指令地址从存储器中取一条指令取到的指令放在指令寄存器(IR)中处理器解释并执行指令自动将程

序计数器的值变成下条指令的地址2.五类指令(1)数据处理类指令;(2)转移类指令;(3)数据传送类指令;(4)移位与字符串类指令;(5)I/O类指令。处理器如何知道当前运行的是操作系统还是一应用软件?执行时有不同的权限

。有赖于处理器状态。3.特权指令与非特权指令从资源管理和控制程序执行的角度出发,必须把指令系统中的指令分作两部分:特权指令和非特权指令。特权指令:只能由操作系统的内核程序使用的指令,如启动I/O设备、设置时钟、控制

中断屏蔽位、清主存、建立存储键,加载PSW等。内核能够执行全部指令,应用程序只能使用非特权指令。四、处理器的状态根据运行程序对资源和机器指令的使用权限将处理器设置为不同状态,处理器状态又称为处理器模式。多数系统将处理器工作状态划分为核心态和用户态。1.核心态(KernelMode)CPU执

行操作系统程序时所处的状态。较高的特权级别,又称为特权态(特态)、系统态、管态。处理器处于核心态时,程序可以执行全部指令,使用所有资源,具有改变处理器状态的能力。2.用户态(UserMode)用户程序执行时CPU

所处的状态。较低的特权级别,又称为普通态(普态)、目态。处理器处于用户状态时,程序只能执行非特权指令,不能直接使用系统资源,只能访问用户程序所在的存储空间,不能改变CPU状态。实例:x86系列处理器

386、486、Pentium系列处理器都支持4个处理器特权级别(R0、R1、R2和R3)从R0到R3特权能力依次降低R0相当于双状态系统的核心态R3相当于用户态R1和R2则介于两者之间,它们能够运行的指令

集合具有包含关系:3210RRRRIIII四个级别运行不同类别的程序:R0-运行操作系统核心代码R1-运行关键设备驱动程序和I/O处理例程R2-运行其它受保护共享代码,如语言系统运行环境R3-运行各种用户程序

现有基于x86处理器的操作系统,如UNIX、Linux以及Windows系列大都只用了R0和R3两个特权级别。3.处理器模式转换(1)用户态→核心态有两种情况会导致处理器从用户态向核心态转换:一是程序请求操作系统服务,执

行系统调用;二是程序运行时,产生中断或异常事件,运行程序被中断,转向中断处理或异常处理程序工作。两类情况都通过中断机制发生,中断和异常是用户态到内核态转换仅有的途径,当系统中产生中断或异常,处理器作出响应且交换程序状态字,会导致处理器从用户态转向核心态,处理事件的中断或异常处理程序的程序状态字中

,处理器模式位一定为“核心态”。(2)核心态→用户态计算机提供一条特权指令称作加载程序状态字(IBM370为loadPSW指令,Intelx86为iret指令),用来实现从系统(核心态)返回到用户态,控制权交给应用进程。五、程

序状态字PSW计算机如何知道当前处于何种工作状态?这时能否执行特权指令?通常操作系统都引入程序状态字PSW(ProgramStatusWord)来区别不同的处理器工作状态。PSW用来控制指令执行顺序并保留和指示与程序有关的系统状态,主要作用是实现程序状态的保护和恢复。

每个程序都有一个与其执行相关的PSW,每个处理器都设置一个PSW寄存器。程序占有处理器执行,它的PSW将占有PSW寄存器14PSW包括以下内容:程序基本状态:(1)程序计数器;(2)条件码;(3)处理器状态位。中断码:保存程序执行时当前发生的中断事件。中

断屏蔽位:指明程序执行中发生中断事件时,是否响应出现的中断事件。15实例:IBM360/370系列计算机程序状态字的基本格式XXXXXXXXXXXXXXXX8位系统屏蔽4位CMWP字段4位程序屏蔽4位保护键16位中断码字段指令长和条件码24位指令地址162

.2中断技术中断对于操作系统的重要性就像机器中的驱动齿轮一样所以有人把操作系统称为是由“中断驱动”或者“(中断)事件驱动”中断:是指程序执行过程中,遇到急需处理的事件(例如电源掉电、俘点运算溢出、外部设备传输完成或出错等)时,暂时中止CPU上现行程序的运行,

转去执行相应的事件处理程序,待处理完成后再返回原程序断点处或调度其他程序执行的过程。中断源:引起中断的事件称中断源,如打印完成中断,其中断源是打印机。断点:发生中断时正在运行的程序被暂时停止,程序的暂停点称为断点

。例如,某程序正在执行0200地址的指令被中断,那么,0200地址就是断点,在中断返回时就执行0200的下一条指令。一、中断概念从用户角度看中断二、中断源分类1.按中断事件的性质和激活方式划分(1)强迫性中断:强迫性中断事件肯定不是正在运行的程序所期待的,是由随

机事件或外部请求引起的。分为:机器故障中断程序性中断外部中断输入输出中断(2)自愿性中断:自愿性中断事件是正在运行的程序所期待的。是由于用户在编制程序时因为要求操作系统提供服务,有意使用“访管”指令或系统调用,使中

断发生。2.按事件来源和实现手段分类硬中断软中断外中断(中断、异步中断)内中断(异常、同步中断)信号软件中断按事件来源和实现手段分类(1)硬中断外中断(中断或异步中断)--是指来自处理器之外的中断信号,包括时钟中断、键盘中断、它机中断和设备中断等;外中断又分可屏蔽中断和不可屏蔽中断,每个不同

中断具有不同的中断优先级,表示事件的紧急程度,在处理高一级中断时,往往会屏蔽部分或全部低级中断。内中断(异常或同步中断)--是指来自处理器内部的中断信号,通常由于程序执行中,发现与当前指令关联的、不正常的、或是错误的事件。内中断可细分为三种:访管中断、硬件

故障中断、程序性异常。中断和异常要通过硬件设施来产生中断请求,是硬中断。(2)软中断软中断是利用硬中断的概念,用软件方法对中断机制进行模拟,实现宏观上的异步执行。软中断分两种:“信号”和“软件中断”。(3)中断的通常用法“中断”(硬中断)用于外部设备对CPU的中断(中断

的是正在运行的任何程序),转向中断处理程序上半部分执行;“异常”(硬中断)因指令执行不正常而中断CPU(中断的是正在执行这条指令的程序),转向异常处理程序;“软件中断”(软中断)用于硬中断服务程序对内核的中断,在上半部分中发出软件中断(即标记下半部分),使得中断

下半部分在适当时刻获得处理;“信号”(软中断)用于内核或进程对某个进程的中断,通知进程某个特定事件发生或迫使进程执行信号处理程序。三、中断和异常的响应过程1.发现中断源:2.3.转向处理中断/异常事件的处理程

序:4.恢复现场:现场:是被中断断点时刻处理机的各种信息,包括程序状态字;各寄存器的值;打开文件的状态.四、中断优先级和多重中断1.中断优先级在一些机器中,中断优先级按中断类型划分:以机器故障中断的优先级最高程序中断和访管中断次之外部中断更次之输入输出的优先级最低2.中断屏蔽在CPU上运行

的程序,有时由于种种原因,不希望其在执行过程中被别的事件所中断,称为中断屏蔽。在PSW中设置中断屏蔽位以屏蔽某些指定的中断类型各设备接口中也有中断禁止位,以禁止该设备的中断3.多个中断的处理若中断处理过程中又发生中断,引起多中断处理问题。两种策略方法:(1)串行处理

处理一个中断时禁止中断,对任何新中断置之不理,当再次允许中断时,新中断才被响应。可以通过屏蔽中断来实现。这种方法简单易行,所有中断严格按照发生顺序处理,不考虑中断紧急程度,无法达到较严格时间要求。多中断

处理第一种策略方法29(2)嵌套处理允许优先级高中断打断优先级低的中断处理过程,这样中断优先级技术将引起中断处理的嵌套。只要合适地定义中断的优先级别方法一的弊端大都可以克服用户程序低级中断高级中断多中

断处理第二种策略方法31操作系统的基本是并发与共享,这就会引起一系列的问题,包括:对资源的竞争、运行程序之间的通信、程序之间的合作与协同等。要解决这些问题,用程序的概念已经不能描述程序在内存中运行的状态,必须引人新的

概念--进程。2.3进程及其实现计算机出现以来,“程序”是使用广泛的一个概念,在多道程序设计技术出现之前,程序是顺序执行的。1.程序的顺序执行例:在系统中有n个作业,每个作业都有三个处理步骤:首先输入用户的程序和数据(Ii)

,然后进行计算(Ci),最后将结果打印出来(Pi)。在计算机系统中只有一个程序在运行,这个程序独占系统中所有资源,其执行不受外界影响。一道程序执行完后另一道才能开始。一、进程的概念程序顺序执行的特点顺序性:处理机严格按照程序所规定的顺序执行,即每

个操作必须在下一个操作开始之前结束。封闭性:程序一旦开始执行,其计算结果不受外界的影响,因为一道程序独占系统资源,所以当程序的初始条件给定之后,其后的状态只能由程序本身确定,即只有本程序才能改变它。可再现性:程序的结果与它的执行速

度无关(即与时间无关),即只要程序的初始条件相同,它的执行结果是相同的,不论它在什么时间执行,也不管计算机的运行速度。2.程序的并发执行为增强系统处理能力和提高资源利用率,现代操作系统普遍采用多道程序设计技术,多道程序

设计技术一个重要特点就是程序并发执行。例:在系统中有n个作业,每个作业都有三个处理步骤,输入数据、处理、输出。有些操作必须在其它操作之前执行,这是有序的,但有些操作是可以同时执行的。I1、C1、P1的执行必须严格按照顺序,而P1与I

2,C1与I2,I3与P1是可以同时执行的。(1)程序的并发执行:是指若干个程序同时在系统中执行,这些程序的执行在时间上是重叠的,一个程序的执行尚未结束,另一个程序的执行已经开始,即使这种重迭是很小的,也称这几个程序是并发执行的。并发与并行概念的区别?Concurrency,para

llel(2)程序并发执行的描述cobeginS1;S2;S3;...;SNcoend;Si(i=1,2,3,...,n)表示n个语句(程序段),这n个语句用cobegin和coend括起来表示这n个语句是可

以并发执行的。co是concurrent的头两个字符。这是Dijkstra提出的。例:有一个程序由S0~Sn+1个语句,其中S1~Sn语句是并发执行的,程序如下:S0;cobeginS1;S2;S3;...;SNcoend;Sn+1;(3)程序并

发执行的特点间断性:程序并发执行时,共享资源,致使它们之间相互制约,导致并发程序执行过程“走走停停”,具有“执行-暂停-执行”这种间断性的活动规律。失去封闭性:多个程序并发执行,共享系统资源,因而资源的状态由多个程序来改变,致使程序的运行失去了封闭性。这样,

某程序执行时,必然受其他程序影响。不可再现性:例:两个程序A和B,共享一个变量N(初值为1)。程序A:N++;程序B:P(N);N=0;程序A和B并发执行。可能出现下述三种情况:N值(1)N++;P(N);N=0;(2,2,0)(2)P(

N);N=0;N++;(1,0,1)(3)P(N);N++;N=0;(1,2,0)由于并发程序的上述这些特点,使得系统中的活动以及各种活动之间的相互关系非常复杂。因此,“程序”这个静态的概念已不能如实地反映系统中的活动情况。为对并发执行的程序加以描述和控制,现代操作系统引入了进程的概念。3.进

程的概念进程的概念是60年代初首先由麻省理工学院的MULTICS系统和IBM公司的TSS/360系统提出和实现的。进程是操作系统中最基本、最重要的概念之一,它对理解、描述和设计操作系统都具有非常重要的

意义。(1)进程的定义进程有很多各式各样的定义,如:程序在处理机上执行时所发生的活动称为进程(Dijkstra)一个具有一定功能的程序关于某个数据集合的一次运行活动。进程是一个程序与其数据在处理机

上执行时所发生的活动,它是系统进行资源分配和调度的一个独立单位。本书将进程定义为:进程是可并发执行的程序在某个数据集合上的一次计算活动,也是操作系统进行资源分配和调度的基本单位。(2)进程与程序的联系与

区别①程序是指令的有序集合,其本身没有任何运行的含义,是一个静态的概念。而进程是程序在处理机上的一次执行过程,它是一个动态的概念。②程序可以作为一种软件资料长期存在,而进程是有一定生命期的。程序是永久的,进程是

暂时的。注:程序可看作一个菜谱,而进程则是按照菜谱进行烹调的过程。③进程和程序组成不同:进程是由程序、数据和进程控制块三部分组成的。④进程与程序的对应关系:通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可包括多个程序。例子:光盘(程序)放

光盘的活动(进程)(3)进程的特征动态性:进程是程序的执行,同时进程有生命周期。并发性:多个进程可同存于内存中,能在一段时间内同时执行。独立性:资源分配和调度的基本单位。制约性:并发进程间存在制约关系,造成程序执行速度不可预测性,必

须对进程的并发执行次序、相对执行速度加以协调。结构特征:进程由程序块、数据块、进程控制块三部分组成。二、进程的状态及转换1.进程的三种基本状态进程在系统中的活动规律:进程的三种基本状态:运行态就绪态等待态(又称阻塞态)执行暂停执行(2)就绪状态(ready)当

一个进程已经准备就绪,一旦得到CPU,就可立即运行,这时进程所处的状态称为就绪状态。系统中有一个就绪进程队列,处于就绪状态进程按某种调度策略存在于该队列中。(1)运行态(running)当进程得到处理机,其执行程序正在处理机上运行时的状态称为运行状态。

在单CPU系统中,任何时刻最多只有一个进程处于运行状态。在多CPU系统中,处于运行状态的进程数最多为处理机的数目。万事具备,只欠CPU(3)等待态(阻塞态)(Wait/Blocked)若一个进程正等待着某一事件发生(如等待

输入输出操作的完成)而暂时停止执行的状态称为等待状态。处于等待状态的进程不具备运行的条件,即使给它CPU,也无法执行。系统中有几个等待进程队列(按等待的事件组成相应的等待队列)。进程在执行过程中,任一时刻必然处于上述三种状态之一,进程在执行过程中其状态

将发生变化。运行态就绪态等待态选中落选出现等待事件等待事件结束运行等待:等待某事件的发生(如等待I/O完成)等待就绪:事件已经发生(如I/O完成)运行就绪:时间片到(例如,两节课时间到,下课)或出现更高优先级进程,当前进程被迫让出处理器。就绪运行:当处理机空闭时,由调度(分派)程序从就绪

进程队列中选择一个进程占用CPU。上述三种状态是进程最基本的状态,在实际的操作系统实现中,进程远不止这三种状态。2.进程五态模型及其转换运行态就绪态等待态选中落选出现等待事件等待事件结束新建态终止态●进程为什么要有“挂起”状态?由

于系统不断创建进程,系统资源特别是主存已不能满足进程运行要求,此时必须将某些进程挂起(suspend),置于磁盘对换区,释放其所占资源,暂时不启用低级调度,起到平滑负载的目的。3.具有挂起功能的进程状态及其转换挂

起等待事件结束出现等待事件解除挂起挂起落选选中运行态就绪态等待事件结束终止态新建态挂起就绪态解除挂起挂起挂起等待态等待态提交提交三、进程的描述和组成1.进程映象进程内容及其状态集合称为进程映像。包括:进程控制块:每个进程有一进程控制块,用来存储进程的标识信息、现场信息和控制信息。

程序块:被进程执行的程序核心栈:每个进程捆绑一个核心栈,进程在核心态工作时,用来保存中断/异常现场,保存函数调用的参数、局部变量和返回地址等。数据块:存放程序私有数据,用户栈也在数据块中开辟,用于存放函数调用时参数、局部变量和返回地址等参数。55进

程上下文操作系统中把进程物理实体和支持进程运行的环境合称为进程上下文。进程在其当前上下文中运行,当系统调度新进程占有处理器时,新老进程随之发生上下文切换。即保存老进程状态而装入被保护了的新进程的状态,以便新进程

运行.56进程上下文组成用户级上下文:由程序块、数据块、共享内存区、用户栈组成,占用进程的虚地址空间。寄存器上下文:由处理器状态寄存器、指令计数器、栈指针、通用寄存器等组成。系统级上下文:由进程控制块、内存存管理信息(进程页表或段表

)、核心栈等操作系统管理进程所需要的信息组成。572.进程控制块(ProcessControlBlock,PCB)每个进程有且仅有一个进程控制块PCB是操作系统用于记录和刻划进程状态及有关信息的数据结构,是操作系统掌握进程的唯一资

料结构。系统利用PCB来控制和管理进程,所以PCB是系统感知进程存在的唯一标志进程与PCB是一一对应的,在创建进程时,建立PCB,并伴随进程运行的全过程,直到进程撤消而撤消。PCB就象我们的户口。PCB的内容①标识信息进程标识ID:唯一,通常

是一个整数进程组标识ID用户进程名用户组名②现场信息寄存器内容(通用寄存器内容、控制寄存器内容、栈指针等)③控制信息进程调度信息:如进程状态、等待时间、等待原因、进程优先级、队列指针等进程组成信息:如正文段指针、数据段指针、进程族系信息进程间通信信息:如消息队列指针、所使用的

信号量和锁进程段、页表指针、进程映像在辅存地址CPU的占用和使用信息:如时间片剩余量、已占用CPU时间、已执行时间总和、定时器信息、记账信息进程特权信息:如主存访问权限、处理器特权资源清单:所需全部资源、已分得资源

3.进程队列及其管理处于同一状态的所有PCB组织在一起的数据结构称为进程队列。例如运行队列、就绪队列、等待队列。同一状态进程的PCB既可按先来先到的原则排成队列;也可按优先数或其它原则排成队列。通用队列组织方式:

链接方式索引方式(1)链接方式相同状态的进程PCB通过链接指针链接成一个队列。不同状态的进程可排成不同的队列,如运行队列、就绪队列、等待队列。等待队列按等待原因不同可排成多个等待队列。PCB表PCB10PCB25PCB30PCB40PCB50PCB64运行队列指针就绪队列指针等待队列1

指针等待队列2指针…PCBn7PCB70…空闲进程队列指针(3)索引方式对具有相同状态的进程,分别设置各自的PCB索引表,如就绪索引表、等待索引表,记录PCB在PCB表中的地址.运行队列指针就绪表指针等待表1指针…PCB表PCB1PCB2PCB3PCB4PCB5PCB6……PCBn

空闲表指针…就绪索引表…等待索引表1等待表2指针四、进程切换一个进程让出处理器,由另一个进程占用处理器的过程称为进程切换。进程的切换使系统中的各进程均有机会占用CPU。进程切换的步骤保存被中断进程的处理器现场信息修改被中断进程的进程控制块的有关信息,如进程状态等把被中断进程的进程控制

块加入有关队列选择下一个占有处理器运行的进程修改被选中进程的进程控制块的有关信息根据被选中进程设置操作系统用到的地址转换和存储保护信息根据被选中进程恢复处理器现场64五、进程的控制和管理进程是有生命周期的:产生、运行、暂停、终止。进

程生命周期的动态变化过程由进程管理程序来控制。进程的控制和管理包括:进程创建进程撤消进程阻塞进程唤醒进程挂起进程激活这些控制和管理功能由操作系统中的原语实现。原语是在核心态执行、完成系统特定功能的不可分割的过程。原

语的特点是执行过程中不允许被中断,是一个不可分割的基本单位,原语的执行是顺序的而不可能是并发的。1.进程创建进程创建类似于人出生后要到派出所报户口。进程创建过程:(1)在进程列表中增加一项,从PCB池中申请一个空闲PCB,为新进程分配惟一的进程标识符;(2)为新进程的进程映像分配地址空间。进

程管理程序确定加载到进程地址空间中的程序;(3)为新进程分配除主存空间外的其他各种所需资源;(4)初始化PCB,如进程标识符、处理器初始状态、进程优先级等;(5)把新进程状态置为就绪态,并移入就绪进程队列;(6)通知操作系统的某些模块,如记账程序、

性能监控程序。2.进程撤销进程完成其任务或出现严重错误后,操作系统调用进程撤消原语撤消进程。相当于一个人死亡后,家人要去派出所消户口。进程撤销过程:(1)根据撤销进程标识号,从相应队列中找到并移出它;(2)将该进程拥有的资源归还给父进程或操作系统;(3)若该进程

拥有子进程,先撤销它的所有子进程,以防它们脱离控制;(4)回收PCB,并归还到PCB池。3.进程阻塞和唤醒当一个处在运行状态的进程,因等待某个事件的发生(如等待打印机)而不能继续运行时,进程将调用阻塞原语

来阻塞自己,进程的状态由运行态转换为等待态(阻塞态)。当等待事件完成时,会产生一个中断,激活操作系统,在系统控制下将被阻塞的进程唤醒,这个进程将由阻塞状态转换成就绪状态。运行态就绪态等待态进程调度落选出现等待事件等待事件结束进程阻塞进程唤醒进程阻塞步骤:(1)停

止进程执行,保存现场信息到PCB(2)修改进程PCB有关内容,如进程状态由运行态改为等待态等,并把修改状态后的进程移入相应事件的等待队列中;(3)转入进程调度程序去调度其他进程运行。进程唤醒步骤:(1)从相应的等待队列中移出进程;(2)修改进程PCB的有关

信息,如进程状态改为就绪态,并移入就绪队列;(3)若被唤醒进程比当前运行进程优先级高,重新设置调度标志。一、引入多线程的动机引入进程的目的是为了使多个程序并发执行,以改善资源使用率、提高系统效率。再引入线程,则是为了减少程序并发执行时所付出的时空开销,使得并发

粒度更细、并发性更好。2.4线程及其实现进程的两项功能1.进程是资源分配和保护基本单位。2.进程同时又是一个可独立调度和分派的基本单位。进程作为一个资源拥有者,在创建、撤消、切换中,系统必须为之付出较大时空开销。所以系统中进程的数量不宜过多,进程切换的频率不宜过高,

但这也就限制了并发程度的进一步提高。为解决此问题,人们想到将进程的上述两个功能分开,前一项任务仍由进程完成,作为系统资源分配和保护的独立单位,无需频繁切换;后一项任务交给称为线程的实体完成,线程作为系统调度

和分派的基本单位,会被频繁调度和切换。线程因而产生。引入线程的好处快速线程切换通信易于实现减少管理开销并发程度提高二、多线程环境中的进程与线程1.多线程结构进程进程进程PCB资源线程控制块用户栈核心栈线程控制块用户栈核心栈…

线程n控制块用户栈核心栈存储区存储空间全局数据程序代码线程1线程1线程控制块…线程2线程1线程控制块用户栈核心栈线程i线程n多线程环境中进程的定义进程是操作系统中除处理器外进行的资源分配和保护的基本单位,它有一个独立的虚拟地址空间,用来容纳进程映

像(如与进程关联的程序与数据),并以进程为单位对各种资源实施保护,如受保护地访问处理器、文件、外部设备及其他进程(进程间通信)。多线程环境中的线程概念线程是操作系统进程中能够并发执行的实体,是进程的组成部分,是处理器调度和分派的基本单位。每个进程内可包含多个可并发执行的线程,这些

线程共享进程所获得的内存空间和资源。线程自己基本不拥有系统资源,只拥有少量必不可少的资源:程序计数器、一组寄存器、栈。进程可以分为两部分:资源集合和线程集合。2.线程与进程的比较线程具有进程的许多特征,故又称轻型进程,传统进程称

重型进程。在引入线程的OS中,每一进程都拥有多个线程,至少一个。(1)调度在传统OS中,拥有资源、独立调度和分派的基本单位都是进程,在引入线程的系统中,线程是调度和分派的基本单位,而进程是拥有资源的基本单位。在同一个进程内线程切换不会产生进程切换,由一个进程内的线程切换到另一个

进程内的线程时,将会引起进程切换。(2)并发性在引入线程的系统中,进程之间可并发,同一进程内的各线程之间也能并发执行。因而系统具有更好的并发性。(3)拥有资源无论是传统OS,还是引入线程的OS,进程都是拥有资源的独立单位,线程一般不拥有系统资源,但它可以访问隶属进程的资源

。即一个进程的所有资源可供进程内的所有线程共享。(4)系统开销进程的创建和撤消的开销要远大于线程创建和撤消的开销,进程切换时,当前进程的CPU环境要保存,新进程的CPU环境要设置,线程切换时只须保存和设置少量

寄存器,并不涉及存储管理方面的操作,可见,进程切换的开销远大于线程切换的开销。同时,同一进程内的各线程由于它们拥有相同的地址空间,它们之间的同步和通信的实现也变得比较容易。三、线程的实现多线程的实现分为三类:用户级线程(UserLe

velThread,ULT):对于这种线程的创建、撤消、和切换,由用户程序来实现,内核并不知道用户级线程的存在。内核级线程(KernelLevelThread,KLT):它们是依赖于内核的,即无论是用户进程中的线程,还是系

统进程中的线程,它们的创建、撤消、切换都由内核实现。混合式线程:同时支持ULT和KLT两种线程。1.用户级线程(ULT)由应用程序完成所有线程的管理通过用户空间中的线程库来完成内核并不知道线程的存在。线程库提供线程运行管理系统:创建、撤消线程在线程之间传递消息和数据调度

线程执行保护和恢复线程上下文例子:Java线程库用户级线程的优点和缺点优点:线程切换不调用核心调度是应用程序特定的:可以按需要选择好的算法ULT可运行在任何操作系统上(只需要线程库),可以在一个不支持线程的OS上实现缺点:由于大多

数系统调用是阻塞的,因此一个用户级线程的阻塞会引起整个进程的阻塞。核心只将处理器分配给进程,同一进程中的两个线程不能同时运行于两个处理器上2.核心级线程(KLT)所有线程管理由核心完成没有线程库,但核心提供线程API来使用线程核心维护进程和线程的上下文

线程之间的切换需要核心支持以线程为基础进行调度例子:Windows2003、OS/2核心级线程的优点和缺点优点:对多处理器,核心可以同时调度同一进程的多个线程阻塞是在线程一级完成缺点:在同一进程内的线程切换调

用内核,系统开销较大3.混合式线程既支持用户级线程,又支持内核级线程。例子:Solaris88一、处理器调度的层次2.5处理器调度处理机是计算机系统中的重要资源。处理机调度算法对整个计算机系统的综合性能指标有重要影响。可把

处理机调度分成三个层次:高级调度中级调度低级调度1.高级调度也称为作业调度或长程调度。作业调度的主要功能是根据作业调度算法选择外存上处于后备队列中的某些作业调入内存,并为他们分配必要的资源、创建作业相应的进程,在作业完成后还

要做结束阶段的善后工作。2.低级调度也称进程/线程调度、短程调度。进程调度的主要功能是根据一定的调度算法从就绪队列中选中一个进程/内核级线程获得处理器,让它使用。低级调度是操作系统最核心部分,执行十分频繁,其调度策略的好坏直接影响整个系统的性能。低级调度的

调度方式:(1)非剥夺式(非抢先式)调度程序一旦把cpu分配给某一进程/线程后,便让他一直运行下去,直到进程完成或发生某事件不能运行时,才将cpu分配给其他进程。这种调度方式通常用于批处理系统中。优点:简单,系统开销小缺点:难以满足紧急任务的要求,实时系统

不宜采用。(2)剥夺式(抢先式)当一个进程/线程正在处理器上执行时,调度程序可根据某种原则剥夺cpu分配给其他进程/线程。这种调度方式通常用于分时系统和实时系统中。剥夺的原则:优先权原则短作业(进程)优先原则时间片原则3.中级调度又称平衡调度,中程调度涉及进程在内外存间的交换,当主存

资源紧缺时将暂不运行的进程从内存调至外存,此时这个进程处于“挂起”状态;当进程又具备运行条件且主存资源有空闲时,再将进城从外存调至内存。中级调度的主要目的是提高内存利用率和系统吞吐量。低级调度是各类操作系统必备的,在纯粹的分时系统或实时系统中,通常不需高级调度。一般系统都有高

级调度和低级调度;功能完善的系统引入了中级调度。处理器三级调度模型低级调度高级调度完成超时挂起就绪队列挂起等待队列等待队列就绪队列等待事件交互式用户事件出现后备作业队列中级调度95处理器两级调度模型等待事件事件发生进程完成后备作业队列就绪队列高级调度低级调度等待队列CPU时间片完96二、选

择调度算法的原则l.资源利用率(特别是CPU利用率)CPU利用率=CPU有效工作时间/CPU总的运行时间,CPU总的运行时间=CPU有效工作时间+CPU空闲等待时间。2.吞吐率单位时间内处理的作业数。评价批处理系统性能的另一个重要指标。3.公平性确保每个用户每个进程获得合理的CPU份额或其

他资源份额,不会出现饿死情况。974.响应时间交互式进程从提交一个请求(命令)到接收到响应之间的时间间隔称响应时间。响应时间包括:请求传送到CPU时间、CPU处理请求的时间、响应回送到终端显示器的时间。使交互式用户的

响应时间尽可能短,或尽快处理实时任务,这是分时系统和实时系统衡量调度性能的一个重要指标。985.周转时间批处理用户从作业提交给系统开始,到作业完成为止的时间间隔称作业周转时间。包括四部分时间:在外存后备队列上等待作业调度的时间,相应进程在就绪队列中等待进程调度的时间,进

程在cpu上执行的时间、进程等待I/O操作完成的时间。应使作业周转时间或平均作业周转时间尽可能短,这是批处理系统衡量调度性能的一个重要指标。99周转时间ti作业i提交给系统的时刻是ts,完成时刻是tf,该作业的周转时间ti为:ti=tf–ts。周转时间=作业等待时间+作业运

行时间。为了提高系统的性能,要让若干个用户的平均作业周转时间和平均带权周转时间最小。平均作业周转时间TT=(Σti)/n100带权周转时间wi如果作业i的周转时间为ti,所需运行时间为tk,则wi=ti/tk平均作业带权周转时间WW=(Σwi)/n101三、作业与进程的关系1.作业的基本概念

(1)作业(job)用户提交给操作系统计算的一个独立任务。(2)作业步(jobstep)一个作业可划分成若干加工步骤,称为一个作业步。典型的作业控制过程:“编译”、“链接”“装入”、“运行”(3)作业控制块(JobControlBlock,JCB)为有效地管理作业

,必须为进入系统的每个作业建立作业控制块。JCB是在批作业进入系统时,由Spooling系统建立的,它是作业存在于系统的标志,作业撤离时,JCB也被撤销。JCB保存有系统对于作业进行管理所需要的全部信息。主要信息见图。2.批处理作业的组织和管理一个作业从进入

系统到运行结束经历四个不同的状态:输入状态:后备状态:执行状态:完成状态:作业调度与进程调度的关系进程调度运行就绪等待输入状态后备状态完成状态预输入完成作业控制作业调度(选中并创建进程)作业调度(作业终止并撤离)SPOOLing作业预输入

SPOOLing作业缓输出作业是任务实体,进程是完成任务的执行实体;没有作业任务,进程无事可干,没有进程,作业任务没法完成。作业概念更多地用在批处理操作系统,而进程则可以用在各种多道程序设计系统。2.6处理器调度算法不同系统中由于

其类型和系统目标不同,采用的调度算法也不同。有多种调度算法,有的算法仅适用于作业调度,有的仅适用于进程/线程调度,但大多数对二者都适用。一、先来先服务(FirstComeFirstServed,FCFS)最简单的调度算法,

即可用于作业调度,也可用于进程调度。按作业(进程)来到的先后次序进行调度。优点:易于实现缺点:调度程序每次选择的作业是等待时间最久的,而不管作业的运行时间的长短,此算法效率低;有利于长作业,不利于短作业进程到达时间服务时间开始时间完成时间周转时间带权周转时间A040441B1

34762C25712102D321214115.5E441418143.5平均周转时间=9平均带权周转时间=2.8例:二、最短作业(进程)优先算法SJF:ShortestJobFirstSPF:ShortestProcessFirst可用于作业调度和进程调度。估计作业(

进程)的CPU运行时间,选取估计时间最短的作业(进程)投入运行。上例:进程到达时间服务时间开始时间完成时间周转时间带权周转时间A040441B136982.67C251318163.1D324631.5E449139

2.25平均周转时间=8平均带权周转时间=2.1优点:(1)易于实现。(2)在一般情况下这种调度算法比先来先服务调度算法的调度性能比FCFS好。缺点:(1)作业(进程)的执行时间是用户估计的,不一定准确,所

以实现时不一定真正做到短作业优先调度。(2)对长作业不利若系统不断接受新作业,就有可能使长作业长时间得不到调度。出现饥饿现象(3)缺少剥夺机制,对分时、实时系统仍不理想三、响应比最高者优先算法(HRRF:HighestRespons

eRatioFirst)FCFS与SJF是片面的调度算法。FCFS只考虑作业等候时间而忽视了作业的计算时问,SJF只考虑用户估计的作业计算时间而忽视了作业等待时间。HRRF是介乎这两者之间的折衷算法,既考虑作业等待时间,又考虑作业的运行时间,既照顾短作业又不使长作业的等待时间

过长,改进了调度性能。响应比R=作业周转时间/作业处理时间=(作业处理时间+作业等待时间)/作业处理时间=1+(作业等待时间/作业处理时间)响应比最高者优先算法:每次调度时,计算所有作业的响应比,选择响应比最高的调度。短作业容易得到较高

响应比,长作业等待时间足够长后,也将获得足够高的响应比,饥饿现象不会发生。计算响应比导致一定的时间开销,此算法性能介于FCFS和SJF之间。进程到达时间服务时间开始时间完成时间周转时间带权周转时间A040441B

134762C25914122.4D327963E441418143.5平均周转时间=8.4平均带权周转时间=2.38上例:四、优先级调度算法(HPF—HighestPriorityFirst)为作业或进程确定优先级,选择优先级最高的作业或进程调度。1.两

种方式非剥夺式:某一进程被调度运行后,除非由于它自身的原因不能运行,否则一直运行下去。剥夺式:当有比正在运行的进程优先级更高的进程就绪时,系统可强行剥夺正在运行进程的CPU,提供给具有更高优先级的进程使用。采用这种调度算法的关键是如何确定进程的优先级、一个进程的优

先级确定之后是固定的,还是随着该进程运行的情况的变化而变化。1152.优先级类型(1)静态优先级在进程创建时确定优先级,在进程运行时保持不变。确定优先级方法:系统确定(内部优先级):考虑进程运行时间、使用资源,进程类型。用户确

定(外部优先级):考虑进程紧迫程度,计费与进程优先级有关。(2)动态优先级在进程创建时创立一个优先级,系统在运行的过程中,根据系统的设计目标,不断地调整进程的优先级,这种方法的优点是能比较客观地反映进程的实际情况和保证达到系统设计目标。如等待时间长优先级可改变。五、时间片轮转调度算法(RoundR

obin,RR)分时系统中常用时间片轮转法。把CPU划分成若干时间片,并且按顺序分配给就绪队列中的每一个进程,进程轮流占有CPU,当时间片用完时,即使进程未执行完毕,系统也剥夺该进程的CPU,将该进程排在就绪队列末尾,等候下一轮调度。1.时间片大小的确定时间片大

小对系统性能有很大影响。时间片太小,会导致频繁切换,增大系统开销;时间片太大,轮转一次时间加长,进程在一个时间片内完成,时间片轮转算法退化为FCFS算法,无法满足交互式用户需求。确定时间片长度要从进程数目、切换开销、系统效率和响应时间等多方面加以考虑。2.RR改进RR由于采用固定时间片

和仅有一个就绪队列,所以服务质量不够理想,进一步改进沿两个方向:(1)将固定时间片改为可变时间片引入可变时间片轮转调度算法(2)将单就绪队列改为多就绪队列引入多级反馈队列调度算法六、多级反馈队列调度算法(MLFQ:Multi-levelFeedbackQueue)设置多个就绪队列,并为

各个队列赋予不同的优先级,第一个队列最高,第二个次之„„;各个队列时间片大小也不同,在优先级越高的队列中,为每个进程分配的时间片越小。处理器调度先从第一个就绪进程队列中选取进程,同一队列中的进程按FCFS算法进行排队。

只有在未选到时,才从较低级的就绪进程队列中选取。当新进程进入内存后,首先放在第一个队列末尾,到轮到该进程执行时,如在该时间片完成,便可撤离系统;若未完成,则将该进程转入第二个队列末尾„119该算法具有较好的性能,能满足各类应用的需要。•分时交互型短作业:通常在第一队列规定的时

间片完成,可使终端型用户满意。•短批处理作业:通常在第一队列和第二队列各执行一个时间片就能完成,周转时间仍很短。•长批处理作业:它将一次在第1,2,3„n个队列中运行。

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?