操作系统原理与Linux实践教程(第2版)课件 第11-20讲 处理器- 处理器调度系统_第1页
操作系统原理与Linux实践教程(第2版)课件 第11-20讲 处理器- 处理器调度系统_第2页
操作系统原理与Linux实践教程(第2版)课件 第11-20讲 处理器- 处理器调度系统_第3页
操作系统原理与Linux实践教程(第2版)课件 第11-20讲 处理器- 处理器调度系统_第4页
操作系统原理与Linux实践教程(第2版)课件 第11-20讲 处理器- 处理器调度系统_第5页
已阅读5页,还剩183页未读 继续免费阅读

下载本文档

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

文档简介

处理器主要内容一、寄存器二、指令系统、特权指令与非特权指令三、处理器状态及切换四、程序状态字寄存器一、寄存器处理器属于分时复用型的共享资源,其中的寄存器被操作系统和各个进程所共享,任意瞬时的寄存器内容构成处理器工作现场。当进程或任务发生切换时,寄存器内容必须被保存,以便进程或任务恢复执行时,还原处理器工作现场。寄存器与操作系统的关系

处理器现场管理处理器操作系统进程1进程m

寄存器寄存器寄存器寄存器寄存器寄存器寄存器寄存器处理器现场进程1的处理器现场信息进程m的处理器现场信息内存

处理器现场与进程的关联存放操作数或计算结果通用寄存器数据类地址类控制类寄存器存放要访问的内存地址或设备I/O地址存放处理器的控制和状态信息Intelx86处理器的寄存器系统地址寄存器段寄存器通用寄存器段寄存器标志寄存器控制寄存器指令指针寄存器寄存器的分类内存I/O设备硬件资源处理器数据类寄存器地址类寄存器控制类寄存器寄存器在处理器与内存及I/O设备之间的通信作用二、指令系统、特权指令与非特权指令1、指令分类第1类数据传输类完成处理器与存储器之间、处理器与I/O设备之间的数据传送操作第2类数据处理类完成运算器对数据的算术操作、逻辑操作等计算功能第3类控制类指令改变指令执行顺序以及控制资源的使用权限2、特权指令与非特权指令操作系统普通用户程序特权指令非特权指令执行主体指令系统执行执行计算机系统控制管理协调共享资源硬件软件三、处理器状态及切换1、处理器状态(处理器运行模式)分类管理状态用户状态处理器状态(处理器运行模式)处理器正在执行操作系统内核程序,行使管理员角色,处理器可以执行全部指令,控制资源,特权级别较高。处理器正在执行用户事务程序以及操作系统非内核程序,行使用户角色,处理器只能执行非特权指令,接收操作系统的管理和控制,特权级别较低。转换2、实际处理器的状态(运行模式)数目0级:操作系统内核级1级:系统调用处理程序级IntelPentium处理器状态(保护级别)执行特权指令,处理I/O、存储管理和其他关键操作用户程序调用该层级的过程执行系统调用2级:共享库过程级3级:用户程序级可以被很多正在运行的程序共享,用户程序可以调用这些过程,读取它们的数据,但是不能修改它们用户程序级,操作权限最低,对共享资源的使用需要委托内层的0-2级程序完成IntelPentium处理器状态(保护级别)的另一种描述形式操作系统内核级系统调用处理程序级共享库过程级用户程序级IntelPentium处理器状态(保护级别)的工作原理程序本身的保护级别限制了它所能够执行的指令集;限制了它所能调用的其它过程集;2、处理器状态之间的转换(1)用户状态向管理状态的转换执行系统调用,请求操作系统服务进程(用户态)INT21HMOVAH,1操作系统(核心态)系统调用处理程序系统调用系统调用返回情况1进程(用户态)中断无关指令中断无关指令操作系统(核心态)中断处理程序被迫中断中断返回情况2时钟中断设备中断时钟中断处理程序…设备中断处理程序…某个与进程无关的中断中断事件产生,运行程序被中断,操作系统接管处理器,中断处理程序开始工作执行加载程序状态字LPSW(LoadPSW)指令,处理器由执行操作系统指令的管态切换为执行用户程序的用户态。(2)管理状态向用户状态的转换IntelPentium提供的中断返回指令为IRET四、程序状态字寄存器处理器的工作状态记录在程序状态字(PSW)寄存器中;每个正在执行的程序都有一个与其执行相关的PSW;每个处理器都设置一个程序状态字寄存器。1、程序状态字寄存器

