版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
操作系统教程(第3版)
第二章处理器管理
面向21世纪课程教材高等教育出版社出版2003年8月操作系统教程(第3版)
第二章处理器管理
面向21世纪1第二章处理器管理2.1中央处理器2.2中断技术2.3进程及其实现2.4线程及其实现2.5处理器调度2.6批处理作业的管理与调度2.7低级调度第二章处理器管理2.1中央处理器22.1中央处理器
2.1.1单处理器系统和多处理器系统2.1.2寄存器2.1.3特权指令与非特权指令2.1.4处理器状态2.1.5程序状态字寄存器2.1中央处理器
2.1.1单处理器系统和多处理器系统32.1.1单处理器和多处理器系统
计算机系统的核心是中央处理器单处理器系统:一个计算机系统只包括一个运算处理器。多处理器系统:一个计算机系统有多个运算处理器。2.1.1单处理器和多处理器系统计算机系统的核心是中央处4计算机系统结构分类单指令流单数据流(SISD):一个处理器在一个存储器中的数据上执行单条指令流单指令流多数据流(SIMD):单条指令流控制多个处理单元同时执行,每个处理单元包括处理器和相关的数据存储,一条指令控制了不同的处理器对不同的数据进行操作。向量机和阵列机是这类计算机系统的代表多指令流单数据流(MISD):一个数据流被传送给一组处理器,通过处理器上不同指令操作最终得到处理结果多指令流多数据流(MIMD):多个处理器对各自不同的数据集同时执行不同的指令流。可以把MIMD系统划分为共享内存紧密耦合系统和内存分布松散耦合系统两类计算机系统结构分类单指令流单数据流(SISD):一个处理器在52.1.2寄存器(1)计算机系统的处理器包括一组寄存器,其个数根据机型的不同而不同,它们构成了一级存储,比主存容量小,但访问速度快。这组寄存器所存储的信息与程序的执行有很大关系,构成了处理器现场。2.1.2寄存器(1)计算机系统的处理器包括一组寄存器,其个6寄存器(2)
通用寄存器:数据寄存器:基地址寄存器:I/O地址寄存器:I/O缓冲寄存器:控制寄存器:其他寄存器寄存器(2)
通用寄存器:72.1.3特权指令与非特权指令(1)机器指令的集合称指令系统(1)数据处理类指令;(2)转移类指令;(3)数据传送类指令;(4)移位与字符串指令;(5)I/O类指令。2.1.3特权指令与非特权指令(1)机器指令的集合称指令系8特权指令与非特权指令(2)从资源管理和控制程序执行的角度出发,必须把指令系统中的指令分作两部分:特权指令和非特权指令。特权指令是指只能提供给操作系统的核心程序使用的指令,如启动I/O设备、设置时钟、控制中断屏蔽位、清内存、建立存储键,加载PSW等。特权指令与非特权指令(2)从资源管理和控制程序执行的角度出发92.1.4处理器状态中央处理器怎么知道当前是操作系统还是一般用户程序在运行呢?处理器状态标志和设置处理器成不同状态:管理状态(特权状态、系统模式、特态或管态)和用户状态(目标状态、用户模式、常态或目态)处理器处于管理状态时,程序可以执行全部指令,使用所有资源,具有改变处理器状态的能力;处理器处于用户状态时,程序只能执行非特权指令IntelPentium的处理器状态有四种,支持4个保护级别,0级权限最高,3级权限最低2.1.4处理器状态中央处理器怎么知道当前是操作系统还是102.1.5程序状态字寄存器(1)计算机如何知道当前处于何种工作状态?这时能否执行特权指令?通常操作系统都引入程序状态字PSW(ProgramStatusWord)来区别不同的处理器工作状态PSW用来控制指令执行顺序并保留和指示与程序有关的系统状态,主要作用是实现程序状态的保护和恢复每个程序都有一个与其执行相关的PSW,每个处理器都设置一个PSW寄存器。程序占有处理器执行,它的PSW将占有PSW寄存器2.1.5程序状态字寄存器(1)计算机如何知道当前处于何11程序状态字寄存器(2)
PSW寄存器包括以下内容:程序基本状态:
(1)程序计数器;(2)条件码;(3)处理器状态位。中断码。保存程序执行时当前发生的中断事件。中断屏蔽位。指明程序执行中发生中断事件时,是否响应出现的中断事件。
程序状态字寄存器(2)PSW寄存器包括以下内容:12IBM360/370系列计算机
程序状态字的基本格式
XXXXXXXXXXXXXXXX8位系统屏蔽4位CMWP字段4位程序屏蔽4位保护键16位中断码字段指令长和条件码24位指令地址IBM360/370系列计算机
程序状态字的基本格式13IntelPentium程序状态字IntelPentium中,PSW由标志寄存器EFLAGS和指令指针寄存器EIP组成,均为32位。EFLAGS的低16位称FLAGS,标志可划分为三组:状态标志、控制标志、系统标志。IntelPentium程序状态字IntelPentiu142.2中断技术2.2.1中断的概念2.2.2中断源分类2.2.3中断装置2.2.4中断处理程序2.2.5中断事件的具体处理方法2.2.6中断的优先级和多重中断2.2.7实例研究:Windows2000/XP中断处理2.2.8实例研究:Solaris中断处理2.2.9实例研究:Linux中断处理2.2中断技术2.2.1中断的概念152.2.1中断的概念
•请求系统服务,•实现并行工作,•处理突发事件,•满足实时要求,都需要打断处理器正常的工作,为此,提出了中断概念。2.2.1中断的概念•请求系统服务,16中断的定义中断是指程序执行过程中,当发生某个事件时,中止CPU上现行程序的运行,引出处理该事件的程序执行的过程。中断的定义中断是指程序执行过程中,当发生某个事件时,中止CP172.2.2中断源分类(1)
从中断事件的性质和激活的手段来说,可以分成两类:•强迫性中断事件强迫性中断事件不是正在运行的程序所期待的,而是由于某种事故或外部请求信息所引起的,分为:机器故障中断事件。程序性中断事件。外部中断事件。输入输出中断事件。•自愿性中断事件自愿性中断事件是正在运行的程序所期待的事件。
2.2.2中断源分类(1)从中断事件的性质和激活的手段来18中断源分类(2)
两类中断事件
运行程序中断处理程序中断装置中断处理程序中断装置机器故障中断事件程序性中断事件外部中断事件输入输出中断事件运行程序访管指令中断源分类(2)
两类中断事件运行程序中断处理中断装置中19中断源分类(3)
按照中断信号的来源,可把中断分为如下两类:•外中断(又称中断)指来自处理器和主存之外的中断。•内中断(又称异常)指来自处理器和主存内部的中断。中断源分类(3)
按照中断信号的来源,可把中断分为如下两20中断源分类(4)
•外中断包括:电源故障中断、时钟中断、控制台中断、它机中断和I/O中断等。不同的中断具有不同的中断优先级,处理高一级中断时,往往会屏蔽部分或全部低级中断。•内中断包括:通路校验错、主存奇偶错、非法操作码、地址越界、页面失效、调试指令、访管中断、算术操作溢出等各种程序性中断。•异常是不能被屏蔽的,一旦出现应立即响应并加以处理。中断源分类(4)
•外中断包括:电源故障中断、时钟中断、控21中断和异常的区别
•中断是由与现行指令无关的中断信号触发的(异步的),且中断的发生与CPU处在用户模式或内核模式无关,在两条机器指令之间才可响应中断,一般来说,中断处理程序提供的服务不是为当前进程所需的;•异常是由处理器正在执行现行指令而引起的,一条指令执行期间允许响应异常,异常处理程序提供的服务是为当前进程所用的。异常包括很多方面,有出错(fault),也有陷入(trap)。
中断和异常的区别
•中断是由与现行指令无关的中断信号触发22
出错和陷入的区别
•它们发生时保存的返回指令地址不同,出错保存指向触发异常的那条指令,而陷入保存指向触发异常的那条指令的下一条指令。•从异常返回时,出错会重新执行那条指令,而陷入就不会重新执行那条指令。如缺页异常是一种出错,而陷入主要应用在调试中。出错和陷入的区别
•它们发生时保存的返回指令地址不同,23硬中断与软中断
中断和异常要通过硬件设施来产生中断请求,可看作硬中断。不必由硬件发信号而能引发的中断称软中断,软中断是利用硬件中断的概念,用软件方式进行模拟,实现宏观上的异步执行效果。硬中断与软中断
中断和异常要通过硬件设施来产生中断请求,可看242.2.3中断装置发现中断源并产生中断的硬件称中断装置所有计算机系统都采用硬件和软件结合的方法实现中断处理中断装置主要做以下三件事:发现中断源保护现场启动处理中断事件的程序2.2.3中断装置发现中断源并产生中断的硬件称中断装置252.2.4中断处理程序处理中断事件的程序称为中断处理程序。它的主要任务是处理中断事件和恢复正常操作不同中断源对应不同中断处理程序,故快速找到中断处理程序的入口地址是一个关键问题中断处理程序主要做四项工作:保护未被硬件保护的一些必需的处理状态识别各个中断源,分析产生中断的原因处理发生的中断事件恢复正常操作
2.2.4中断处理程序处理中断事件的程序称为中断处理程序26IBM中大型机中断响应过程
外中断旧PSW访管中断旧PSW程序中断旧PSW机器故障中断旧PSWI/O中断旧PSW外中断新PSW访管中断新PSW程序中断新PSW机器故障中断新PSWI/O中断新PSW18202830385860687078现行PSW②中断时保存现行PSW③中断时装入现行PSW④中断后恢复PSW主存专用双字单元(16进制)①装配中断码IBM中大型机中断响应过程
外中断旧PSW现行P27
IBMPC机中断的响应过程
IPCSPSW现行PSW寄存器新IP新CS老IP老CS老PSW新栈顶主存新PSWIBMPC机中断的响应过程IPCSPSW现行PS282.2.5中断事件具体处理方法1、机器故障中断事件的处理
事件是由硬件故障产生的,排除故障须进行人工干预。中断处理能做的工作是:保护现场,防止故障蔓延,报告给操作员并提供故障信息以便维修和校正,及对程序中所造成的破坏进行估价和恢复。2.2.5中断事件具体处理方法1、机器故障中断事件的处理292、程序性中断事件的处理
终止程序执行警告用户交给用户处理2、程序性中断事件的处理
终止程序执行303、外部中断事件的处理
时钟是操作系统进行调度工作的重要工具,如让分时进程作时间片轮转、让实时进程定时发出或接收控制信号、系统定时唤醒或阻塞一个进程、对用户进程进行记账时钟可分成绝对时钟和间隔时钟两种控制台中断事件的处理3、外部中断事件的处理
时钟是操作系统进行调度工作的重要工具314、I/O中断的处理(1)
I/O中断种类较多,处理方法各异1)I/O操作正常结束后的处理2)I/O操作发生故障后的处理3)I/O操作发生异常后的处理4)设备报到或设备结束的处理
4、I/O中断的处理(1)
I/O中断种类较多,处理方法325、自愿中断事件的处理(1)系统程序或用户程序执行访管指令而引起的中断,它表示运行程序对操作系统功能的调用,所以,也称系统调用,可以看作是机器指令的一种扩充。5、自愿中断事件的处理(1)系统程序或用户程序执行访管指令而33自愿中断事件的处理(2)系统调用机制通过特殊硬指令和中断系统来实现。共性处理流程:用户程序执行n号系统调用通过中断系统进入访管中断处理,保护现场通过系统调用入口表,按功能号跳转找到相应功能入口地址执行相应例行程序,结束后正常情况返回系统调用的下一条指令执行自愿中断事件的处理(2)系统调用机制通过特殊硬指令和中断342.2.6中断优先级和多重中断1、中断的优先级2、中断的屏蔽3、多重中断事件的处理2.2.6中断优先级和多重中断1、中断的优先级351中断优先级计算机执行的每一瞬间,可能有几个中断事件同时发生,中断装置如何来响应同时发生的中断呢?它按照预定顺序来响应,这个预定顺序称中断的优先级,首先响应优先级高的中断事件。1中断优先级计算机执行的每一瞬间,可能有几个中断事362中断的屏蔽
•主机可允许或禁止某类中断的响应,如允许或禁止所有的I/O中断、外部中断、及某些程序性中断。•有些中断是不能被禁止的,例如,计算机中的自愿性访管中断就不能被禁止。
2中断的屏蔽•主机可允许或禁止某类中断的响应,如允许或373多重中断事件的处理
中断正在进行处理期间,这时CPU又响应了新的中断事件,于是暂时停止正在运行的中断处理程序,转去执行新的中断处理程序,这就叫多重中断(又称中断嵌套)。
3多重中断事件的处理
中断正在进行处理期间,这时382.2.7实例研究:Windows2000/XP中断处理
Windows2000/XP中断类型中断有I/O设备、处理器时钟或定时器等,可以启用或禁用。中断是异步事件,可能随时发生,与处理器正在执行的内容无关。异常是同步事件,它是某一个特定指令执行的结果。异常的例子是内存访问错误、调试指令及被零除。内核也将系统服务调用视作异常。硬件和软件都可以产生中断和异常,如总线出错异常由硬件造成,而被零除异常是由软件引起的;同样,I/O设备可产生中断,而内核自身也可以发出中断。
2.2.7实例研究:Windows2000/XP中断处理39
Windows2000/XP陷阱调度
中断服务例程中断服务例程中断服务例程异常调度器虚存管理的页面管理器中断调度器系统服务调度器异常调度器陷阱处理程序异常帧虚拟地址异常硬件异常软件异常系统服务调用中断Windows2000/XP陷阱调度
中断服务中断服务40
Windows2000/XP中断请求级
系统关闭高31掉电30处理器内的中断29时钟28配置文件设备n………设备1Dispatch/DPC2APC1低0硬件中断软件中断正常的线程执行
Windows2000/XP中断请求级
系统关闭高41Windows2000/XP中断屏蔽
高掉电处理器内的中断时钟配置文件设备n………设备1在处理器A上被屏蔽的中断Dispatch/DPCAPC低IRQL=时钟处理器A在处理器B上被屏蔽的中断IRQL=Dispatch/DPC处理器BWindows2000/XP中断屏蔽
高掉电处理器内的42Windows2000/XP硬件中断处理
高掉电处理器间的中断时钟设备n………设备1②中断调度程序接收到中断源的IRQL,用作查询IDT的索引Dispatch/DPCAPC低①有中断产生………线程调度程序/DPC处理程序(无)系统关闭例程系统调电例程处理器间中断处理程序时钟处理程序设备nISR设备1ISRAPC处理程序③中断调度程序跟随该指针,调用相应的处理程序Windows2000/XP硬件中断处理
高掉电43Windows2000/XP软件中断处理
多数中断由硬件产生,但内核也为多种任务产生软件中断,包括:启动线程调度、处理计时器到时、在特定线程的描述表中异步执行一个过程及支持异步I/O等。延迟过程调用DPC软件中断Windows2000/XP软件中断处理
多数中断由硬件产44延迟过程调用--提交DPC
高掉电………②如果IRQL降到比Dispatch/DPC级低,则DPC中断发生。Dispatch/DPCAPC低①定时器到时,内核排好DPC队列,准备释放等候在定时器上的所有线程,然后内核请求软件中断。………调度程序③DPC中断之后,控制传送给(线程)调度程序DPCDPCDPC④调度程序执行DPC中的每一个DPC例程,然后使队列变空。如果需要,调度程序还重新安排处理器延迟过程调用--提交DPC
高掉电…②如果IRQL降到45异步过程调用
异步过程调用APC为用户程序和系统代码提供了一种在特殊用户线程的描述表(特殊的地址空间)中执行代码的方法。
异步过程调用
异步过程调用APC为用户程序和系统代码提供了一46异常调度
异常是由运行程序的执行产生的情况。异常处理工具,允许应用程序在异常发生时可以得到控制。应用程序可以固定这个状态并返回到异常发生的地方展开堆栈,也可以向系统声明不能识别异常,并继续搜寻能处理异常的异常处理程序。除陷阱处理程序解决的异常外,所有异常均由异常调度程序提供服务,它的任务是找到能处理该异常的异常处理程序。如果异常产生于核心态,异常调度程序将调用一个例程来定位处理该异常的异常处理程序。没有被处理的核心态异常是一种致命的系统错误。异常调度
异常是由运行程序的执行产生的情况。异常处理工具,允47用户态核心态系统服务调用陷阱处理程序系统服务调度程序系统服务调度表0123………n系统服务扩展系统服务2系统服务调度(1)
用户态核心态系统服务调用陷阱处理程序系统服务系统服务调度表048系统服务调度(2)
调用WriteFile()Win32应用程序调用NtWriteFile返回调用者KERNEL32.DLL中的WriteFileINT2E返回调用者NTDLL.DLL中的NtWriteFile调用NtWriteFile开中断NTOSKRNL.EXE中的KiSystemService执行操作返回调用者NTOSKRNL.EXE中的NtWriteFile调用USER及GDI服务应用程序INT2E返回调用者GDI32.DLL或USER32.DLL调用WIN32例程开中断NTOSKRNL.EXE中的KiSystemService执行操作返回调用者WIN32K.SYS中的服务入口点用户态核心态WIN32专用WIN32专用所有子系统使用软件中断软件中断WIN32内核APIWIN32USER及GDIAPI系统服务调度(2)调用Win32应用程序调用NtWri492.2.9实例研究:Linux中断处理
1Linux中断处理过程2快中断与慢中断3底半处理4任务队列5底半处理数据结构6底半处理的执行过程7Linux软中断机制2.2.9实例研究:Linux中断处理1Linux中断处50快中断与慢中断
•Linux中,可以区分快中断和慢中断两类中断事件。•处理慢中断前需保存所有寄存器的内容,而快中断处理仅要保存被常规C函数修改的寄存器;慢中断处理时,不屏蔽其他中断信号,而快中断处理时会屏蔽所有其他中断;•慢中断处理完毕后,通常不立即返回被中断的进程,而是进入调度程序重新调度,调度结果未必是被中断的进程运行(是抢先式调度)。而快中断处理完毕后,通常恢复现场返回被中断的进程继续执行(是非抢先式调度)。快中断与慢中断
•Linux中,可以区分快中断和慢中断两类中51底半处理
•为了尽快缩短快中断处理时间,以便及时响应处理期间到达的其他中断信号,引入了底半处理的概念。(1)什么是底半处理?(2)为什么需要有底半处理?•bottomhalfhandling是一种任务延迟处理机制
•“硬中断”是外部设备对CPU的中断,tophalf是硬中断;同时,“软中断”通常是硬中断服务程序对内核的中断,bottomhalf是软中断;而“信号”也是一种软中断,“信号”是由内核或进程对其他进程的中断。
底半处理
•为了尽快缩短快中断处理时间,以便及时响应处理52任务队列
•Linux内核中设立任务队列,这是核心对任务进行延迟处理的方法,提供对任务队列中任务排队及处理的通用机制。•任务队列和底半处理过程bottomhalf的关系?•核心建立和维护三个一般性任务队列:(1)定时器队列(TQ-TIMER)(2)即时队列(TQ-IMMEDIATE)(3)进程调度队列(TQ-SCHEDULER任务队列•Linux内核中设立任务队列,这是核心对任务进53底半处理数据结构
··bh-active310bh-mask310bh-base底半处理过程031底半处理数据结构bh-acti54底半处理的执行过程
三种情况下执行bottomhalf处理过程:当调度程序欲选择下一个运行进程之前(Schedule())。当从系统调用返回之前(ret_from_syscall)。当每个中断处理和异常处理返回前(ret_from_intr和ret_from_exception)。定时器中断(IRQ0)中断服务例程的tophalf与bottomhalf处理过程间的联系。定时器中断服务例程(函数)叫timer-interrupt,执行它的tophalf函数为do-timer。执行它的bottomhalf函数为timer-bh。底半处理的执行过程
三种情况下执行bottomhalf55Linux软中断机制
Linux的bottomhalfLinux的taskletLinux的softirqLinux软中断机制
Linux的bottomhalf562.3进程及其实现
2.3.1进程的定义和属性2.3.2进程的状态和转换2.3.3进程的描述2.3.4进程切换与模式切换2.3.5进程的控制2.3.6实例研究:UNIXSVR4进程管理2.3.7实例研究:Linux进程管理2.3进程及其实现
2.3.1进程的定义和属性572.3.1进程的定义和性质
•进程是一个可并发执行的具有独立功能的程序关于某个数据集合的一次执行过程,也是操作系统进行资源分配和保护的基本单位。•进程是一个既能用来共享资源,又能描述程序并发执行过程的一个基本单位。•操作系统引入进程的概念从理论角度看,是对正在运行的程序过程的抽象;从实现角度看,是一种数据结构,目的在于清晰地刻划动态系统的内在规律,有效管理和调度进入计算机系统主存储器运行的程序。2.3.1进程的定义和性质
•进程是一个可并发执行的具有独58操作系统为什么要引入进程概念?原因1-刻画系统的动态性,发挥系统的并发性,提高资源利用率。原因2-它能解决系统的“共享性”,正确描述程序的执行状态。“可再用”程序“可再入”程序“可再入”程序具有的性质操作系统为什么要引入进程概念?原因1-刻画系统的动态性,发挥59
进程的属性
•结构性:•共享性:•动态性:•独立性:•制约性:•并发性:
进程的属性•结构性:60“可再入”程序举例
编译程序P(P的入口,处理源程序乙)(P把源程序甲的信息记盘等磁盘完成)AB源程序甲源程序乙“可再入”程序举例
编译程序P(P的入口,处理源程序乙612.3.2进程的状态和转换
进程三态模型及其状态转换
运行态就绪态等待态选中落选出现等待事件等待事件结束2.3.2进程的状态和转换
进程三态模型及其状态转换
运62进程五态模型及其转换运行态就绪态等待态选中落选出现等待事件等待事件结束新建态终止态进程五态模型及其转换运行态就绪态等待态选中落选出现等待等待事63进程的挂起
为什么要有“挂起”状态?由于进程的不断创建,系统资源已不能满足进程运行的要求,就必须把某些进程挂起(suspend),对换到磁盘镜像区中,暂时不参与进程调度,起到平滑系统操作负荷的目的。
进程的挂起
为什么要有“挂起”状态?64进程的挂起原因(1)
(1)系统中的进程均处于等待状态,需要把一些阻塞进程对换出去,腾出足够内存装入就绪进程运行。(2)进程竞争资源,导致系统资源不足,负荷过重,需要挂起部分进程以调整系统负荷,保证系统的实时性或让系统正常运行。(3)定期执行的进程(如审计、监控、记账程序)对换出去,以减轻系统负荷。
进程的挂起原因(1)
(1)系统中的进程均处于等待状65进程的挂起原因(2)
(4)用户要求挂起自己的进程,以便进行某些调试、检查和改正。(5)父进程要求挂起后代进程,以进行某些检查和改正。(6)操作系统需要挂起某些进程,检查运行中资源使用情况,以改善系统性能;或当系统出现故障或某些功能受到破坏时,需要挂起某些进程以排除故障。进程的挂起原因(2)
(4)用户要求挂起自己的进程,66具有挂起功能的进程状态及其转换
挂起等待事件结束出现等待事件解除挂起挂起落选选中运行态就绪态等待事件结束终止态新建态挂起就绪态解除挂起挂起挂起等待态等待态提交提交具有挂起功能的进程状态及其转换
挂起等待事件结束出现等待事67具有挂起进程功能的进程状态
进程增加了两个新状态:挂起就绪态(readysuspend)表明进程具备运行条件但目前在二级存储器中,当它被对换到主存才能被调度执行。挂起等待态(blockedsuspend)表明进程正在等待某一个事件且在二级存储器中。具有挂起进程功能的进程状态进程增加了68挂起进程具有如下特征
•该进程不能立即被执行。•挂起进程可能会等待事件,但所等待事件是独立于挂起条件的,事件结束并不能导致进程具备执行条件。•进程进入挂起状态是由于操作系统、父进程或进程本身阻止它的运行。•结束进程挂起状态的命令只能通过操作系统或父进程发出。挂起进程具有如下特征
•该进程不能立即被执行。692.3.3进程的描述操作系统核心控制结构是进程结构,资源管理的数据结构将围绕进程结构展开。操作系统的控制表分为四类,进程控制表,存储控制表,I/O控制表和文件控制表。2.3.3进程的描述操作系统核心控制结构是进程结构,资源管70操作系统控制表的通用结构
MemoryDevicesFilesProcessesMemoryTablesI/OTablesFileTablesPrimaryProcessTableProcess1……ProcessNProcess2ProcessImageProcess1Image……ProcessNImage操作系统控制表的通用结构
MemoryDevicesFi71
进程映像
操作系统中把进程物理实体和支持进程运行的环境合称为进程上下文(context)。当系统调度新进程占有处理器时,新老进程随之发生上下文切换。进程的运行被认为是在上下文中执行。
进程映像
操作系统中把进程物理实体和支持进程运行的环境合72进程上下文组成
•用户级上下文:由用户程序块、用户数据块和用户堆栈组成的进程地址空间。•系统级上下文:包括进程的标识信息、现场信息和控制信息,进程环境块,及系统堆栈等组成的进程地址空间。•寄存器上下文:由PSW寄存器和各类控制寄存器、地址寄存器、通用寄存器组成。进程上下文组成•用户级上下文:由用户程序块、用户数据块和用73进程有四个要素组成
•进程程序块•进程数据块•系统堆栈•用户堆栈进程有四个要素组成
•进程程序块74用户进程在虚拟内存中的组织
进程标识信息进程现场信息进程控制信息用户堆栈用户私有地址空间(代码、数据)进程控制块共享地址空间用户进程在虚拟内存中的组织
进程标识信息进程现场信息进程75
进程控制块
进程控制块PCB,是操作系统用于记录和刻划进程状态及有关信息的数据结构。也是操作系统掌握进程的唯一资料结构,它包括了进程执行时的情况,以及进程让出处理器后所处的状态、断点等信息。进程控制块包含三类信息标识信息现场信息控制信息
进程控制块
进程控制块PCB,是操作系统用于记录和刻76
进程管理
处于同一状态的所有PCB链接在一起的数据结构称为进程队列(ProcessQueues)。同一状态进程的PCB既可按先来先到的原则排成队列;也可按优先数或其它原则排成队列。单向链接与双向链接
进程管理
处于同一状态的所有PCB链接在一起的数据结构称77队列标志
系统为每个队列设置一个队列标志:单向链接时,队列标志指引元指向队列中第一个进程的队列指引元的位置;双向链接时,队列标志的后向指引元指向队列中第一个进程的后向队列指引元的位置;队列标志的前向指引元指向队列中最后一个进程的前向队列指引元的位置队列标志
系统为每个队列设置一个队列标志:78进程控制块的链接
队列标志0队列标志00后向前向(a)单向连接(b)双向连接是队列指引元进程控制块的链接
队列标志0队列标志00后向前向(a)79队列管理和状态转换示意图
处理器指派提交完成超时事件1等待队列事件2等待队列事件n等待队列就绪队列……等待事件1等待事件2等待事件n事件1出现事件2出现事件n出现队列管理和状态转换示意图
处理器指派提交完成超时事件1等80表格法组织PCB表格法组织PCB。所有进程的PCB都组织在一个线性表中,进程调度时需要查找整个PCB表;也可以把相同状态进程的PCB组织在一个线性表中,系统有多个线性表,这样可缩短查表时间。表格法组织PCB表格法组织PCB。所有进程的PCB都组织在一812.3.4进程切换与CPU模式切换
进程切换是让处于运行态的进程中断运行,让出处理器,这时要做一次进程上下文切换、即保存老进程状态而装入被保护了的新进程的状态,以便新进程运行2.3.4进程切换与CPU模式切换
进程切换是让处于运行82进程切换的步骤保存被中断进程的处理器现场信息修改被中断进程的进程控制块的有关信息,如进程状态等把被中断进程的进程控制块加入有关队列选择下一个占有处理器运行的进程修改被选中进程的进程控制块的有关信息根据被选中进程设置操作系统用到的地址转换和存储保护信息根据被选中进程恢复处理器现场进程切换的步骤保存被中断进程的处理器现场信息83调度和切换时机问题
•请求调度的事件发生后,就会运行低级调度程序,低级调度程序选中新的就绪进程后,就会进行上下文切换。实际上,由于种种原因,调度和切换并不一定能一气呵成。•通常的做法是,由内核置上请求调度标志,延迟到上述工作完成后再进行调度和进程上下文切换,•Linux进程调度标志位need-resched,Windows延迟过程调用DPC/dispatch软件中断。调度和切换时机问题•请求调度的事件发生后,就会运行低级调84CPU模式切换•当中断发生时,暂时中断正在执行的用户进程,把进程从用户状态切换到内核状态,去执行操作系统例行程序以获得服务,这就是一次模式切换,•内核在被中断了的进程的上下文中对这个中断事件作处理,即使该中断可能不是此进程引起的CPU模式切换•当中断发生时,暂时中断正在执行的用户进程,85模式切换的步骤•保存被中断进程的处理器现场信息。•根据中断号置程序计数器。•把用户状态切换到内核状态,以便执行中断处理程序。模式切换的步骤•保存被中断进程的处理器现场信息。86CPU模式切换与进程上下文切换模式切换不同于进程切换,它并不引起进程状态变化,也不一定引起进程的切换,在完成了中断调用之后,完全可以再通过一次逆向的模式切换来继续执行用户进程。CPU模式切换与进程上下文切换模式切换不同于进程切换,它并不87UNIX中进程上下文切换和模式切换
核心态运行系统调用或中断(隐含模式切换)模式切换用户态运行等待状态就绪状态发生事件唤醒调度进程中断、中断返回允许的上下文切换切换UNIX中进程上下文切换和模式切换
核心态系统调用或中断(882.3.5进程的控制
处理器管理的一个主要工作是对进程的控制,包括:创建进程、阻塞进程、唤醒进程、挂起进程、激活进程、终止进程和撤销进程等。这些控制和管理功能由操作系统中的原语实现。原语(Primitive)是在管态下执行、完成系统特定功能的过程。原语和机器指令类似,其特点是执行过程中不允许被中断,是一个不可分割的基本单位,原语的执行是顺序的而不可能是并发的。2.3.5进程的控制
处理器管理的892.3.6实例研究:UNIXSVR4的
进程管理
UNIXSVR4采用基于用户进程的运行模型,操作系统功能在用户进程的环境中执行,需要在用户和内核模式间切换。UNIXSVR4允许两类进程:用户进程和系统进程。系统进程在内核模式下执行,完成系统的一些重要功能。用户进程在用户模式下执行用户程序,系统调用、中断和异常将引起模式切换。•UNIXSVR4
进程状态•userrunning:•kernelrunning:•preempted:•readytorun,inmemory:•Asleepinmemory:•readytorun,swapped:•sleeping,swapped:•zombie:2.3.6实例研究:UNIXSVR4的
进程管理
UNI90
UNIXSVR4进程状态及其转换
内存就绪用户态运行内核态运行被剥夺就绪换出创建内存睡眠睡眠换出僵死返回用户模式系统调用或中断返回剥夺选中退出中断,中断返回内存空间足够内存空间不足唤醒唤醒换出换进换出睡眠Fork
UNIXSVR4进程状态及其转换
内存就绪用户态内核91
UNIXSVR4的进程描述
UNIX进程由三部分组成:proc结构、数据段和正文段,合称进程映像,UNIX中把进程定义为映像的执行。PCB由基本控制块proc结构和扩充控制块user结构组成。proc结构存放一个进程最基本、必需的信息,常驻内存;user结构存放进程运行时才用到的数据和状态信息,当进程暂时不在处理机上运行时,就把它放在磁盘的对换区中,进程的user结构总和进程的数据段一起,在主存和磁盘对换区之间换进/换出
UNIXSVR4的进程描述
UNIX进程由三部分组成:p92UNIXSVR4进程组成
processstructureuserstructurekernelstacktextstructurestackdatatextSystemdatastructureuserspaceSwappableprocessimageResidenttablesUNIXSVR4进程组成
processuserkern93UNIXSVR4的进程创建
fork()创建子进程,系统执行操作:•为子进程分配进程表。•为子进程分配进程标识符。•复制父进程的进程映像,但不复制共享内存区。•增加父进程所打开文件的计数,表示新进程也在使用这些文件。•把子进程置为readytorun状态。•返回子进程标识符给父进程,把0值返回给子进程。UNIXSVR4的进程创建
fork()创建子进程,942.3.7实例研究:Linux进程管理
Linux的进程概念与传统操作系统中的进程概念完全一致,进程是操作系统调度的最小单位。用户态称进程,核心态称任务,实质上是一个实体2.3.7实例研究:Linux进程管理
Lin95Linux的进程状态
•TASK_RUNNING:•TASK_INTERRUPTIBLE:•TASK_UNINTERRUPTIBLE:
•TASK_ZOMBIE:•TASK_STOPPED:•TASK_SWAPPING:Linux的进程状态
•TASK_RUNNING:96Linux的进程状态转换
僵死TASK_ZOMBIE就绪TASK_RUNNING不可中断TASK_UNINTERRUPTIBLE可中断TASK_INTERRUPTIBLE停止TASK_STOPPED占有CPU运行调度schedulle时间片到申请资源未果,调用interruptible_sleep_on()申请资源未果,调用sleep_on()申请资源可用后wake_up()申请资源可用,收到信号、wake_up()wake_up_interruptible()创建do_fork()执行do_exit()跟踪系统调用,执行syscall_trace()sys_exit()schedulle()收到SIG_KILL或SIG_CONT后,执行wake_up()Linux的进程状态转换僵死TASK_ZOMBIE就绪T97Linux创建进程
•sys_fork()和sys_clone都通过调用do_fork()函数来完成进程的创建。•分配进程控制块task_struct的内存和进程所需的堆栈,并监测是否可以增加新进程;•拷贝当前进程的内容,并对数据成员初始化;为进程运行做准备;返回生成的新进程的进程标识号(pid)。如果进程是根据sys_clone()产生的,它的进程标识号就是当前进程的进程标识号,并且进程控制块中的一些成员指针并不进行复制,仅仅把这些成员指针的计数count增加1。这样,父子进程可以有效地共享资源。Linux创建进程•sys_fork()和sys_cl98Linux进程终止进程终止的系统调用sys_exit()通过调用do_exit()函数实现。函数do_exit()释放进程占用的大部分资源,进入TASK_ZOMBIE状态。Linux进程终止进程终止的系统调用sys_exit()通过992.4线程及其实现
2.4.1引入多线程技术的动机2.4.2多线程环境中的进程和线程2.4.3线程的实现2.4.4实例研究:Solaris的进程与线程2.4.5实例研究:Windows2000/XP的进程与线程2.4线程及其实现
2.4.1引入多线程技术的动机1002.4.1引入多线程技术的动机
考察一个文件服务器的例子单线程(结构)进程(SingleThreadedProcess)多线程(结构)进程(MultipleThreadedprocess)2.4.1引入多线程技术的动机
考察一个文件服101
单线程结构进程给并发程序设计效率带来问题
•进程切换开销大•进程通信代价大•进程间的并发性粒度较粗,并发度不高•不适合并行计算和分布并行计算的要求•不适合客户/服务器计算的要求。单线程结构进程给并发程序设计效率带来问题
•进程切换102线程的概念(1)操作系统中引入进程的目的是为了使多个程序并发执行,以改善资源使用率和提高系统效率,操作系统中再引入线程,则是为了减少程序并发执行时所付出的时空开销,使得并发粒度更细、并发性更好。线程的概念(1)操作系统中引入进程的目的是为了使多个程序并发103线程的概念(2)
解决问题的基本思路:•把进程的两项功能--“独立分配资源”与“被调度分派执行”分离开来,•进程作为系统资源分配和保护的独立单位,不需要频繁地切换;•线程作为系统调度和分派的基本单位,能轻装运行,会被频繁地调度和切换,在这种指导思想下,产生了线程的概念。线程的概念(2)解决问题的基本思路:1042.4.2多线程环境中的进程与线程
单线程进程的内存布局和运行进程控制块进程用户地址空间用户堆栈系统堆栈管理者执行序列单线程进程(模型)
用户地址空间进程控制块用户堆栈系统堆栈2.4.2多线程环境中的进程与线程
单线程进程的105
管理和执行相分离的进程模型
用户堆栈系统堆栈执行控制进程进程控制块用户地址空间共享执行序列管理者执行序列用户堆栈系统堆栈执行控制管理和执行相分离的进程模型
用户堆栈系统堆栈执行控制进106
多线程进程的内存布局
多线程进程模型
用户地址空间进程控制块线程控制块系统堆栈用户堆栈线程1线程控制块系统堆栈用户堆栈线程N多线程进程的内存布局
多线程进程模型用户进程线程控制块系107多线程环境中进程的定义
进程是操作系统中进行保护和资源分配的基本单位。它具有:•一个虚拟地址空间,用来容纳进程的映像;•对处理器、其他(通信的)进程、文件和I/O资源等的存取保护机制。多线程环境中进程的定义进程是操作系统中进行保护和资源分配108
多线程环境中的线程概念
线程是操作系统进程中能够独立执行的实体(控制流),是处理器调度和分派的基本单位。线程是进程的组成部分,每个进程内允许包含多个并发执行的实体(控制流),这就是多线程。
多线程环境中的线程概念
线程是操作系统进程中能够独立109线程组成与特性•组成•线程执行状态(运行、就绪、…);•当线程不运行时,有一个受保护的线程上下文,用于存储现场信息。所以,线程也可被看作是执行在进程内的一个独立的程序计数器;•一个执行堆栈•一个容纳局部变量的主存存储区。•特性并行性:共享性:动态性:结构性:线程组成与特性•组成110线程又称轻量进程
•线程运行在进程的上下文中,并使用进程的资源和环境。•系统调度的基本单位是线程而不是进程,每当创建一个进程时,至少要同时为该进程创建一个线程,否则该进程无法被调度执行。线程又称轻量进程•线程运行在进程的上下文中,并使用进程的111
线程的状态
线程状态有:运行、就绪和阻塞,线程的状态转换也类似于进程。挂起状态对线程是没有意义的,如果进程挂起后被对换出主存,则它的所有线程因共享了进程的地址空间,也必须全部对换出去。
线程的状态
线程状态有:运行、就绪和阻塞,线程的状态转换也112线程管理和线程库(1)多线程技术利用线程包(库)提供线程原语集来支持多线程运行,有的操作系统直接支持多线程,而有的操作系统不支持多线程。线程包(库)可分成两种:用户空间中运行的线程包(库)和内核中运行的线程包(库)。线程管理和线程库(1)多线程技术利用线程包(库)提供线程原语113线程管理和线程库(2)
线程包(库)提供一组API,支持应用程序创建、调度、撤销和管理线程的运行。基本线程控制原语:•孵化(Spawn):又称创建线程。•封锁(Block):又称阻塞线程。•活化(Unblock):又称恢复线程。•结束(Finish):又称撤销线程。线程管理和线程库(2)
线程包(库)提供一组API,支持114并发多线程程序设计的优点
•快速线程切换。•减少(系统)管理开销。•(线程)通信易于实现。•(线程)通信易于实现。•并行程度提高。•节省内存空间。并发多线程程序设计的优点
•快速线程切换。115
多线程技术的应用
进程中线程多种组织方式:第一种是调度员/工作者模式第二种是组模式第三种是流水线模式
多线程技术的应用
•前台和后台工作•C/S应用模式•异步处理•加快执行速度。•设计用户接口。
多线程技术的应用
进程中线程多种组织方式:1162.4.3线程的实现
从实现的角度看,线程可以分成:•用户级线程ULT(如Java,Informix)•内核级线程KLT(如OS/2)。•混合式线程(如,Solaris)。2.4.3线程的实现
从实现的角度看,线程可以分成:117各种线程实现方法
用户空间线程库P内核空间2)用户级线程用户空间P内核空间1)内核级线程用户空间线程库PP内核空间3)混合式线程ULTKLTProcessP各种线程实现方法用户空间线程库P内核空间2)用户级用户空间1181.内核级线程(1)
纯内核级线程设施中,线程管理的所有工作由操作系统内核做。内核专门提供KLTAPI,应用程序区不需要有线程管理代码。WindowsNT和OS/2都是采用这种方法的例子。1.内核级线程(1)
纯内核级线程设施中,线程管理的所有工119内核级线程(2)线程执行中可通过内核创建线程原语来创建其他线程,这个应用的所有线程均在一个进程中获得支持。内核要为整个进程及进程中的单个线程维护现场信息,应在内核中建立和维护PCB及TCB,内核的调度是在线程的基础上进行的。内核级线程(2)线程执行中可通过内核创建线程原语来创建其他线120内核级线程主要优点多处理器上,内核能同时调度同一进程中多个线程并行执行。进程中的一个线程被阻塞了,内核能调度同一进程的其它线程占有处理器运行。内核线程数据结构和堆栈很小,KLT切换快,内核自身也可用多线程技术实现,能提高系统的执行速度和效率。内核级线程主要优点多处理器上,内核能同时调度同一进程中多个线121
内核级线程的主要缺点
应用程序线程在用户态运行,而线程调度和管理在内核实现,在同一进程中,控制权从一个线程传送到另一个线程时需要用户态-内核态-用户态的模式切换,系统开销较大。内核级线程的主要缺点应用程序线程在用户态运行,而线程调度1222
用户级线程纯ULT设施中,线程管理工作由应用程序做,内核不知道线程的存在。任何应用程序均需通过线程库进行程序设计,再与线程库连接后运行来实现多线程。线程库是一个ULT管理的例行程序包,实质上线程库是线程的运行支撑环境。2
用户级线程纯ULT设施中,线程管理工作由应用程序做,内123
ULT线程“孵化”过程进程开始只有一个线程,它可以孵化新线程,通过过程调用把控制权传送给“孵化”过程,由线程库为新线程创建一个TCB,并置为就绪态,按一定的调度算法把控制权传递给进程中处于就绪态的一个线程。当控制权传送到线程库时,当前线程的现场信息应被保存,而当线程库调度一个线程执行时,要恢复它的现场信息。ULT线程“孵化”过程进程开始只有一个124ULT优点
•线程切换不需要内核特权方式,•按应用特定需要来调度,•ULT能运行在任何OS上,ULT优点
•线程切换不需要内核特权方式,125
ULT的缺点
•线程执行系统调用时,不仅该线程被阻塞,且进程内的所有线程会被阻塞。
•纯ULT中,多线程应用不能利用多重处理的优点。内核在一段时间里,分配一个进程仅占用一个CPU,进程中仅有一个线程能执行。ULT的缺点
•线程执行系统调用时,不仅该线程1263
混合式线程
混合系统中,内核支持KLT多线程的建立、调度和管理,也提供线程库,允许应用程序建立、调度和管理ULT。应用程序的多个ULT映射成一些KLT,程序员可按应用需要和机器配置调整KLT数目,以达到较好效果。一个应用中的多个线程能同时在多处理器上并行运行,且阻塞一个线程时并不需要封锁整个进程。3
混合式线程
混合系统中,内核支持KLT多线程的建立、调1272.4.4实例研究:Solaris的进程与线程
Solaris中的进程与线程概念•进程(Process):•用户级线程(User-LevelThreads):•轻量进程(LightWeightProcess):•内核级线程(Kernel-LevelThreads):2.4.4实例研究:Solaris的进程与线程
So128Solaris线程的使用(1)
线程库LPULTKLTLWPProcessorLLLLLLLLLPPPPP用户内核进程1进程2进程3进程4进程5Solaris线程的使用(1)
线程库LPULTKLTLW129
Solaris线程的使用(2)
Solaris已经有进程、KLT和ULT,为什么还要引入LWP?原因是各种应用需求,有些应用逻辑并行性程度高,有些应用物理并行性要求高。例1:窗口系统是典型的逻辑并行性程度高的应用。例2:大规模并行计算是物理并行性要求高的应用。
Solaris线程的使用(2)
Solaris已经有进130Solaris中进程结构
内存分配表进程标识符用户标识符信号分配表文件描述符轻进程标识符优先数信号掩码寄存器堆栈……轻进程标识符优先数信号掩码寄存器堆栈……轻量进程1轻量进程2Solaris中进程结构内存分配表进程标识符用户标识符信131LWP的数据结构
•轻量进程标识符标识了轻量进程•优先数定义了轻量进程执行的优先数•信号掩码定义了内核能够接受的信号•寄存器域用于存放轻量进程让出处理器时的现场信息•轻量进程的内核栈包括每个调用层次的系统调用的参数、返回值和出错码•交替的信号堆栈•用户或用户和系统共同的虚时间警示•用户时间和系统处理器使用•资源使用和预定义数据•指向对应内核线程的指针•指向进程结构的指针LWP的数据结构
•轻量进程标识符标识了轻量进程132ULT的数据结构
•
线程标识符标识了线程•
优先数定义了线程执行的优先数•
信号掩码定义了能够接受的信号•寄存器域用于存放线程让出处理器时的现场信息•
堆栈用于存放线程运行数据•线程局部存储器用于存放线程局部数据ULT的数据结构
•
线程标识符标识了线程133KLT的数据结构•
内核寄存器数据保存区•
优先级和调度信息•
KLT的队列指针和堆栈指针•
相关LWP的指针及信息•
进程数据结构,包括:•
与进程相关的KLT•
进程地址空间指针•
用户权限表•
信号处理程序清单•
与用户执行有关信息KLT的数据结构•
内核寄存器数据保存区134
Solaris的线程状态
继续剥夺停止睡眠Sleeping睡眠态Runnable可运行态Active活跃态Stopped停止态停止唤醒指派停止指派唤醒停止Stopped停止态Running运行态Blocked阻塞态Runnable可运行态时间片到或剥夺唤醒停止阻塞系统调用继续LWPULT
Solaris的线程状态
继续剥夺停止睡眠Sleepin1352.4.5实例研究:Windows2000/XP的进程与线程
三个层次执行对象:作业是共享一组配额限制和安全性限制的进程的集合;进程是相应于一个应用的实体,它拥有自己的资源,如主存,打开的文件;线程是可被内核调度的执行实体,它可以被中断,使CPU能转向另一线程执行。2.4.5实例研究:Windows2000/XP的进程与136Windows2000/XP对象分类(1)
Windows2000/XP是一个基于对象(object-based)的操作系统,在系统中,用对象来表示所有的系统资源。
(1)执行体对象由执行体的组件实现的对象,用来实现各种外部功能,用户态程序(服务器对象)可访问执行体对象。•执行体对象:进程、线程、区域、文件、事件、事件对、文件映射、互斥、信号量、计时器、对象目录、符号连接、关键字、端口、存取令牌和终端等。
Windows2000/XP对象分类(1)Window137Windows2000/XP对象分类(2)
(2)内核对象内核实现的更原始的对象集合,包括:内核过程对象、异步过程调用对象、延迟过程调用对象、中断对象、电源通知对象、电源状态对象、调度程序对象等。
内核对象对用户态代码是不可见的,仅在执行体内创建和使用,许多执行体对象包含一个或多个内核对象,而内核对象能提供仅能由内核来完成的基本功能。Windows2000/XP对象分类(2)(2)内核对138Windows2000/XP对象分类(3)Windows2000/XP中对象结构对象头对象体对象管理器Windows2000/XP对象分类(3)Windows139
进程及控制和使用的资源
对象句柄表虚拟地址空间描述文件x信号量y区域z…VADVADVADVAD进程访问令牌可用对象句柄1句柄2线程线程线程句柄3
进程以及控制和使用的资源进程及控制和使用的资源
对象句柄表虚拟地址空间描述文件140对象和句柄间的关系
应用程序执行体对象执行体内核用户态核心态句柄内核对象对象和句柄间的关系
应用程序执行体对象执141执行体进程(EPROCESS)块
内核进程块进程标识符父进程标识符退出状态创建和退出次数指向下一个进程的指引元配额块内存管理信息异常端口调试程序端口主访问令牌指引元局柄表指引元进程环境块映像文件名映像基址进程特权级WIN32进程块指引元执行体进程(EPROCESS)块内核进程块进程标识符父进程142调用CreateProcess函数创建
WIN32进程(1)
创建WIN32进程的具体步骤:•打开将在进程中被执行的映像文件(.EXE)。•创建Windows2000/XP执行体进程对象。•创建初始线程(堆栈、描述表、执行体线程对象)。•通知WIN32子系统已创建了一个新的进程,以便它可设置新的进程和线程。•启动初始线程的执行(除非指定了CREATE_SUSPENDED标志)。•在新进程和线程的描述表中完成地址空间的初始化,加载所需的DLL,并开始程序的执行调用CreateProcess函数创建
WIN32进程(1)143线程对象ETHRED块的结构
内核线程块创建和退出时间进程标识符指向EPROCESS的指引元线程启动地址主访问令牌指引元模拟信息LPC消息信息定时器信息挂起的I/O请求调度程序头信息用户态时间总计核心态时间总计内核堆栈信息指引元系统服务表指引元线程调度信息陷阱帧线程本地存储数组同步信息搁置的APC列表定时器块和等待块线程正在等待的对象列表线程环境块指引元线程对象ETHRED块的结构
内核线程块创建和退出时间进程144Windows2000/XP线程状态
资源可用事件完成但资源不可用事件完成资源可用阻塞挂起终止可运行Running运行态不可运行Standby准备态Waiting等待态Ready就绪态Terminated中止态Transition过渡态选中切换抢占或时间片到Windows2000/XP线程状态
资源可用事件完成但事145作业对象(1)
作业对象是可命名、保护、共享的对象,能够控制与作业有关的进程属性。作业对象的基本功能是允许系统将进程组看作是一个单元,对其进行管理和操作。作业对象也为所有与作业有关的进程和所有与作业有关但已被终止的进程记录基本的账号信息。作业对象包含一些对每一个与该作业有关的进程的强制限制作业对象(1)
作业对象是可命名、保护、共享的对象,能够控制146作业对象(2)
用户也能够在作业中的进程上设置安全性限制用户也能够在作业中的进程上设置用户接口限制进程只能属于一个作业,一旦进程建立,它与作业的联系便不能中断;所有由进程创建的进程和它们的后代也和同样的作业相联系。在作业对象上的操作会影响与作业对象相联系的所有进程。作业对象(2)
用户也能够在作业中的进程上设置安全性限制1472.5处理机调度
2.5.1处理机调度的层次2.5.3高级调度2.5.3中级调度2.5.4低级调度2.5.5选择调度算法的原则
2.5处理机调度
2.5.1处理机调度的层次1482.5.1处理机调度的层次
高级调度•作业调度、长程调度•分时系统中的高级调度•批处理操作系统中的高级调度2.5.1处理机调度的层次
高级调度•作业调度、长程调度149中级调度平衡负载调度,中程调度决定主存储器中所能容纳的进程数,这些进程将允许参与竞争处理器资源中级调度根据存储资源量和进程的当前状态来决定辅存和主存中进程的对换中级调度平衡负载调度,中程调度150低级调度进程调度、短程调度。主要功能是按照某种原则决定就绪队列中的哪个进程或内核级线程能获得处理器,并将处理机出让给它进行工作。短程调度程序是操作系统最为核心的部分,短程调度策略的优劣直接影响到整个系统的性能。有两类低级调度方式:第一类称剥夺方式:高优先级剥夺原则、时间片剥夺原则第二类称非剥夺方式:低级调度进程调度、短程调度。151处理器调度的层次
中级调度新建态挂起就绪态挂起等待态高级调度低级调度运行态就绪态等待态终止态处理器调度的层次中级调度新建态挂起就挂起等高级调度低级152处理器调度与进程状态转换
高级调度中级调度低级调度运行态就绪态终止态新建态挂起就绪态中级调度挂起等待态等待态高级调度高级调度中级调度处理器调度与进程状态转换
高级调度中级调度低级调度运行态就153处理器的调度模型
中级调度处理器低级调度高级调度完成超时挂起就绪队列挂起等待队列等待队列就绪队列等待事件交互式用户事件出现后备作业队列中级调度处理器的调度模型
中级调度处理器低级调度高级调度完成超时1542.5.5选择调度算法的原则(1)
l
资源利用率CPU利用率=CPU有效工作时间/CPU总的运行时间,CPU总的运行时间=CPU有效工作时间+CPU空闲等待时间。2.5.5选择调度算法的原则(1)l
资源利用率155选择调度算法的原则(2)
2
响应时间•交互式进程从提交一个请求(命令)到接收到响应之间的时间间隔称响应时间。•使交互式用户的响应时间尽可能短,或尽快处理实时任务。•这是分时系统和实时系统衡量调度性能的一个重要指标。选择调度算法的原则(2)2
响应时间156选择调度算法的原则(3)
3周转时间•批处理用户从作业提交给系统开始,到作业完成为止的时间间隔称作业周转时间,应使作业周转时间或平均作业周转时间尽可能短。•这是批处理系统衡量调度性能的一个重要指标。
选择调度算法的原则(3)
3周转时间157选择调度算法的原则(4)
4吞吐率单位时间内处理的作业数。
5公平性确保每个用户每个进程获得合理的CPU份额或其他资源份额,不会出现饿死情况。选择调度算法的原则(4)
4吞吐率158
作业周转与平均周转时间如果作业i提交给系统的时刻是ts,完成时刻是tf,该作业的周转时间ti为:ti=tf-ts实际上,它是作业在系统里的等待时间与运行时间之和。为了提高系统的性能,要让若干个用户的平均作业周转时间和平均带权周转时间最小。平均作业周转时间T=(Σti)/n作业周转与平均周转时间如果作业i提交给系统的时刻是ts,完159作业带权周转时间和平均
作业带权周转时间如果作业i的周转时间为ti,所需运行时间为tk,则称wi=ti/tk为该作业的带权周转时间。ti是等待时间与运行时间之和,故带权周转时间总大于1。平均作业带权周转时间W=(Σwi)/n作业带权周转时间和平均
作业带权周转时间如果作业i的周转时间1602.6批处理作业的管理与调度
2.6.1作业和进程的关系2.6.2批处理作业的管理2.6.3批处理作业的调度2.6.4作业调度算法2.6批处理作业的管理与调度
2.6.1作业和进程的关系1612.6.1作业和进程的关系
•作业(JOB),•作业步(JobStep),•作业组织,•作业的提交、收容、执行和完成。作业是任务实体,进程是完成任务的执行实体;没有作业任务,进程无事可干,没有进程,作业任务没法完成。作业概念更多地用在批处理操作系统,而进程则可以用在各种多道程序设计系统。2.6.1作业和进程的关系
•作业(JOB),1622.6.2批处理作业的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 员工疫情防控承诺书范文
- 上海公务员考试《行测》通关模拟试题及答案解析:6
- 大酒店销售部管理运转手册模板
- 输煤运行培训考试试题及答案
- 深圳助护招聘考试题库及答案
- 人文素养竞赛试题及答案
- 辅警警示培训课件
- 辅警入职培训课件
- 右外踝骨折的康复护理质量评价
- 《GAT 755-2008电子数据存储介质写保护设备要求及检测方法》专题研究报告
- 前沿财务知识培训课件
- 财务出纳述职报告
- 新疆乌鲁木齐市2024-2025学年八年级(上)期末语文试卷(解析版)
- 2025年包头钢铁职业技术学院单招职业技能考试题库完整
- 苹果电脑macOS效率手册
- 2022年版 义务教育《数学》课程标准
- 供货保障方案及应急措施
- TOC基本课程讲义学员版-王仕斌
- 初中语文新课程标准与解读课件
- 中建通风与空调施工方案
- GB/T 3683-2023橡胶软管及软管组合件油基或水基流体适用的钢丝编织增强液压型规范
评论
0/150
提交评论