第二章处理机管理123节_第1页
第二章处理机管理123节_第2页
第二章处理机管理123节_第3页
第二章处理机管理123节_第4页
第二章处理机管理123节_第5页
已阅读5页,还剩163页未读 继续免费阅读

下载本文档

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

文档简介

2020/5/3,1,2.1中央处理器2.2中断技术2.3进程及其实现2.4线程及其实现2.5处理器调度2.6批处理作业的管理与调度2.7低级调度,第2章处理器管理,2020/5/3,2,主要内容:2.1.1单处理器系统和多处理器系统2.1.2寄存器2.1.3特权指令与非特权指令2.1.4处理器状态2.1.5程序状态字寄存器,2.1中央处理器,2020/5/3,3,2.1.2单处理器系统和多处理器系统,计算机系统的核心是中央处理器单处理器系统:一个计算机系统只包括一个运算处理器多处理器系统:一个计算机系统有多个运算处理器,2020/5/3,4,单处理器系统和多处理器系统(续),串行和并行早期计算机系统是基于单个处理器的顺序处理机器,程序员编写串行执行的代码,让其在处理器上串行执行,每条指令的执行也是串行的(取指令、取操作数、执行操作、存储结果)提高计算机处理速度,首先发展起来的是联想存储器系统和流水线系统,前者提出了数据驱动的思想,后者解决了指令并行执行问题,都是计算机并行化发展的例子,2020/5/3,5,联想存储器:不按地址而按给定内容的特征进行存取的存储器联想存储器的特点是:除有存储功能外,还具有信息处理功能。它能根据送来内容的特征查找存储单元对各个存储单元并行进行查找,因而能显著提高查找速度这些特点与人脑的“联想”功能有所相似,因而被称为联想存储器,单处理器系统和多处理器系统(续),2020/5/3,6,单处理器系统和多处理器系统(续),流水线技术:计算机中的流水线是把一个过程分解为若干个子过程,每个子过程与其他子过程并行进行由于这种工作方式与工厂中的生产流水线十分相似,因此称为流水线技术,2020/5/3,7,单处理器系统和多处理器系统(续),计算机系统结构分类按照Flynn分类法目前计算机系统可以分作以下四类:单指令流单数据流(SISD)单指令流多数据流(SIMD)向量机阵列机多指令流单数据流(MISD)多指令流多数据流(MIMD)共享内存紧密耦合MIMD系统内存分布松散耦合MIMD系统两大类,2020/5/3,8,计算机系统结构分类(2),单指令流单数据流:一个处理器在一个存储器中的数据上执行单条指令流。单指令流多数据流:单条指令流控制多个处理单元同时执行,每个处理单元包括处理器和相关的数据存储,一条指令控制了不同的处理器对不同的数据进行操作。向量机和阵列机是这类计算机系统的代表.,2020/5/3,9,单处理器系统和多处理器系统(续),多指令流多数据流(MIMD)紧密耦合MIMD系统(共享内存)主从式系统MSP(Main/SlaveMultiprocessor)对称式系统SMP(SymmetricMulti-Processor),2020/5/3,10,单处理器系统和多处理器系统(续),主从式系统基本思想:在一个特别的处理器上运行操作系统内核,其他处理器上则运行用户程序和操作系统例行程序,内核负责分配和调度各个处理器,并向其他程序提供各种服务(共享内存),2020/5/3,11,单处理器系统和多处理器系统(续),对称式多处理器系统基本思想:有两个或两个以上的处理器,操作系统内核可以运行在任意一个处理器上每个处理器都可以自我调度运行的进程和线程,单个进程的多个线程可在不同处理器上同时运行操作系统内核也被设计成多进程或多线程,内核的各个部分可以并行执行,2020/5/3,12,单处理器系统和多处理器系统(续),多指令流多数据流(MIMD)松散耦合MIMD系统(内存分布)每个处理单元都有一个独立的内存储器,各个处理单元之间通过设定的线路或网络通信多计算机系统集群(Cluster)系统,2020/5/3,13,单处理器系统和多处理器系统(续),集群(Cluster)系统是一组互连的计算机系统,属于分布式系统的一种集群操作系统也是分布式操作系统的一种集群系统运行时构成统一的计算资源,给人以一台机器的感觉集群系统中的每一台计算机离开集群后自己可以独立工作,2020/5/3,14,2.1.2寄存器,计算机系统的处理器包括一组寄存器,其个数根据机型的不同而不同,它们构成了一级存储,比主存容量小,但访问速度快。这组寄存器所存储的信息与程序的执行有很大关系,构成了处理器现场,2020/5/3,15,寄存器(续),这些寄存器可分成以下几类:通用寄存器:可由程序设计者指定许多功能,如存放操作数或用作寻址寄存器数据寄存器:存放操作数,作为内存数据的高速缓存地址寄存器:指明内存地址,如索引寄存器、段寄存器、堆栈指针寄存器等I/O地址寄存器:指定I/O设备I/O缓冲寄存器:用于处理器和I/O设备交换数据控制寄存器:存放处理器的控制和状态信息,至少包括程序计数器PC和指令寄存器IR,中断寄存器以及用于存储器和I/O模块控制的寄存器其他寄存器,2020/5/3,16,2.1.3特权指令与非特权指令,1.程序执行的基本过程计算机的基本功能是执行程序,最终被执行的程序是存储在内存中的机器指令程序处理器根据程序计数器(PC)从内存中取指令到指令寄存器并执行它,PC将自动增长或改变为转移地址指明下条执行的指令,2020/5/3,17,特权指令与非特权指令(续),2.指令功能分类机器指令的集合称指令系统,反映了一台机器的功能和处理能力,指令分为以下五类:(1)数据处理类指令:执行算术和逻辑运算(2)转移类指令:改变指令执行序列,如无条件转移、条件转移等(3)数据传送类指令:用于在处理器的寄存器和寄存器、寄存器和存储器单元、存储器单元和存储器单元之间交换数据(4)移位与字符串指令:算术、逻辑、循环移位;字符串的传送、比较、查询、转换(5)I/O类指令:用于启动外围设备,让主存和外围设备之间交换数据,2020/5/3,18,特权指令与非特权指令(续),3.指令使用权限分类引入操作系统后,从资源管理和控制程序执行的角度出发,必须把指令系统中的指令分作两部分:特权指令非特权指令,2020/5/3,19,特权指令与非特权指令(续),特权指令是指只能提供给操作系统的核心程序使用的指令只有操作系统才能执行指令系统中的全部指令(特权指令和非特权指令)用户程序只能执行指令系统中的非特权指令,2020/5/3,20,特权指令与非特权指令(续),如,置程序状态字指令属于特权指令启动外围设备进行输入/输出的指令也属于特权指令,只能在操作系统程序中执行,否则会出现多个用户程序竞争使用外围设备而导致I/O混乱如果用户程序试图执行特权指令,将会产生保护性中断,转交给操作系统的“用户非法执行特权指令”的特殊处理程序处理,2020/5/3,21,2.1.4处理器状态,中央处理器怎么知道当前是操作系统还是一般用户程序在运行呢?依赖于处理器状态的标志在执行不同程序时,根据执行程序对资源和机器指令的使用权限把处理器设置成不同状态,2020/5/3,22,处理器状态(续),1.处理器状态分类处理器状态又称为处理器的运行模式有些系统把处理器状态划分为核心状态管理状态用户状态大多数系统把处理器状态简单划分为管理状态(特权状态、系统模式、特态或管态)用户状态(目标状态、用户模式、常态或目态),2020/5/3,23,处理器状态(续),2.处理器状态与资源和机器指令使用权限的关系当处理器处于管理状态时,程序可以执行全部指令,访问所有资源,并具有改变处理器状态的能力当处理器处于用户状态时,程序只能执行非特权指令,2020/5/3,24,处理器状态(续),3.IntelPentium的处理器状态0级为操作系统内核级:处理I/O、存储管理和其他关键操作1级为系统调用处理程序级:用户程序可以通过调用这里的过程执行系统调用,但是只有一些特定的和受保护的过程可以被调用2级为共享库过程级:它可以被很多正在运行的程序共享,用户程序可以调用这些过程,读取它们的数据,但是不能修改它们3级为用户程序级:受到的保护最少注意:各个操作系统在实现过程中可以根据具体策略有选择地使用硬件提供的保护级别,如运行在Pentium上的Windows操作系统只使用了0级和3级,2020/5/3,25,处理器状态(续),4.处理器状态之间的转换用户状态向管理状态的转换管理状态向用户状态的转换每台计算机通常会提供一条特权指令称作加载程序状态字LPSW(LoadPSW),用来实现操作系统向用户程序的转换,2020/5/3,26,处理器状态(续),用户状态向管理状态的转换下面两种情况会导致从用户状态向管理状态的转换一是程序请求操作系统服务,执行一条系统调用二是程序运行时,产生了一个中断事件,运行程序被中断,让中断处理程序工作这两种情况都是通过中断机构发生的中断是目态到管态转换的唯一途径当系统响应中断交换程序状态字时,处理中断事件的处理程序的程序状态字的处理器状态位一定为“管态”,2020/5/3,27,2.1.5程序状态字寄存器,计算机如何知道当前处于何种工作状态这时能否执行特权指令?通常操作系统都引入程序状态字PSW(ProgramStatusWord)来区别不同的处理器工作状态,2020/5/3,28,程序状态字寄存器(续),1.PSW寄存器包括的内容每个正在执行的程序都有一个与其执行相关的PSW,而每个处理器都设置一个程序状态字寄存器,2020/5/3,29,程序状态字寄存器(续),程序状态字寄存器一般包括以下内容:程序基本状态:程序计数器:指明下一条执行的指令地址条件码:表示指令执行的结果状态处理器状态位:指明当前的处理器状态,如目态或管态、运行或等待中断码:保存程序执行时当前发生的中断事件中断屏蔽位:指明程序执行中发生中断事件时,是否响应出现的中断事件注意:大多数计算机的处理器现场中可能找不到一个称为程序状态字寄存器的具体寄存器,但总是有一组控制与状态寄存器实际上起到了这一作用,2020/5/3,30,程序状态字寄存器(续),2.IBM360/370系列计算机程序状态字的基本格式8位系统屏蔽(07位):表示允许或禁止某个中断事件发生4位保护键(811位):设置存储器保护时,PSW中的这4位保护键与欲访问的存储区的存储键相匹配,否则指令不能执行4位CMWP字段(1215位):PSW基本/扩充控制方式位、开/关中断位、运行/等待位、目态/特态位16位中断码字段:与中断事件对应,记录当前产生的中断源指令长(32,33位):01/10/11分别表示半字长指令、整字长指令、和一字半长指令条件码(34,35位)4位程序屏蔽(3639位):表示允许或禁止程序性中断24位指令地址(4063位),2020/5/3,31,程序状态字寄存器(续),2020/5/3,32,程序状态字寄存器(续),3.IntelPentium的程序状态字由标志寄存器EFLAGS和指令指针寄存器EIP组成,均为32位指令指针寄存器EIP的低16位称为IP,存放下一条顺序执行的指令相对于当前代码段开始地址的一个偏移地址EFLAGS的低16位称FLAGS,可当作一个单元来处理标志可划分为:状态标志控制标志系统标志,2020/5/3,33,程序状态字寄存器(续),状态标志使得一条指令的执行结果影响后面的指令OF(溢出标志)SF(符号标志)ZF(结果为零标志)AF(辅助进位标志)CF(进位标志)PF(奇偶校验标志),2020/5/3,34,程序状态字寄存器(续),控制标志DF(方向标志)控制串指令操作,设定DF为1,使得串指令自动减量、即从高地址向低地址处理串操作;DF为0时,串指令自动增量VM(虚拟86方式标志)为1时,从保护模式进入虚拟8086模式TF(步进标志)为1时,使处理机执行单步操作IF(陷阱标志)为1时,允许响应中断,否则关中断,2020/5/3,35,程序状态字寄存器(续),系统标志IOPL(I/O特权级标志)NT(嵌套任务标志)RF(恢复标志),2020/5/3,36,主要内容:2.2.1中断的概念2.2.2中断源分类2.2.3中断装置2.2.4中断处理程序2.2.5中断事件的具体处理方法2.2.6中断的优先级和多重中断,2.2中断技术,2020/5/3,37,2.2.1中断的概念,引入中断的目的:请求系统服务,实现并行工作,处理突发事件,满足实时要求,都需要打断处理器正常的工作中断是指程序执行过程中,当发生某个事件时,中止CPU上现行程序的运行,引出处理该事件的程序执行的过程在提供中断装置的计算机系统中,在每两条指令中或某些特殊指令执行期间都检查是否有中断事件发生,若无则立即执行下一条或继续执行,否则响应该事件并转去处理中断事件,2020/5/3,38,中断的概念(续),中断源是引起中断的事件中断装置是发现中断源并产生中断的硬件中断机制的共性:当中断事件发生后,它能改变处理器内操作执行的顺序可见中断是现代操作系统实现并发性的基础之一,2020/5/3,39,中断的概念(续),中断的作用主机与外部设备并行工作实现实时处理硬件故障处理实现多道程序和分时操作,2020/5/3,40,2.2.2中断源分类,1.从中断事件的性质和激活的手段来分强迫性中断事件自愿性中断事件2.按照中断信号的来源来分外中断内中断3.按引起中断的实体来分硬中断软中断,2020/5/3,41,强迫性中断事件,强迫性中断事件不是正在运行的程序所期待的,而是由随机发生的某种事故或外部请求信息所引起的这类中断事件大致有:机器故障中断事件:如电源故障、主存储器出错等程序性中断事件(异常):定点溢出、除数为0、地址越界等外部中断事件:如时钟的定时中断(分时系统)、控制台发控制信息等输入输出中断事件:如设备出错、传输结束等,2020/5/3,42,自愿性中断事件,自愿性中断事件是正在运行的程序所期待的事件比如请求分配外设请求I/O这种事件是由于执行了一条访管指令而引起的,它表示正在运行的程序对操作系统有某种需求,一旦机器执行到一条访管指令时,便自愿停止现行程序的执行而转入访管中断处理程序处理,2020/5/3,43,中断源分类(续),两类中断事件,2020/5/3,44,外中断,外中断(又称中断)指来自处理器和主存之外的中断外中断包括:电源故障中断时钟中断控制台中断它机中断I/O中断等不同的中断具有不同的中断优先级,处理高一级中断时,往往会屏蔽部分或全部低级中断,2020/5/3,45,内中断,内中断(又称异常)指来自处理器和主存内部的中断内中断包括:通路校验错主存奇偶错非法操作码地址越界页面失效调试指令访管中断算术操作溢出等异常(内中断)是不能被屏蔽的,一旦出现应立即响应并加以处理,2020/5/3,46,中断(外)和异常(内)的区别,中断和异常的区别如下:中断是由与现行指令无关的中断信号触发的(异步的)中断的发生与CPU处在用户模式或内核模式无关,通常在两条机器指令之间才可响应中断一般来说,中断处理程序提供的服务不是为当前进程所需的如时钟中断硬盘读写服务请求中断异常是由处理器正在执行现行指令而引起的,一条指令执行期间允许响应异常,异常处理程序提供的服务是为当前进程所用的异常包括很多方面出错(fault)陷入(trap),2020/5/3,47,出错和陷入的区别,出错和陷入的区别如下:它们发生时保存的返回指令地址不同出错保存指向触发异常的那条指令陷入保存指向触发异常的那条指令的下一条指令从异常返回时出错会重新执行那条指令陷入就不会重新执行那条指令如缺页异常是一种出错陷入主要应用在调试中,2020/5/3,48,中断源分类(续),IBM中大型机操作系统使用了上述第一种分类方法Windows2000/XP则采用了上述第二种分类方法,2020/5/3,49,硬中断,硬中断:中断和异常要通过硬件设施来产生中断请求,可看作硬中断,2020/5/3,50,软中断,软中断:不必由硬件发信号而能引发的中断称软中断软中断是利用硬件中断的概念,用软件方式进行模拟,实现宏观上的异步执行效果软中断通常是由内核或进程对某个进程发出的中断信号,可看作内核与进程或进程与进程之间用来模拟硬中断的一种信号通信方式,2020/5/3,51,2.2.3中断装置,中断装置:发现中断源并产生中断的硬件,这些硬件包括中断逻辑线路中断寄存器所有计算机系统都采用硬件和软件(硬件中断装置和软件中断处理程序)结合的方法实现中断处理,2020/5/3,52,中断装置(续),中断装置主要做的三件事发现中断源,响应中断请求保护现场将运行程序中断点在处理器中某些寄存器内的现场信息(又称运行程序的执行上下文)存放于内存储器启动处理中断事件的程序,2020/5/3,53,中断装置(续),中断寄存器用来记录中断事件,中断寄存器的内容称中断字,中断字的每一位对应一个中断事件。每当一条机器指令执行结束的时刻,中断控制部件扫描中断字,查看是否有中断事件发生,若有则处理器便响应这个中断请求中断发生后,中断字的相应位会被置位。由于同一时刻可能有多个中断事件发生,中断装置将根据中断屏蔽要求和中断优先级选取一个,然后把中断寄存器的内容送入程序状态字寄存器的中断码字段,且把中断寄存器相应位清“0”,2020/5/3,54,中断装置(续),被中断的程序的程序状态字称为旧程序状态字,中断处理程序的程序状态字称为新程序状态字,如何实现新旧程序状态字的交换?通常,系统为每一种中断都开辟了主存的固定单元存放新的和旧的程序状态字,2020/5/3,55,中断装置(续),在IBMPC机上,通常在计算机内存的低地址处开辟了一个称为中断向量表的区域,表中每一项称为一个中断向量,其中存放了一个中断处理程序的入口地址及相关信息。当发现中断源并响应中断时,中断装置将把先行PSW内容压进堆栈,接着再把指令指针IP和代码段基地址内容也压入堆栈,这样就保存了原运行程序的状态。处理器根据硬件中断装置提供的中断向量号,获得被接受的中断请求的中断向量地址,再按照中断向量地址把中断处理程序的PSW送入现行程序状态字寄存器,加载新的程序状态字。返回原程序时,把栈顶内容送入现行IP、CS和PSW中。,2020/5/3,56,中断装置(续),IBM中大型机中断响应过程,2020/5/3,57,中断装置(续),IBMPC机中断的响应过程,2020/5/3,58,2.2.4中断处理程序,1.概念:处理中断事件的程序称为中断处理程序它的主要任务是处理中断事件和恢复正常操作,2020/5/3,59,中断处理程序(续),2.入口地址的寻找不同中断源对应不同中断处理程序,故快速找到中断处理程序的入口地址是一个关键问题寻找入口地址可采用如下办法:在主存储器设置一张向量地址表,存储单元的地址对应向量地址,存储单元的内容为入口地址CPU响应中断后,根据预先规定的次序找到相应向量地址,便可获得该中断事件处理程序的入口地址,2020/5/3,60,中断处理程序(续),3.中断处理程序主要工作保护未被硬件保护的一些必需的处理状态如保存通用寄存器的内容到主存储器控制系统在执行中断服务程序过程中是否允许再被中断如果允许就开中断,否则关中断处理发生的中断事件恢复正常操作恢复中断前的程序从断点执行或者重新启动一个新的程序或者甚至重新启动操作系统,2020/5/3,61,2.2.5中断事件的具体处理方法,1.机器故障中断事件的处理这种事件是由硬件故障产生的,排除故障须进行人工干预中断处理能做的工作是:保护现场防止故障蔓延报告给操作员并提供故障信息以便维修和校正对程序中所造成的破坏进行估价和恢复,2020/5/3,62,机器故障中断事件的处理(续),下面是一些硬件失效中断事件的处理办法:1)电源故障的处理:电源发生故障时,硬设备能保证继续正常工作一段时间,操作系统利用这一段时间做三个工作:将处理器中有关寄存器内的信息经主存储器送到磁盘保存起来。停止外围设备工作。有些外围设备不能立即停止,中断处理程序将把这些正在交换信息又不能立即停止的设备记录下来停止处理器工作。此时,整个系统既不执行指令又不响应中断当故障排除后,操作员可以从一个约定点启动操作系统以恢复工作,2020/5/3,63,机器故障中断事件的处理(续),2)主存储器故障的处理中断处理程序停止与出现的中断事件有关的程序的执行,然后向操作员报告出错单元的地址和错误的性质,2020/5/3,64,中断事件的具体处理方法(续),2.程序性中断事件的处理程序性中断事件大致有两种处理办法:(1)对于无法克服的程序性中断事件(如非法指令,目态下使用特权指令,地址越界,):向操作员报告请求干预(2)对于除数为零,操作数溢出等程序性中断事件:可以由用户程序自行处理,或由操作系统进行标准处理,2020/5/3,65,中断事件的具体处理方法(续),3.外部中断事件的处理时钟中断事件的处理时钟是操作系统进行调度工作的重要工具,如让分时进程作时间片轮转、让实时进程定时发出或接收控制信号、系统定时唤醒或阻塞一个进程、对用户进程进行记账,2020/5/3,66,中断事件的具体处理方法(续),时钟可以分为绝对时钟系统设置绝对时钟寄存器,定时地把该寄存器的内容加1。如果开始时这个寄存器的内容为0,那么,只要操作员告诉系统开机时的年、月、日、时、分、秒,以后就可推算出当前的年、月、日、时、分、秒计算当前时间时,只要按时钟中断的次数和绝对时钟寄存器的内容推算就可得到间隔时钟间隔时钟是定时将一个间隔时钟寄存器的内容减1,当间隔时钟寄存器的内容为0时,产生一个间隔时钟中断,起到闹钟的作用,意味着预定的时间到了。操作系统经常利用间隔时钟作控制调度,2020/5/3,67,中断事件的具体处理方法(续),操作系统有关时钟的任务包括内容:维护绝对日期和时间防止进程运行时间超出其允许值,发现陷入死循环的进程对使用CPU的用户进程记账处理进程的间隔时钟(闹钟)对系统的功能或部件提供监视定时器,2020/5/3,68,中断事件的具体处理方法(续),4.I/O中断事件的处理1)I/O操作正常结束后的处理置I/O操作完成的进程状态为可执行状态,并释放等待该设备或通道的进程2)I/O操作发生故障后的处理对于本身故障,可索取状态字节了解故障原因如果复执可以解决故障执行复执,如果复执仍不能克服故障,则报告操作员,进行人工干预,2020/5/3,69,中断事件的具体处理方法(续),3)I/O操作发生异常后的处理设备在操作中发生了某些特殊事件,设备操作结束发生中断时,将情况向系统报告4)设备报到或设备结束的处理如果是外围设备上来的“设备报到”或“设备结束”等异步信号,表示有外围设备接入可供使用或断开暂停使用,操作系统修改系统表格中相应设备的状态,2020/5/3,70,中断事件的具体处理方法(续),5.自愿中断事件的处理用户程序执行n号系统调用通过中断系统进入访管中断处理,保护现场,按功能号跳转通过系统调用入口表找到相应功能入口地址执行相应例行程序,结束后正常情况下返回系统调用的下一条指令执行,2020/5/3,71,2.2.6中断的优先级和多重中断,1.中断的优先级中断优先级:按中断请求的轻重缓急的程度预定的顺序称为中断的优先级优先顺序原则:根据某个中断源或中断级若得不到及时响应,造成计算机出错的严重性程度来定中断的优先级是预先排定的。,2020/5/3,72,中断的优先级和多重中断(续),中断优先级的实现由软硬件结合:硬件:根据排定的优先次序做一个硬件链式排定器,当有高一级的中断事件产生时,封住比它优先级低的所有中断源软件:编写一个查询程序,依据优先级次序自高到低进行查询,2020/5/3,73,中断的优先级和多重中断(续),2.中断的屏蔽可以被屏蔽的中断所有的输入输出中断外中断机器校验中断程序性中断不可以被屏蔽的中断电源断电中断自愿性访管中断中断的屏蔽是根据程序状态字中的中断屏蔽位来实现的。通常允许中断时屏蔽位为1,禁止中断时,屏蔽位为0,2020/5/3,74,中断的优先级和多重中断(续),3.多重中断事件的处理多重中断:中断同时出现、中断虽不同时出现却被硬件同时发现、其他中断正在处理期间,CPU又响应了新的中断事件,于是暂停正在运行的中断处理程序,转去执行新的中断处理程序,这就是多重中断,又称中断嵌套原则:优先级高的允许打短优先级低的,但优先级低的不允许打短优先级高的,2020/5/3,75,中断的优先级和多重中断(续),同一类型的不同中断源:可以按预定次序处理不同类型的中断源可以区别情况做不同处理:1禁止再发生中断2定义中断优先级3响应并进行中断处理,2020/5/3,76,主要内容:2.3.1进程的定义和属性2.3.2进程的状态和转换2.3.3进程的描述2.3.4进程切换与模式切换2.3.5进程的控制,2.3进程及其实现,2020/5/3,77,进程概述,进程是操作系统中最基本、重要的概念是多道程序系统出现后,为了刻画系统内部出现的动态情况,描述系统内部各道程序的活动规律引进的一个概念所有多道程序设计操作系统都建立在进程的基础上,2020/5/3,78,进程概述(续),从理论角度看,进程是对正在运行的程序过程的抽象从实现角度看,进程是一种数据结构,目的在于清晰地刻划动态系统的内在规律,有效管理和调度进入计算机系统主存储器运行的程序,2020/5/3,79,进程概念提出的必要性(续),1.操作系统为什么要引入进程概念?一是刻画系统的动态性,发挥系统的并发性,提高资源利用率在多道程序设计环境下,程序可以并发执行,一个程序的任意两条指令之间都可能发生随机事件而引发程序切换因而,每个程序的执行都可能不是连续的而是走走停停二是它能解决系统的“共享性”,正确描述程序的执行状态,2020/5/3,80,进程概念提出的必要性(续),几个概念:“可再入”程序-是指能被多个程序同时调用的程序“可再用”程序-被调用过程中自身会被修改,在调用它的程序退出之前不允许其他程序来调用它“可再入”程序具有的性质:它是纯代码,即它在执行中自身不被改变;调用它的各程序应提供工作区,因此,“可再入”程序可被多个程序同时调用,2020/5/3,81,进程概念提出的必要性(续),“可再入”程序举例编译程序P编译源程序甲,从A点开始工作,执行到B点时需将信息记到磁盘上,且程序P在B点等待磁盘传输为提高系统效率,利用编译程序的“可再入”性,让编译程序P再为源程序乙进行编译,仍从A点开始工作现在怎样来描述编译程序P的状态呢?称它为在B点等待磁盘传输状态?还是称它为正在从A点开始执行的状态?,2020/5/3,82,进程概念提出的必要性(续),把编译程序P,与服务对象联系起来,P为甲服务就说构成进程P甲,P为乙服务则构成进程P乙两个进程虽共享程序P,但它们可同时执行且彼此按各自的速度独立执行。可见程序与计算(程序的执行)不再一一对应进程是一个既能用来共享资源,又能描述程序并发执行过程的一个基本单位,2020/5/3,83,2.3.1进程的定义和属性,2.进程定义:进程是程序的执行并行程序称为进程进程是可以和别的计算并发执行的计算进程是一个数据结构及其上进行操作的程序进程是一个程序及其数据在处理机上顺序执行时所发生的活动进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位(进程实体是由程序段、相关的数据段和进程控制块组成的),2020/5/3,84,进程的定义和属性(续),本书观点:进程是一个可并发执行的具有独立功能的程序关于某个数据集合的一次执行过程,也是操作系统进行资源分配和保护的基本单位有些系统称进程为“任务”(task)或“活动”(active),2020/5/3,85,进程的定义和属性(续),含义:进程是一个动态的概念,而程序是一个静态的概念进程包含了一个数据集合和运行其上的程序同一程序同时运行于若干不同的数据集合上时,它将属于若干个不同的进程,或者说,两个不同的进程也可以包含相同的程序系统分配资源是以进程为单位的,所以只有进程才可能在不同的时刻处于几种不同的状态既然进程是资源分配的单位,处理机也是按进程分配的,因此,从微观上看,进程是轮换占有处理机而运行的,从宏观上看,进程是并发地运行的;从局部上看,每个程序是串行执行的,从整体上看,多个进程是并发地执行的,2020/5/3,86,进程的定义和属性(续),3.进程的属性(进程与程序比较)(1)结构性进程包含了数据集合和运行于其上的程序。每个进程至少包含三个组成要素:程序块、数据块和进程控制块(2)共享性同一程序运行于不同数据集合上时,构成不同的进程。多个不同的进程可以共享相同的程序,所以进程和程序不是一一对应的。(函数的递归调用也是不同数据共享相同函数,在这一点上类似于进程,但不相同,因为函数不是进程),2020/5/3,87,进程的定义和属性(续),(3)动态性进程由创建而产生,由调度而执行,由撤销而消亡程序是一组有序指令序列,作为一种系统资源是永久存在的(4)独立性进程是系统中资源分配和保护的基本单位,也是系统调度的独立单位(单线程进程),2020/5/3,88,进程的定义和属性(续),(5)制约性并发进程之间存在着制约关系,进程在进行的关键点上需要相互等待或互通消息,以保证程序执行的可再现性和计算结果的唯一性(6)并发性在一个单处理器系统环境下,各个进程轮流占用处理器,2020/5/3,89,进程的定义和属性(续),进程和程序的比较:进程能更真实的描述并发而程序不能进程是由程序和数据两部分组成的进程是动态的而程序是静态的进程有生命周期而程序相对长久一个程序可以对应多个进程进程可以创建其他进程而程序不能进程是一个与时间和空间相关的概念而程序不是,2020/5/3,90,2.3.2进程的状态和转换,1.三态模型2.五态模型3.具有挂起功能的进程状态,2020/5/3,91,三态模型,一个进程从创建而产生至撤销而消亡的整个生命周期,可用一组状态加以刻划,按进程在执行过程中的状况至少定义三种不同的进程状态:运行态(running):进程占有处理器正在运行就绪态(ready):进程具备运行条件,等待系统分配处理器以便运行(进程已经获得了除cpu以外的所有资源后的状态)等待态(wait):又称为阻塞(blocked)态或睡眠(sleep)态,进程不具备运行条件,正在等待某个事件的完成,2020/5/3,92,三态模型(续),通常,当一个进程创建后,就处于就绪状态每个进程在执行过程中,任一时刻当且仅当处于上述三种状态之一在一个进程执行过程中,它的状态将会发生变化,2020/5/3,93,三态模型(续),引起进程状态转换的具体原因运行态等待态:等待使用资源或某事件发生等待态就绪态:资源得到满足或事件发生运行态就绪态:运行时间片到;出现有更高优先权进程就绪态运行态:CPU空闲时选择一个就绪进程,2020/5/3,94,三态模型(续),2020/5/3,95,三态模型(续),注意:进程之间的状态转换并非都是可逆的进程的转换并非都是主动的,只有运行到阻塞是主动行为,其它的都是它动的一个具体进程在任一时刻必须且只能具有上述诸进程中的某一个状态当进程处于运行态时它是微观意义下的运行,而不管进程处于何种状态,它都是宏观意义下的运行,只要它是处于已经开始执行和尚未结束执行的过程中,2020/5/3,96,五态模型,五态模型在三态模型基础上,引进了新建态和终止态新建态对应进程刚被创建的状态为一个新进程创建必要的管理信息,它并没有被提交执行,而是在等待操作系统完成创建进程的必要操作终止态进程的终止首先,等待操作系统进行善后处理然后,退出主存进入终止态的进程不再执行,但依然临时保留在系统中等待善后一旦其他进程完成了对终止态进程的信息抽取之后,系统将删除该进程,2020/5/3,97,五态模型(续),一个新的用户登陆分时系统或者一个新的批处理作业被提交执行,操作系统分两步定义新进程:首先,OS执行一些必需的辅助工作,将标识号关联到进程。当进程处于新建状态时,OS所需要的关于该进程的信息保存在主存中的进程表中,但进程本身还没有进入主存如果系统中有足够的内存资源时,或者系统需要提交一个进程时,处于新建态的进程被提交进入就绪态,代码加载到内存,2020/5/3,98,五态模型(续),一个进程退出系统也分为两步:首先,当进程到达一个自然结束点时、由于出现不可恢复的错误而取消或当具有相应权限的另一个进程引发该进程取消时,进程被终止,终止使进程转换到退出状态,进程不再适合被执行然后由辅助程序或支持程序提供提取所需信息的时间比如记帐程序记录处理器时间和其他资源的使用情况实用程序为了分析性能和利用率,提取进程的历史信息一旦信息提取完毕,OS将进程从系统中删除,2020/5/3,99,五态模型(续),进程五态模型及其转换,2020/5/3,100,五态模型(续),进程状态转换的具体原因NULL新建态:创建一个子进程新建态就绪态:系统完成了进程创建操作,且当前系统的性能和内存的容量均允许运行态终止态:一个进程到达自然结束点,或出现了无法克服的错误,或被操作系统所终结,或被其他有终止权的进程所终结终止态NULL:完成善后操作就绪态终止态:某些操作系统允许父进程终结子进程等待态终止态:某些操作系统允许父进程终结子进程,2020/5/3,101,具有挂起功能的进程状态,(1)为什么要有“挂起”状态?由于进程的不断创建,系统资源已不能满足进程运行的要求,就必须把某些进程挂起(suspend),对换到磁盘镜像区中,暂时不参与进程调度,起到平滑系统操作负荷的目的,2020/5/3,102,具有挂起功能的进程状态(续),(2)引起进程挂起的主要原因系统中的进程均处于等待状态,需要把一些阻塞进程对换出去,腾出足够内存装入就绪进程运行进程竞争资源,导致系统资源不足,负荷过重,需要挂起部分进程以调整系统负荷,保证系统的实时性或让系统正常运行定期执行的进程(如审计、监控、记账程序)对换出去,以减轻系统负荷,2020/5/3,103,具有挂起功能的进程状态(续),用户要求挂起自己的进程,以便进行某些调试、检查和改正父进程要求挂起后代进程,以进行某些检查和改正操作系统需要挂起某些进程,检查运行中资源使用情况,以改善系统性能当系统出现故障或某些功能受到破坏时,需要挂起某些进程以排除故障,2020/5/3,104,具有挂起功能的进程状态(续),(3)进程增加的两个新状态挂起就绪态(readysuspend):表明进程具备运行条件但目前在辅助存储器中,当它被对换到主存才能被调度执行挂起等待态(blockedsuspend):表明进程正在等待某一个事件且在辅助存储器中,2020/5/3,105,2020/5/3,106,具有挂起功能的进程状态(续),(4)引起进程状态转换的具体原因等待态挂起等待态当前不存在就绪进程,至少一个等待态进程将被对换出去成为挂起等待态挂起等待态挂起就绪态引起进程等待的事件发生之后,相应的挂起等待态进程将转换为挂起就绪态挂起就绪态就绪态内存中没有就绪态进程,或挂起就绪态进程具有比就绪态进程更高的优先级,将把挂起就绪态进程转换成就绪态就绪态挂起就绪态系统根据当前资源状况和性能要求,决定把就绪态进程对换出去成为挂起就绪态,2020/5/3,107,具有挂起功能的进程状态(续),挂起等待态等待态当一个进程等待一个事件时,原则上不需要把它调入内存。但是,当一个进程退出后,主存已经有了足够的自由空间,而某个挂起等待态进程具有较高的优先级并且操作系统已经得知导致它阻塞的事件即将结束,便可能发生这一状态变化运行态挂起就绪态当一个高优先级挂起等待进程的等待事件结束后,它将抢占CPU,而此时主存不够,从而可能导致正在运行的进程转化为挂起就绪态。运行态的进程也可以自己挂起自己新建态挂起就绪态根据系统当前资源状况和性能要求,可以将新建进程对换出去成为挂起就绪态挂起的进程将不参与低级调度直到它们被对换进主存,2020/5/3,108,具有挂起功能的进程状态(续),(5)挂起进程具有如下特征该进程不能立即被执行挂起进程可能会等待事件,但所等待事件是独立于挂起条件的,事件结束并不能导致进程具备执行条件进程进入挂起状态是由于操作系统、父进程或进程本身阻止它的运行结束进程挂起状态的命令只能通过操作系统或父进程发出,2020/5/3,109,Linux中进程状态模型的各种状态,用户状态进程在用户状态下运行的状态内核状态进程在内核状态下运行的状态内存中就绪进程没有执行,但处于就绪状态,只要内核调度它,就可以执行内存中睡眠进程正在睡眠并且进程存储在内存中,没有被交换到SWAP设备就绪且换出进程处于就绪状态,但是必须把它换入内存,内核才能再次调度它进行运行,2020/5/3,110,Linux中进程状态模型的各种状态(续),睡眠且换出进程正在睡眠,且被换出内存被抢先进程从内核状态返回用户状态时,内核抢先于它,做了上下文切换,调度了另一个进程。原先这个进程就处于被抢先状态创建状态进程刚被创建。该进程存在,但既不是就绪状态,也不是睡眠状态。这个状态是除了进程0以外的所有进程的最初状态僵死状态(zombie)进程调用exit结束,进程不再存在,但在进程表项中仍有纪录,该纪录可由父进程收集,2020/5/3,111,Linux中进程状态模型的各种状态(续),说明:1、进程在它的生命周期里并不一定要经历所有的状态2、首先父进程通过系统调用fork来创建子进程,调用fork时,子进程首先处于创建态,fork调用为子进程配置好内核数据结构和子进程私有数据结构后,子进程就要进入就绪态3或5,即在内存中就绪,或者因为内存不够,而导致在SWAP设备中就绪,2020/5/3,112,Linux中进程状态模型的各种状态(续),3、假设进程在内存中就绪,这时子进程就可以被内核调度程序调度上CPU运行。进程在用户状态运行时,也会因为需要内核服务,使用系统调用而进入内核状态,服务完毕,会由内核状态转回用户状态。要注意的是,进程在从内核状态向用户状态返回时可能被抢占,进入状态7,这是由于有优先级更高的进程急需使用CPU,不能等到下一次调度时机,从而造成抢占,2020/5/3,113,Linux中进程状态模型的各种状态(续),4、进程还会因为请求的资源不能得到满足,进入睡眠状态,直到它请求的资源被释放,才会被内核唤醒而进入就绪态。如果进程在内存中睡眠时,内存不足,当进程睡眠时间达到一个阀值,进程会被SWAP出内存,使得进程在SWAP设备上睡眠。这种状况同样可能发生在就绪的进程上5、进程调用exit系统调用,将使得进程进入内核状态,执行exit调用,进入僵死状态而结束以上就是进程状态转换的简单描述,2020/5/3,114,补充,Linux系统启动,先由引导程序把系统核心软件装载到内存低端,启动程序start首先建立系统进程,接着由系统进程生成其它各级进程系统的启动程序利用核心功能建立两个系统进程:0号进程:它是系统的调度进程,它将就绪的其它进程调入内存,实现进程调度的功能。在机器运行期间0号进程始终存在,不被撤消1号进程:它由0号进程创建,并且由它建立各用户进程,因而它处于用户进程的祖先地位。1号进程的主要任务是建立各终端进程,为各用户进入系统提供支持,2020/5/3,115,2.3.3进程的描述,1.操作系统的控制结构2.进程的内存映像3.进程控制块4.进程队列及其管理,2020/5/3,116,1.操作系统的控制结构,操作系统的本质任务是自动控制程序的执行,并满足进程执行过程中提出的资源使用要求,因此,操作系统的核心控制结构是进程结构在操作系统的控制结构中,通常构造一些表来管理和维护进程和每一类资源的信息,2020/5/3,117,操作系统的控制结构(续),操作系统的控制表分为四类:进程控制表管理进程及其相关信息存储控制表管理主存和辅存,主要内容包括:主存储器的分配信息,辅助存储器的分配信息,存储保护和分区共享信息,虚拟存储器管理信息,2020/5/3,118,操作系统的控制结构(续),I/O控制表管理计算机系统的I/O设备和通道,主要内容包括:I/O设备和通道是否可用,I/O设备和通道的分配信息,I/O操作的状态和进展,I/O操作传输数据所在的主存区文件控制表管理文件,主要内容包括:被打开文件的信息,文件在主存储器和辅助存储器中的位置信息,被打开文件的状态和其他属性信息,2020/5/3,119,2020/5/3,120,2.进程的内存映像,主存储器中的进程是如何组成的?(1)进程上下文的概念进程上下文(context)-操作系统中把进程物理实体和支持进程运行的环境合称为进程上下文(context)当系统调度新进程占有处理器时,新老进程随之发生上下文切换,进程的运行被认为是在上下文中执行,2020/5/3,121,进程的内存映像(续),(2)进程上下文的三个组成部分用户级上下文(user-level-context):由用户进程的程序块、用户数据块(含共享数据块)和用户堆栈组成的进程地址空间系统级上下文(system-level-context):包括进程控制块、内存管理信息、进程环境块,及系统堆栈等组成的进程地址空间寄存器上下文(register-level-context):由程序状态字(PSW)寄存器和各类控制寄存器、地址寄存器、通用寄存器、用户栈指针等组成,2020/5/3,122,补充,系统栈是内存中属于操作系统空间的一块固定区域,其主要用途为:(1)保存中断现场,对于嵌套中断,被中断程序的现场信息依次压入系统栈,中断返回时逆序弹出;(2)保存操作系统子程序间相互调用的参数、返回值、返回点以及子程序(函数)的局部变量用户栈是用户进程空间中的一块区域,用于保存用户进程的子程序间相互调用的参数、返回值、返回点以及子程序(函数)的局部变量,2020/5/3,123,进程的内存映像(续),(3)进程映像的组成进程映像即进程实体,主要包括:进程程序块即被执行的程序,规定了进程一次运行应完成的功能。通常它是纯代码,可被多个进程共享进程数据块即程序运行时加工处理的对象,包括全局变量、局部变量和常量等的存放区以及开辟的工作区,常常为一个进程专用系统堆栈/用户堆栈每一个进程都将捆绑一个系统/用户堆栈,用来解决过程调用或系统调用时的信息存储和参数传递,2020/5/3,124,进程的内存映像(续),每一个进程都将捆绑一个进程控制块,用来存储进程的标志信息现场信息控制信息进程创建时建立进程控制块,进程撤销时回收进程控制块,进程控制块与进程一一对应,2020/5/3,125,进程的内存映像(续),总结:进程由四个要素组成进程控制块程序块数据块堆栈,2020/5/3,126,进程的内存映像(续),2020/5/3,127,3.进程控制块,每个进程都有一个也只有一个进程控制块PCB(ProcessControlBlock)进程控制块PCB是操作系统用于记录和刻划进程状态及有关信息的数据结构,也是操作系统掌握进程的唯一资料结构,是操作系统控制和管理进程的主要依据进程控制块包括了进程执行时的情况,以及进程让出处理器后所处的状态、断点等信息,2020/5/3,128,进程控制块(续),进程控制块包含三类信息标识信息现场信息控制信息,2020/5/3,129,进程控制块(续),标识信息用于唯一地标识一个进程,常常分为由用户使用的外部标识符和被系统使用的内部标识号几乎所有操作系统中进程都被赋予一个唯一的、内部使用的数值型

温馨提示

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

评论

0/150

提交评论