处理器工作状态的记录者处理器程序状态字(PSW)寄存器进程1进程m…PSW1PSWm…进程与程序状态字之间的一一对应关系2、程序状态字寄存器的主要内容程序基本状态中断码中断屏蔽位程序计数器条件码处理器状态位记录发生的中断事件决定是否响应中断事件3、IntelPentium程序状态字寄存器的组成标志寄存器EFLAGS指令指针寄存器EIP状态标志系统标志控制标志溢出符号结果为零辅助进位进位奇偶校验串指令操作方向虚拟86方式步进陷阱I/O特权级嵌套任务恢复中断主要内容一、中断概念二、中断源分类三、中断处理一、中断概念中断是指程序执行过程中,当发生某个事件时,中止CPU上现行程序的运行,引出处理该事件的程序执行的过程。中断中断的重要用途中断是改变指令执行流程、实现操作系统并发多任务功能的重要硬件机构,也是操作系统实现计算机控制的重要途径。在每两条指令或某些特殊指令执行期间检测中断的时机MOVAX,100MOVCX,130ADDAX,CX每当一条指令执行结束时检测是否发生中断中断源是引起中断的事件中断源中断装置中断装置是发现中断源并产生中断的硬件中断机制的重要特征当中断事件发生后,它能改变处理器内操作执行的顺序。二、中断源分类1、从中断事件的性质和激活的手段进行分类中断源强迫性中断事件机器故障程序性外部输入输出访管指令电源故障主存储器出错定点溢出除数为0地址越界键盘中断时钟定时中断设备出错传输结束自愿性中断事件强迫性中断事件强迫性中断事件不是正在运行的程序所期待的,而是由于随机发生的某种事故或外部请求信号所引起的。强迫性中断事件可能由正在运行的程序引起,也可能与当前程序无关。正在运行的程序不可预知强迫性中断事件发生的时机。强迫性中断演示进程被迫中断进程(用户态)中断无关指令中断无关指令操作系统(核心态)中断处理程序被迫中断中断返回时钟中断设备中断时钟中断处理程序…设备中断处理程序…某个与进程无关的中断自愿性中断事件自愿性中断事件是正在运行的程序所期待的事件。这种事件由程序执行访管指令而引发,表示用户进程请求操作系统服务。自愿性中断演示进程主动中断进程(用户态)INT21HMOVAH,1操作系统(核心态)系统调用处理程序系统调用(访管中断)系统调用返回2、按照中断信号的来源对中断源分类中断源电源故障中断时钟中断控制台中断它机中断通路校验错I/O中断主存奇偶错非法操作码外中断(中断)内中断(异常)地址越界页面失效调试指令访管中断外中断外中断是指来自处理器和主存之外的中断内中断内中断是指来自处理器和主存内部的中断CPU内存I/O设备外存内中断外中断中断和异常的区别异常的发出者INT21HMOVAH,1操作系统(核心态)系统调用处理程序系统调用(访管中断)进程I/O设备时钟键盘外存中断的发出者时钟中断处理程序键盘中断处理程序I/O中断处理程序……中断中断中断中断和异常的区别总结对于正在执行的程序(进程)来说,异常是现行程序引起的,目的是请求操作系统提供服务,或者现行程序执行指令时引起错误;中断不是现行程序引发的,而是由其它资源主体引发的,中断处理程序提供的服务一般不是现行程序需要的3、硬中断与软中断中断硬中断软中断由硬件设施产生的中断信号;硬中断发生时会立刻响应利用软件模拟产生的中断信号,用于实现内核与进程或进程与进程之间的通信;接收软中断的进程运行时才能响应三、中断处理中断处理系统硬件中断装置软件中断处理程序中断逻辑线路中断寄存器记录中断事件,其内容称中断字,中断字的每一位对应一个中断事件发现中断源,产生中断信号中断处理系统组成1、硬件中断装置处理过程INT21HMOVAH,1操作系统(内存)进程的处理器现场进程硬件时钟键盘外存…硬件中断装置中断处理程序中断逻辑线路中断寄存器…中断中断中断中断内存中断源进程的处理器现场寄存器2、保存现场3、启动1、发现中断源,响应中断请求信息硬件中断装置处理过程实例

