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

下载本文档

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

文档简介

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

温馨提示

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

评论

0/150

提交评论