第3章_操作系统_进程管理-new

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第三章进程管理3.1进程的概念3.2进程的描述3.3进程状态及其转换3.5进程互斥3.4进程控制第三章进程管理3.6进程同步3.7进程通信3.8死锁问题3.10线程分类与执行3.9线程的概念本章学习目标★处理机是计算机系统中最重要的资源。处理机管理包括作业管理和进程管理。★第2章已学习了作业管理,本章学习进程管理。★在现代计算机系统中,为了提高系统的资源利用率,CPU将不再为某一程序独占。通常采用多道程序设计技术,即允许多个程序同时进入计算机系统的内存并运行。★在多道环境下,程序不能独立运行,作为资源分配和独立运行的基本单位是进程。操作系统所有的特征都是基于进程而体现的。本章学习目标:1.了解进程、线程与进程管理的基本概念。2.掌握进程通信的概念、通信的类型及原理和P、V操作的应用。3.掌握进程控制的基本概念、基本原理。4.掌握死锁的概念、产生死锁的必要条件和解决死锁的方法。3.1进程的概念3.1.1程序的并发执行3.1.2进程的定义3.1.1程序的并发执行1)程序★自计算机问世以来,人们广泛地使用“程序”这一概念。★在多道程序设计出现以前,每次只能一个程序进入内存并运行,程序是“一个在时间上严格的按前后次序相继的进行的操作序列集合”。★把一个具有独立功能的程序独占CPU直到得到最终结果的过程称为:程序的顺序执行。★下面用一个简单例子来说明程序顺序执行时的某些重要特性。★假设有两个作业,每个作业I都由三个程序段组成:(1)II(从输入机上读入第I个作业的信息);(2)PI(处理第I个作业);(3)OI(输出第I个作业的结果到输出机上)。★在早期的计算机中,每个作业的这三个程序段只能是一个接一个地顺序执行,也就是:★输入、处理和输出三者串行工作;并且,前一个作业结束后,才能执行下一个作业。见图3.1所示。2)程序的顺序执行I1P1O1I2P2O2作业1作业2作业执行顺序图3.1程序的顺序执行2)程序的顺序执行显然,程序的顺序执行具有如下三特点:(1)顺序性程序所规定的动作在机器上严格地按顺序执行。每个动作的执行都以前一个动作的结束为前提条件,即:程序和机器执行它的活动严格一一对应。(2)封闭性程序执行得到的最终结果由给定的初始条件决定,不受外界因素的影响。即:只有程序本身的动作才能改变程序的运行环境。2)程序的顺序执行(3)可再现性顺序执行的最终结果与程序运行的速度无关,只要输入的初始条件相同,则:无论何时重复执行该程序,都会得到相同的结果,且:CPU在执行程序时,任意两个动作之间的停顿对程序的计算结果都不会产生影响。2)程序的顺序执行3.1.1程序的并发执行★在许多情况下,要求计算机能够同时处理多个具有独立功能的程序,以增强系统的处理能力和提高机器的利用率。★通常采用并行操作技术,使系统的各种硬件资源尽量做到并行工作,这就形成了多道程序系统,此时,允许多个程序同时进入内存并运行。★这样,程序执行环境具有下述3个特点:3)多道程序系统中程序执行环境的变化(1)独立性在多道程序环境下,执行的每道程序都是逻辑上独立的,且执行速度与其它程序无关,执行的起止时间也是独立的。(2)随机性在多道程序环境下,程序和数据的输入与执行开始时间都是随机的。(3)资源共享性一般来说,多道程序环境下,执行程序的道数总是多于计算机系统中的CPU的个数,单CPU系统更是如此。显然,同时执行的各个程序只能共享系统中已有的CPU。同样,输入输出设备、内存、信息等资源都将被各个程序所共享。资源共享将导致对进程执行速度的制约。★所谓程序并发执行,是指:一组在逻辑上相互独立的程序或程序段在执行过程中,其执行时间在客观上互相重叠,即在计算机系统中同处于已开始执行且尚未结束的状态。★假设有3个作业,每个作业I都由3个程序段组成:(1)II(从输入机上读入第I个作业的信息);(2)PI(处理第I个作业);(3)OI(输出第I个作业的结果到输出机上)。★则在多道程序环境下,它们可以如图3.2所示方式执行。4)程序的并发执行作业1作业2作业3I1P1O1I2P2O2t图3.2程序的并发执行I3P3O34)程序的并发执行★对于任何一个作业I,其输入II、处理PI、输出OI这三个操作必须顺序执行;★但对于这三个作业而言,则有可能并发执行。例如,输入程序在输入完第I个作业程序后,处理程序在对第I个作业进行处理的同时,再启动输入程序,输入第I+1个作业程序,这就使得第I个作业的输入和第I+1个作业的处理能并发执行。★并发执行不同于并行执行。程序的并行执行是指一组程序按独立的、异步的速度执行。4)程序的并发执行★在图3.2中:I1先于P1和I2;P1先于O1和P2;O1先于O2;……说明了有些程序段必须在其它程序段之前完成;★此外可以看出:P1和I2;O1和P2、I3;O2和P3;是时间上同时发生的,即它们可并行执行。★因此,三个作业的有些部分必须顺序执行,有些则能并行执行,称:它们是并发执行的作业。对于相邻的语句S1和S2,如果有下面的条件同时成立,则S1和S2可以并发执行:R(S1)∩W(S2)={ф}W(S1)∩R(S2)={ф}W(S1)∩W(S2)={ф}其中R是语句的读变量集合,W是语句是写变量集合。4)程序的并发执行并发的条件:顺序执行并发执行执行过程顺序并发程序和执行的对应关系一一对应一对多封闭性独占资源共享资源确定性具有无可再现性具有无程序间关系无有间接或直接制约关系顺序和并发执行比较4)程序的并发执行★引入程序并发执行,是为了充分利用系统资源,提高计算机的处理能力。★但是,程序并发执行也会带来一些问题4)程序的并发执行程序并发执行可能产生的问题两个程序段getaddr(top):从指定的栈取地址;reladdr(blk):将地址blk放入栈中。分别独立地运行。可能出现下面的问题:abefabefabefS栈的当前情况执行top+1后toptop执行了reladdr的top+1后由于处理机中断执行getaddr的r(top)语句失败处理机切换到getaddr程序产生问题的原因是由于两段程序共享资源S栈。由此可见,多个程序并发执行,如果对资源、执行速度不进行控制有可能产生错误的结果。控制占用资源和运行的单位以程序不合适,应该用更小的、动态的概念为单位。4)程序的并发执行3.1进程的概念3.1.1程序的并发执行3.1.2进程的定义为什么要引入“进程”的概念并发程序和顺序程序有本质上的差异。为了能更好地描述程序的并发执行,实现操作系统的并发性和共享性,引入“进程”的概念。关键是“共享资源”引起的,从资源观点看,有效管理共享资源(同步操作、异步操作、通信)是操作系统的重要内容。3.1.2进程的定义进程(process):是一个具有独立功能的程序对某个数据集在处理机上的执行过程和分配资源的基本单位。进程与程序的联系★程序是构成进程的组成部分之一。★一个进程的运行目标是执行它所对应的程序,如果没有程序,进程就失去了其实际存在的意义。★从静态的角度看,进程是由程序、数据和进程控制块(PCB)三部分组成。程序和进程的区别程序进程静态的指令序列进程是一个动态的概念。程序没有并行特征进程具有并行特征,是竞争系统资源的基本单位。一个程序可对应多个进程一个进程至少对应一个程序在工作(父子进程有可能两个进程对应一个程序)程序是永久性的软件资源暂存资源,动态过程进程的五个基本特征动态性:进程是程序在并发系统内的一次执行,一个进程有一个从产生到消失的生命期;并发性:正是为了描述程序在并发系统内执行的动态特性才引入了进程,没有并发就没有进程;独立性:每个进程的程序代码都是相对独立的顺序程序,可以按照自己的方向和速度独立地向前推进;制约性:进程之间的相互制约,主要表现在互斥地使用资源和相关进程之间必要的同步和通讯;结构性:进程静态结构=PCB+程序+数据集合。3.2进程的描述3.2.1进程控制块PCB3.2.2进程上下文3.2.3进程上下文切换3.2.4进程空间与大小3.2.1进程控制块PCB进程控制块是系统感知进程的唯一实体。其主要内容包括(几百-上千字节):◦描述信息:进程号,用户标识,家族关系◦控制信息:进程当前状态,进程预先级,程序开始地址,各种计时统计,通信信息◦资源管理信息:占用内存大小,内存管理用的数据结构指针,共享程序段大小和起始地址,输入输出设备号,传送数据的长度/缓冲区地址/与设备管理相关的数据结构指针,指向文件系统的指针及有关标识◦CPU现场保护结构3.2.1进程控制块PCB★进程控制块是进程存在的标志,当系统创建一个进程时,实际上就是为其建立一个进程控制块。★注意:进程控制块由于比较大,所以,内存中只存放常用的部分(例如CPU现场保护、进程描述信息、控制信息等),而大部分信息存放在外存,待进程运行时与其他数据一起装入内存。3.2.2进程上下文进程上下文:是进程执行过程中顺序关联的静态描述,包括:与进程相关的各种寄存器的值、正文段、数据集、各种堆栈值和PCB结构。PCB各种控制表指针各种寄存器正文段数据集栈区3.2.2进程上下文进程上下文有:用户级上下文、系统级上下文、寄存器上下文等。系统级上下文有动态和静态部分组成。动态部分是各种寄存器的值、记录进入和退出各层时,系统记录的各层上下文中相关联的寄存器的值。进程上下文切换发生在不同的进程之间图3.3UNIXSystemⅤ进程上下文组成当发生过程调用或者中断时必须保存和恢复的信息。用户执行程序和数据处理器的状态信息包含着每个进程的控制信息。3.2.2进程上下文3.2.3进程上下文切换进程上下文切换步骤:1)保存被切换进程的正文部分至有关存储区。2)把原来的进程移至合适的队列-就绪、阻塞,选择另一个要执行的进程。3)将被选中进程的原来被包保存的正文部分从相关存储区中取出,并送至有关寄存器和堆栈,激活被选中进程执行。3.2.4进程空间与大小进程空间:任一进程均有一个自己的地址空间,把该空间称为进程控间或虚空间。进程空间大小只与处理机位数有关。例如32位长的处理机进程空间大小为232=4GB.3.2.4进程空间与大小为了防止用户程序访问系统空间,造成错误,计算机系统通过程序状态寄存器等设置不同的执行模式,即用户模式(用户态)和系统模式(系统态)来进程保护.只能由操作系统来访问空间3.3进程状态及其转换3.3.1进程状态3.3.2进程状态的转换3.3.1进程状态初始态:一个进程在刚创建时处于“初始”状态。终止态:一个进程在运行终止后处于“终止”状态。运行状态:进程已获得处理机,并且在CPU上执行的状态。单CPU系统中,任一时刻处于执行状态的进程只能有一个。就绪状态:一个进程已经具备运行条件,但由于没有获得处理机而不能运行时所处的状态。一旦把CPU分配给它,该进程就可运行。处于就绪状态的进程可以是多个。★等待状态也称阻塞状态或封锁状态,是指:进程因等待某种事件发生而暂时不能运行的状态。系统中处于等待状态的进程可以有多个。★引起等待的原因一旦消失,进程便转为就绪状态,以便在适当的时候投入运行。3.3.1进程状态一个进程在执行期间不断在“就绪”、“执行”和“等待”三种基本状态之间转换,以“走走停停”方式向前推进。等待(不能占用CPU)就绪(尚未占用CPU)执行(正在占用CPU)等待事件事件发生时间片到调度选中进入初始终止3.3.2进程状态转换3.4进程控制3.4.1进程创建与撤销3.4.2进程阻塞与唤醒3.4进程控制进程控制:系统使用一些具有特定功能的程序段(原语)来创建、撤销进程以及完成进程个状态间的转换,从而达到多进程高效率并发执行和协调、实现资源共享的目的。原语:在系统态下执行的具有特定功能的程序段,原语分为指令级原语和功能级原语。(1)指令级原语:执行期间不允许中断,是不可分割的单位。(2)功能级原语:执行期间不允许并发的程序段。原语的特点:a、具有独立的系统功能;b、在系统态运行;c、不允许中断或不允许并发。3.4进程控制1、进程创建(1)创建方式:a、由系统程序模块统一创建,各进程关系平等;b、由父进程创建进程之间

1 / 165
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功