设备I/O操作完成后中断装置的典型操作非中断指令非中断指令操作系统现行程序设备硬件中断装置中断处理程序中断向量号③中断现行程序①中断中断寄存器处理器②确认响应中断现场信息:PSW、IP、CS系统栈③保护现场中断处理程序的现场信息:PSW、IP、CS④加载中断处理程序现场信息④启动中断处理程序⑤中断返回2、软件中断处理程序指令指令操作系统被中断程序处理器处理器状态信息:通用寄存器其它断点内容④中断返回中断寄存器被中断程序处理器现场信息中断处理程序①保护硬件未保护的处理器状态②识别各个中断源,分析中断原因③处理发生的中断事件3、中断处理程序入口地址的寻找用户进程指令指令操作系统A0A1A(n-1)中断向量表

中断源序号01n-1中断处理程序0中断处理程序1中断处理程序(n-1)

中断处理程序入口地址中断返回

中断触发中断源0中断源1中断源n-1

中断为操作系统控制计算机系统提供了机会进程1INT21H操作系统时钟中断处理程序键盘中断处理程序进程结束系统功能调用处理程序系统功能调用处理程序进程2中断使得处理器在进程和操作系统之间频繁的来回切换,但是处理器的控制权掌握在操作系统手中,而不是进程手中。中断也提供了任务切换的机会计算器进程操作系统鼠标中断处理程序记事本进程问题1:在系统中只有一个进程运行时,该进程会不间断地运行吗?进程INT21H操作系统时钟中断处理程序进程结束系统功能调用处理程序系统功能调用处理程序问题2:在系统中没有任何进程运行时,操作系统在干什么?系统会静止吗?操作系统时钟中断处理程序等待服务程序中断犹如计算机系统的心脏,无论何时不能停止跳动,否则,计算机系统将失去驱动力。中断也像刹车,可以使用户程序及系统程序适时停止运行,以便重新分配系统资源,尤其是处理器资源,避免某些程序过长时间地垄断系统资源,破坏系统资源使用的公平性。谢谢!进程概念与属性主要内容一、引入进程概念的必要性二、进程的定义三、进程的属性一、引入进程概念的必要性进程与程序是两个不同的概念图中是两个记事本程序吗?是两个相同的记事本程序还是不相同的两个记事本程序?进程与程序都包含程序,但是程序是静态的,进程是动态的同一个程序在一段时间内可以同时存在多个执行活动(即进程)分别对不同的数据进行处理同一个记事本程序存在两个进程分别用于编写不同的两个文件;同样的程序做不同的事情,每一件事情对应一个进程;两件事情对应一个程序,“程序”这个名字已经无法将两件事情区分开来。二、进程定义进程

进程是一个可并发执行的具有独立功能的程序关于某个数据集合的一次执行过程,也是操作系统进行资源分配和保护的基本单位。进程程序数据管理结构进程控制块三、进程的属性(1)结构性(2)共享性(3)动态性(4)独立性(5)制约性(6)并发性进程控制块程序块数据块(1)结构性进程结构文件头程序及数据结构程序结构(2)共享性进程控制块1PowerPoint程序指令2.2中断进程控制块2PowerPoint程序指令2.3进程及其实现PowerPoint进程1PowerPoint进程2PowerPoint程序同一程序运行于不同数据集合上构成不同的进程进程的内容(主要是数据)是动态的,随着指令的执行而变化;程序的内容是固定的。(3)动态性描述程序运行时如何驱动资源工作,在创建进程前,这种描述本身不会引起资源动作起来进程控制块程序块数据块进程(动态变化)文件头程序及数据结构程序(静止不动)处理器内容不变I/O设备内存动态变化驱动进程是系统中资源分配和保护的基本单位,也是系统调度的独立单位。(4)独立性合法的用户程序段应该属于某个进程,脱离任何进程的非操作系统程序段不被操作系统所感知,因而也无法作为资源分配和保护的单位以及处理器调度的单位。进程控制块1程序块1数据块1进程1进程控制块2程序块2数据块2进程2

进程控制块n程序块n数据块n进程n

(5)制约性并发进程之间存在同步、互斥关系;同步:存在协作关系的一个进程在某些执行点需要等待另一个进程发来的同步信号;互斥:共享某些资源的进程需要依次排队使用这些资源。进程1进程2同步互斥在单处理器系统环境下,各个进程轮流占用处理器,即交替、穿插使用处理器。(6)并发性进程1CPU进程2进程3进程4谢谢!进程状态主要内容一、为什么要对进程划分状态二、三态模型三、五态模型四、七态模型一、为什么要对进程划分状态系统中可以有非常多的进程,每个进程的执行都是走走停停,不是一贯到底的。进程至少可以划分“走”和“停”两大类状态。“停”的状态又可根据“停”的原因细分。划分进程状态对于简洁、条理地分类管理进程、合理调度系统资源非常必要。二、三态模型就绪态等待态运行态选中时间片用完或出现更高优先级进程等外部原因等待事件结束等待资源或事件发生进程占有处理器正在运行进程不具备运行条件,正在等待某个事件完成等待系统分配处理器以便运行进程创建后,就处于就绪状态三、五态模型就绪态等待态运行态选中落选等待事件结束出现等待事件新建态终止态提交执行结束进程刚被创建,尚未提交参加处理器竞争进程已经终止,但是进程尚未退出主存四、七态模型挂起将进程从内存对换到外存,暂不参与进程调度,起到平滑系统负荷的目的。1就绪态等待态运行态选中落选等待事件结束出现等待事件新建态终止态提交执行结束挂起就绪态挂起等待态提交挂起解除挂起挂起等待事件结束挂起解除挂起引起进程挂起的主要原因阻塞进程1阻塞进程2

阻塞进程n2(1)系统中的进程均处于等待状态内存就绪进程k外存就绪进程1阻塞进程2

就绪进程n(2)系统负荷过重内存外存就绪进程3阻塞进程4运行进程5(3)用户或者父进程挂起自己创建的进程,以便调试、检查和改正(4)操作系统挂起进程,以便检查资源使用情况,或者排除故障引起进程状态转换的具体原因3等待态挂起等待态当前不存在就绪进程挂起等待态挂起就绪态进程等待事件结束挂起就绪态就绪态内存没有就绪进程挂起就绪态进程优先级高于就绪态进程就绪态挂起就绪态减轻系统负荷挂起等待态等待态内存空间充足,某个挂起等待态进程优先级较高,使该进程阻塞的事件即将结束运行态挂起就绪态一个高优先级挂起等待进程的等待事件结束,它将抢占CPU,而此时主存不够新建态挂起就绪态系统资源承载负荷条件不适合立即接受新建进程挂起进程的特征挂起进程不能立即被执行挂起进程所等待的事件独立于挂起条件,事件结束并不能导致进程具备执行条件进程的挂起者可以是操作系统、父进程或进程自身结束进程挂起状态的命令只能由操作系统或父进程发出4谢谢!进程结构主要内容一、操作系统的控制结构二、进程实体(进程映像)的组成三、进程上下文四、进程控制块(PCB)五、进程队列及其管理一、操作系统的控制结构操作系统的控制结构是控制进程、管理系统资源的数据结构,同样类型的数据结构组成表,称为控制表。操作系统的控制表进程控制表存储控制表I/O控制表文件控制表CPU内存设备外存系统资源登记进程管理信息登记主存和辅存的分配信息、存储共享信息、虚存管理信息登记I/O设备和通道的分配信息、操作状态和进展信息、数据所在内存登记打开文件的状态、属性信息进程控制表内存表、I/O表和文件表与进程表关联,以便操作系统跟踪进程对资源的使用情况。进程1进程2…进程n进程1映像进程2映像进程n映像…进程映像进程文件设备内存文件表设备表内存表二、进程实体(进程映像)的组成进程控制块(PCB)程序块数据块核心栈定义进程的行为和功能操作系统跟踪、管理进程当进程被中断,处理器转为核心态工作模式时跟踪过程调用和过程间参数传递信息进程控制块(PCB)每一个进程都捆绑一个进程控制块进程创建时建立进程控制块,进程撤销时回收进程控制块,进程控制块与进程一一对应控制信息现场信息标志信息进程控制块(PCB)1用途创建和撤销时机即被执行的程序,规定了进程一次运行应完成的功能。程序块通常是纯代码,可被多个进程共享。在执行时本身不会发生改变的程序,这样的程序可被多个程序同时调用。调用它的所有程序需自备工作区。进程程序块2纯代码进程数据块是程序加工处理的对象。进程数据块3进程数据块常量局部变量全局变量用户栈进程专用每一个进程都将捆绑一个核心栈,进程在核心态工作时使用。进程核心栈4进程核心栈中断/异常现场函数调用的参数和返回地址进程实体的内容随着进程的执行不断发生变化,任一瞬时进程实体的内容及其状态集合称为该瞬时的进程映像。进程映像进程控制块程序块数据块核心栈03时刻12进程控制块程序块数据块核心栈进程控制块程序块数据块核心栈进程控制块程序块数据块核心栈进程映像1进程映像2进程映像3进程映像4拍照拍照拍照三、进程上下文进程上下文(context)

进程物理实体和支持进程运行的环境合称为进程上下文。进程上下文进程物理实体进程运行环境进程控制块程序块数据块核心栈用户栈寄存器UNIX进程上下文用户级上下文程序块数据块用户栈用户进程空间系统级上下文进程控制块(PCB)核心栈操作系统空间CPU寄存器寄存器上下文处理器工作空间用户级上下文程序块数据块用户栈保存用户态下过程调用和返回地址及参数传递信息。寄存器上下文程序状态字(PSW)寄存器指令计数器栈指针控制寄存器进程被中断时,寄存器内容被保存在该进程的核心栈中。系统级上下文进程控制块(PCB)核心栈进程在核心态执行时保存过程调用或中断返回时需恢复的信息UNIX进程上下文用户级上下文程序块数据块用户栈用户进程空间系统级上下文进程控制块(PCB)核心栈操作系统空间CPU寄存器寄存器上下文处理器工作空间进程控制块程序块数据块核心栈进程四、进程控制块(PCB)记录和刻划进程状态及有关信息的数据结构进程控制块程序块数据块核心栈进程用途掌握进程的唯一资料结构控制和管理进程的主要依据是进程存在的唯一标识每个进程都有且只有一个进程控制块包括进程执行时的情况,以及进程让出处理器后所处的状态、断点等信息。进程控制块包含的信息唯一地标识一个进程标识信息处理器现场信息控制信息外部标识符内部标识符人的姓名人的身份证号类似于类似于包括用于进程控制块包含的信息标识信息处理器现场信息控制信息进程中断时被保存的处理器寄存器的内容;进程恢复运行时从中恢复处理器现场包括通用寄存器内容控制寄存器(如PSW寄存器)内容栈指针标识信息处理器现场信息控制信息程序块数据块核心栈PCB进程处理器现场保存/恢复进程控制块信息标识信息处理器现场信息控制信息进程调度信息进程组成信息包括用于管理和调度进程进程间通信信息进程在辅存的地址信息CPU资源的占用和使用信息进程特权信息资源清单进程状态等待事件等待原因进程优先级队列指引元正文段指针数据段指针消息队列指针信号量段/页表指针进程映像在辅存的地址时间片余量进程己占用CPU的时间进程己执行时间总和记帐信息内存访问权限处理器特权所需全部资源已经分得的资源程序块数据块核心栈进程处理器现场处理器程序块指针数据块指针进程控制块进程在辅存的地址处理器现场信息进程映像进程控制块中的指针连接关系进程控制块的使用权和修改权属于操作系统程序,包括进程控制块的使用权和修改权调度程序资源分配程序中断处理程序性能监视和分析程序五、进程队列及其管理处于同一状态的所有PCB链接在一起的数据结构称为进程队列。进程队列进程队列排队原则同一状态进程的PCB按先来先到、优先数或其它原则排成队列等待态进程队列按照等待原因细分为多个队列进程队列结构运行态就绪态阻塞态PCB进程状态转换与队列管理处理器就绪队列提交指派完成事件1等待队列超时事件2等待队列事件n等待队列……等待事件1等待事件2等待事件n事件1出现事件2出现事件n出现……谢谢!进程切换与模式切换主要内容一、进程切换的概念二、进程切换的时机三、Linux进程调度时机四、进程切换的步骤五、模式切换及步骤一、进程切换的概念进程切换即中断一个进程的执行转而执行另一个进程。进程切换进程1进程2处理器执行暂停进程切换需要完成进程上下文切换,即保存被中断进程上下文(处理器现场信息)到其进程控制块中,然后装入新进程上下文,使其从上次断点恢复执行,或者调度一个新的进程。进程切换时系统需要完成的处理工作程序块数据块核心栈进程1处理器现场1处理器I/O设备内存驱动PCB程序块数据块核心栈进程2处理器现场2驱动保存恢复PCB运行态暂停运行非运行运行控制进程切换时系统需要完成的处理工作进程切换时系统需要完成的处理工作进程1操作系统进程切换程序进程2断点断点中断二、进程切换的时机运行态等待态1、当进程进入等待态时;进程1就绪态运行态进程2等待了就把处理器等资源让出来去一边等待,别占着资源等待,进程切换由此发生。2、当进程的系统调用请求完成后,CPU即将分配给某个进程,该系统调用请求者进程不是最有资格获得CPU的进程时,CPU将分配给另一个进程,即最有资格获得CPU的进程。用户进程P1(用户态)MOVAH,2INT21H操作系统(核心态)系统调用处理程序用户进程P2(用户态)指令流系统调用进程切换3、当内核完成中断处理,即将把处理器分配给某个进程,而刚被中断的进程不是最有资格获得CPU的进程时,CPU将分配给另一个进程,即最有资格获得CPU的进程。(情况分析类似于2)4、当进程执行结束时;既然进程执行结束了,不再需要处理器等资源了,这些资源理应分配其它需要的进程,进程切换(包含进程创建)由此发生。运行态终止态进程1就绪态运行态进程25、在剥夺式调度方式下,当进程的时间片用完了或者出现了优先级更高的进程时,系统将执行进程切换。三、Linux进程调度时机1、进程状态转换的时刻,如进程终止(结束)、进程睡眠(阻塞等待),进程调用sleep()或exit()等函数进行状态切换,这些函数会主动调用调度程序实施进程切换。进程由运行态转换为就绪态2、当前进程的时间片用完时进程状态转换运行态就绪态进程时间片用完Linux进程调度这是是的时刻时机3、设备驱动程序执行时,设备驱动程序向设备硬件发送操作指令,设备执行操作指令需要花费一定的时间,CPU此时空闲下来,Linux将执行进程调度,把CPU分配给其它进程。4、中断、异常或系统调用处理结束,操作系统对CPU的使用结束,CPU将要分配某个进程时,Linux将执行进程调度,挑选应当获得CPU的进程。用户进程P1(用户态)暂停执行操作系统(核心态)中断、异常或系统调用处理程序用户进程P2(用户态)指令流进程切换中断、异常或系统调用四、进程切换的步骤(6)恢复用户进程P1被中断操作系统调度程序用户进程P2P1现场信息(2)进程状态:运行非运行即将执行(1)保存CPUP1的PCB(5)进程状态:就绪运行P2现场信息P2的PCB(3)把被中断进程的PCB加入有关队列非运行队列就绪队列阻塞队列(4)选择下一个运行进程五、模式切换及步骤CPU模式切换即处理器管态(核心态)与目态(用户态)之间的切换。模式切换用户态核心态中断加载程序状态字4、用户态核心态2、用户态核心态模式切换的步骤用户进程P1(用户态)MOVAH,2INT21H操作系统(核心态)3、系统调用处理程序用户进程P2(用户态)待执行进程实体1、保存被中断进程处理器现场信息进程切换用户进程P1(用户态)MOVAH,2INT21H操作系统(核心态)系统调用处理程序用户进程P2(用户态)指令流用户态核心态核心态用户态谢谢!进程控制主要内容一、进程的创建二、进程的阻塞和唤醒三、进程的撤销四、进程的挂起和激活五、Linux进程控制实验进程控制进程控制进程创建进程阻塞进程唤醒进程挂起进程激活进程终止进程撤销这些控制和管理功能由操作系统中的原语实现原语原语是在管态下执行、完成系统特定功能的不可中断的过程,具有原子操作性。原语的执行不可中断原语执行时,其他程序不能插入其中交替执行原语可以采用屏蔽中断的系统调用来实现,以保证原语操作不被打断的特性。因此,原语和系统调用都使用访管指令来调用,具有相同的调用形式。但普通系统调用可以被中断,原语不可中断。原语的实现方法及其与系统调用的区别一、进程的创建进程创建的事件来源提交一个批处理作业交互式作业登录操作系统创建一个服务进程存在的进程(父进程)创建(孵化)新的进程(子进程)批处理用户联机用户系统程序用户程序进程的创建过程主进程表进程1…进程n…进程映像进程n+1①并从PCB池中取一个空白PCB,为新进程分配唯一的进程标识符①在主进程表中增加一项PCB②为新进程的进程映像分配地址空间,装入程序和数据。程序数据③为新进程分配内存空间外的其它资源④初始化进程控制块,如进程标识符、处理器初始状态、进程优先级等进程标识符进程优先级⑤把进程状态置为就绪态并加入就绪进程队列就绪态⑥通知操作系统的某些模块,如记账程序、性能监控程序进程创建涉及到的实体(数据结构或程序)PCB程序数据进程标识符进程优先级就绪态运行态就绪态阻塞态记账程序性能监控程序用户进程操作系统进程队列统计程序二、进程的阻塞和唤醒进程阻塞进程阻塞是指一个进程因出现等待事件而释放处理器,转为等待状态的行为。进程阻塞时,操作系统的处理步骤①停止进程执行,保存其现场信息到PCB;进程现场信息保存CPUPCB程序数据②修改PCB的有关内容,如进程状态由运行改为等待,并把修改状态后的PCB加入相应等待队列;③转入进程调度程序调度其他进程运行。运行

等待进程唤醒,操作系统的处理步骤①从相应等待队列中移出进程;②修改进程PCB有关信息,如进程状态改为就绪并把修改PCB后的进程加入就绪队列;③若被唤醒进程优先级高于当前运行进程,则重新设置调度标志。PCB进程标识符进程优先级进程状态运行态就绪态阻塞态进程队列三、进程的撤销进程撤销的主要原因进程正常运行结束进程执行了非法指令、在常态下执行了特权指令进程运行时间或等待时间超越了最大限定值进程申请的内存超过最大限定值越界错误、算术错误、严重的输入输出错误操作员或操作系统干预父进程撤销其子进程、父进程撤销、操作系统终止操作系统对进程撤销的步骤①根据撤销进程标识号,从相应队列找到它的PCB;②将该进程拥有的资源归还给父进程或操作系统;③若该进程拥有子进程,则先撤销它的所有子孙进程,以防它们脱离控制;或者为子孙进程指定新的父进程;PCB进程标识符进程优先级进程状态运行态就绪态阻塞态进程队列④撤销进程出队,将它的PCB归还到PCB池。四、进程的挂起和激活检查要被挂起进程的状态,若处于活动就绪态就修改为挂起就绪态,若处于阻塞态,则修改为挂起阻塞态。被挂起进程的程序块、数据块要交换到磁盘对换区。挂起原语执行过程把进程的程序块、数据块调进内存,修改它的状态,挂起等待态改为等待态,挂起就绪态改为就绪态,加入相应队列中。激活原语主要处理过程挂起原语既可由进程自己也可由其他进程调用,但激活原语只能由其它进程调用。五、Linux进程控制实验1、使用kill杀死进程,使用sleep使进程自己睡眠,使用waitpid等待子进程结束。2、获取进程标识符信息3、注意观察父子进程执行的时序关系谢谢!多线程的概念主要内容一、多线程的引入二、多线程环境中的进程与线程一、多线程的引入有时需要把分布在不同进程中、由不同进程承担的任务(即多进程任务)整合到一个进程中,把运行在多个进程中的并发任务转变为运行在同一个进程中的并发任务(即多线程任务),这样能够降低计算成本、提高计算效率。计算成本、计算效率原因驱使线程概念的引入

任务分解整合的结果运行在同一个进程中的各个并发任务称为该进程的线程。每个线程分别是进程中的一个执行流。线程代表从进程划分出来的更小的任务单元。在多线程进程中,进程是系统进行资源分配的基本单位,线程是处理器调度的基本单位。传统进程的特征传统进程中只有一个执行流,属于单线程进程,进程所代表的任务仅由一个执行流承担。在单线程进程中,进程既是系统进行资源分配的基本单位,也是处理器调度的基本单位,两者合二为一。多进程任务向多线程任务演变的形式1

任务整合线程1线程2线程3线程4线程5进程1进程2进程3进程4进程5多进程任务多线程任务进程任务整合多进程任务向多线程任务演变的形式2

任务分解线程1线程2线程3线程4线程5单线程进程多线程进程任务分解服务器进程线程1线程2线程3线程4线程5客户机1请求应答客户机2请求应答客户机3请求应答客户机4请求应答客户机5请求应答多线程进程的应用二、多线程环境中的进程与线程在多线程环境中,进程被定义为资源分配和保护的单位,多线程进程不再作为处理器调度和分派的基本单位,线程不是资源分配和保护的基本单位,而是处理器调度和分派的单位。1、多线程环境中的进程单线程和多线程进程实体结构单线程进程实体结构进程控制块(PCB)程序块数据块核心栈多线程进程实体结构进程控制块(PCB)用户地址空间线程线程控制块(TCB)程序块数据块核心栈线程线程控制块(TCB)程序块数据块核心栈线程线程控制块(TCB)程序块数据块核心栈2、多线程环境中的线程线程是进程中能够独立执行的实体(控制流),是处理器调度和分派的基本单位。线程实体包括线程控制块(TCB)程序块数据块核心栈就绪态等待态运行态终止态挂起就绪态挂起等待态线程级状态进程级状态3、线程的状态及进程级状态运行就绪阻塞终止线程的关键状态有:进程级状态:挂起可能线程状态与进程状态之间的某些关系进程挂起线程挂起进程终止线程终止线程阻塞进程阻塞进程不阻塞4、线程的控制(1)创建进程创建时系统会缺省创建并启动一个线程。已经启动的线程可以再创建和启动同一进程中的其它线程。(2)阻塞即等待,暂停线程执行。(4)结束线程终止,撤销线程。(3)恢复被阻塞线程等待的事件发生时,线程变成就绪态或相应状态。4、线程的控制(1)(同一进程内的线程间)切换速度快、切换开销小;(2)易于实现(同一进程内的)任务间的通信协作;(3)提高并发度。(同样资源支持的任务数更多)5、并发多线程程序设计的优点谢谢!多线程的实现方法主要内容一、用户级线程二、内核级线程三、混合式线程四、Linux多线程实验1:无共享变量多线程随机并发运行实例主要内容(续)五、Linux多线程实验2:有共享变量、结果不唯一的多线程并发运行实例六、Linux多线程实验3:多线程共享资源并发访问控制实例多线程实现方法1、用户级线程多线程实现方法2、内核级线程3、混合式线程一、用户级线程用户级线程是在一个进程内部实现了类似进程调度、进程切换功能的一层进程内多任务应用支持软件。用户级线程不是由操作系统提供的,因而,操作系统不参与用户级线程的调度。1、用户级线程实现原理①进程内的线程切换不需要内核介入;②针对不同进程按需选择不同的线程调度算法;③用户级线程可以运行在任何操作系统上,不需对内核做任何改造。2、用户级线程的优点①线程执行系统调用时,不仅该线程被阻塞,且进程内的所有线程均被阻塞;②纯用户级线程不能利用多处理器技术。3、用户级线程的缺点二、内核级线程内核级线程是在操作系统内核层对进程实现的多线程功能,操作系统以线程作为处理器调度和分派的基本单位。1、内核级线程实现原理①内核可以同时把同一进程中的多个线程调度到多个处理器上并行执行;②进程中的一个线程被阻塞了,内核能调度同一进程的其它就绪线程运行;③内核线程数据结构和堆栈小,切换速度快,内核自身也可采用多线程技术实现,提高系统执行速度和效率。2、内核级线程主要优点三、混合式线程某些操作系统提供了同时支持用户级线程与内核级线程的混合式线程设施,线程的创建、调度和同步在用户空间进行。一个应用程序中的多个用户级线程被映射到一些(小于或等于用户级线程的数目)内核级线程上。混合式线程原理示意线程1线程2线程3内核级线程线程1线程2线程3线程4线程5线程1线程2线程3线程4用户级线程进程1进程2映射四、Linux多线程实验1:无共享变量多线程随机并发运行实例无并发互斥、无共享变量的多线程运行试验main线程printyou线程printme线程printhim线程进程CCCC创建创建创建五、Linux多线程实验2:有共享变量、结果不唯一的多线程并发运行实例有共享变量、无并发互斥的多线程运行试验main线程sub1线程sub2线程进程i创建创建numcounttmpitmp六、Linux多线程实验3:多线程共享资源并发访问

温馨提示

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

评论

0/150

提交评论