《操作系统》2进程与线程课件

上传人:aa****6 文档编号:54797003 上传时间:2018-09-19 格式:PPT 页数:29 大小:1.57MB
返回 下载 相关 举报
《操作系统》2进程与线程课件_第1页
第1页 / 共29页
《操作系统》2进程与线程课件_第2页
第2页 / 共29页
《操作系统》2进程与线程课件_第3页
第3页 / 共29页
《操作系统》2进程与线程课件_第4页
第4页 / 共29页
《操作系统》2进程与线程课件_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《《操作系统》2进程与线程课件》由会员分享,可在线阅读,更多相关《《操作系统》2进程与线程课件(29页珍藏版)》请在金锄头文库上搜索。

1、第2章 进程与线程,本章目录,2.1 进程的概念,2.1.1 多道程序设计环境下的程序特点,2.1.2 进程的定义,2.2 进程的管理,2.2.1 进程控制块,2.2.2 进程控制块队列,2.4.3 Linux进程的生存过程,2.2.3 进程控制的系统调用命令,2.1.3 进程的状态及状态变迁,2.3 线程,2.3.1 线程的概念,2.3.2 线程的实现,2.3.3 线程与进程的关系,2.4 Linux的进程,2.4.1 Linux进程,2.4.2 Linux的几种链接信息,2.1 进程的概念,2.1.1,多道程序设计环境下的程序特点,.,单道程序设计环境下的程序特点,1.,资源的独占性,程序

2、A,程序B,程序C,时间,4,2,3,4,2,4,5,3,3,0,4,6,9,14,18,20,23,26,30,图例:打印机输出CPU执行,.,.,执行的顺序性,结果的再现性,多道程序设计环境下的程序特点,2.,程序A,时间,0,4,6,9,12,15,17,13,18,22,程序B,程序C,.,执行的并发性:宏观上,在内存的多个程序都按自己程序规定的操作步骤向前推进;微观上,CPU在任何时刻只执行一个程序,它们轮流占用CPU,交替地执行着。,.,相互的制约性:内存里的多个程序共享系统中的资源,相互间必然有各种制约。一种是“间接制约关系”,另一种是“直接制约关系” 。,程序P1调用echo(

3、)函数,getchar()接收到从键盘输入的字符x,在将其存于变量chin后被中断;,程序P1从断点恢复执行。此时由于P2调用了echo(),chin里原先的x被y所覆盖。于是,在屏幕上显示的是y,而不是x。,程序P1调用echo()函数,getchar()接收到从键盘输入的字符x,然后在屏幕上显示出字符x;,.,状态的多变性:诸多程序在运行过程中有着各种制约关系,致使内存中每一个程序的状态总在不断的变化之中:时而获得CPU处于运行状态;时而由于输入/输出或申请某种资源未得到满足而只好挂起来等待。它们走走停停,停停走走,交替式地向前推进,直至终点。,例2-1 :,在多道程序设计环境下,“结果再

4、现性”被打破的简单例子,void echo() chin = getchar();chout = chin;putchar(chout); ,执行顺序1 :,程序P2调用echo()函数,getchar()接收到从键盘输入的字符y,然后在屏幕上显示出字符y。,(1),(2),.,.,执行顺序2 :,(1),(2),(3),程序P2获得CPU使用权,调用echo()函数,从头做到尾,屏幕上显示字符y;,返回目录,.,2.1.2 进程的定义,1.,进程的定义,.,进程是程序的一次运行活动;,进程的运行活动是建立在某个数据集合之上的;,进程要在获得资源的基础上从事自己的运行活动。,所谓“进程”是指一

5、个程序在给定数据集合上的一次执行过程,是系统进行资源分配和运行调度的独立单位。,可从三个方面来描述进程:,(1),(2),(3),例2-2 :,驼峰溜放控制过程中的进程,驼峰,到达场,编组场,溜放中 的一勾车,雷达 测速、测长,道岔 (轨道电路),一列新货车,一列解体货车,缓行器,1,2,3,4,5,6,7,8,股道号,溜放中 的一勾车,扳道岔程序,.,.,缓行器控制程序,.,雷达测速程序,.,雷达测长程序,.,巡回检测程序,2.,进程与程序的关系,进程是一个动态的概念,强调的是程序的一次“执行”过程;程序则是一组有序指令的集合,在多道程序设计环境下,它不涉及“执行”,是一个静态的概念。,.,

6、.,不同进程可执行同一个程序。由进程的定义可知,区分进程的条件一是所执行的程序,二是数据集合。即使多个进程执行相同的一个程序,只要它们运行在不同的数据集合上,它们就是不同的进程。,.,每个进程都有自己的生命期。进程的本质是程序的一次执行过程,当系统要完成某项工作时,它就“创建”一个进程,以便执行事先编写好的、完成该工作的那段程序。程序执行完毕、完成预定的任务后,系统就“撤消”这个进程,收回它所占用的资源。一个进程创建后,系统就感知到它的存在;一个进程撤消后,系统就无法再感知到它。于是从创建到撤消,这个时间段就是一个进程的“生命期”。,.,进程之间具有并发性。在一个系统中,同时会存在多个进程,与

7、它们对应的多个程序同时在系统中运行,轮流占用CPU和各种资源。这正是多道程序设计的初衷,说明这些进程在系统中并发执行着。,.,进程间会相互制约。由于进程是系统中资源分配和运行调度的单位,因此在对资源共享和竞争中,必然会相互制约,影响了各自向前推进的速度。,通常,系统进程运行在核心态,用户进程运行在用户态。不过,在微内核模式下,只有那些执行基本功能程序的进程,运行在核心态,那些执行非基本程序的进程,则以各种服务的形式运行在用户态。,系统进程与用户进程都要使用系统中的各种资源,它们都是资源分配与运行调度的独立单位,但系统进程的使用级别,应该高于用户进程。也就是说,在双方出现对资源的竞争时,系统进程

8、有优先获得资源、优先得到运行的权利。只有这样,才能保证计算机系统高效、有序的工作。,系统进程直接管理软、硬件资源的有关活动;而用户进程则不得插手资源管理,在需要使用资源时,必须向系统提出申请,由系统统一调度与分配。,系统进程间的相互关系由操作系统负责协调,以利于增加系统的并行性,提高资源的整体利用率;用户进程间的相互关系由用户自己(在程序中)安排。不过,操作系统会向用户提供一定的协调手段(以系统调用命令的形式)。,3.,系统进程与用户进程,.,在多道程序设计系统中,既有操作系统程序,又有用户程序,因此整个系统中存在着两类进程:一类是系统进程,一类是用户进程。,.,操作系统中用于管理系统资源的那

9、些可以并发执行的程序,构成了一个个系统进程,它们提供系统的服务,分配系统的资源;而可以并发执行的用户程序段,形成一个个用户进程,它们是操作系统的服务对象,是系统资源的实际享用者。,.,系统进程与用户进程的主要区别 :,(1),(2),(3),(4),返回目录,终止:进程或正常结束,或因某种原因被强制结束。这时,系统正在为其进行善后处理。,阻塞:进程正在等待某事件(如I/O完成)的发生。在事件到来之前,即使把CPU分配给这个进程,它也无法运行。阻塞状态有时也被称为等待状态。,运行:进程获得CPU正在被执行中。若系统只有一个CPU,那么任何时候系统中最多只有一个进程处于运行状态。,就绪:进程已具备

10、运行的条件,只要有机会获得CPU,它就可以投入运行。,创建:进程正在初创时期,操作系统还没把它列入可执行的进程行列。,2.1.3,进程的状态及状态变迁,1.,进程的基本状态和状态变迁,.,.,就绪,提交,运行,阻塞,终止,调度,撤销,超时,事件发生,等待事件,三种最 基本的状态,创建,进程的五种状态,(1),(2),(3),(4),(5),进程状态的变迁,进程从一个状态改变成另一 个状态,称为进程状态的“变迁”。箭头上的文字,是引起状态变迁的原因。并不是所有的进程状态之间都可发生变迁。,.,可能的变迁为:创建就绪 ,就绪运行 ,运行就绪,运行阻塞 ,阻塞就绪 ,运行终止,就绪/挂起:进程在辅存

11、。只要被激活,进程就可以调入内存,如果获得CPU就可以投入运行。,2.,对进程状态更细致的划分,就绪/挂起,就绪,激活,运行,阻塞,终止,调度,撤销,超时,事件发生,等待事件,挂起,阻塞/挂起,激活,挂起,事件发生,创建,提交,提交,挂起,.,.,若内存中现有的进程都在等待I/O的完成,CPU只能空闲运转。这无疑是对系统资源的一种浪费。,.,使用磁盘与内存间的交换技术,可达到提高CPU利用率的目的。,新增两个状态,(1),(2),阻塞/挂起:进程在辅存等待事件的发生。只要被激活,进程就可以调入到内存里去等待事件的发生。,.,处于这两种状态的进程,表示它们是在辅存而不是内存。只有通过“激活”,才

12、可以使这些进程的状态变迁为“就绪”或“阻塞”,从而进入内存。,.,这时,比较重要的变迁是:阻塞阻塞/挂起 ,阻塞/挂起就绪/挂起 ,就绪/挂起就绪 ,就绪就绪/挂起 ,创建就绪,创建就绪/挂起,阻塞/挂起阻塞 ,运行就绪/挂起 。,返回目录,进程控制块里包括四种基本信息:标识信息、现场保护区信息、调度信息以及管理信息 。,程序代码及与代码相关联的数据集合,是组成一个进程的实体。但它们都是静态文本,无法反映进程的各种动态特征。,2.2 进程的管理,2.2.1 进程控制块,.,.,.,1.,进程控制块,为便于管理和控制进程的执行,为随时刻画进程的动态特性,为反映进程间的相互关系,操作系统用一个与进

13、程有关的数据结构来完成这样的任务。这个数据结构被称为“进程控制块(PCB)”,它由操作系统创建和管理。,标识信息,现场保护区 信息,调度信息,管理信息,进程标识符(进程名),进程标识数(PID),家族关系(父进程),家族关系(子孙进程),通用寄存器,指令计算器,程序状态字(PSW),用户栈指针,进程状态,进程优先数(级/权),等待原因,队列指针,程序存放位置,资源使用历史,打开的文件,数据存放位置,由于进程控制块PCB里包含着一个进程所需要的所有信息,因此它是操作系统中最重要的一种数据结构。进程的PCB是系统感知一个进程实际存在的唯一实体。,.,2.,进程的三个组成部分,.,.,操作系统中进程

14、由三个部分组成,称为“进程映像” 。,(1),(2),(3),程序:进程将要执行的程序;,数据:用户空间中的可修改部分,如数据、堆栈、可修改程序;,进程控制块PCB:记录操作系统管理、控制进程所需要的数据信息。,进程映像的表示,PCB,PCB,PCB1,PCB2,程 序,程 序,程 序,数据 集合,数据 集合,数据 集合1,数据 集合2,(a),(b),(c),3.,进程间的切换,进程P0,进程P1,操作系统,中断或系统调用,保护现场到PCB0,从PCB1现场保护区 获取现场信息,中断或系统调用,保护现场到PCB1,从PCB0现场保护区 获取现场信息,执行,执行,执行,被打断 的断点x,从断点

15、x 恢复执行,被打断 的断点y,返回目录,PCB中可以有多个队列指针,以反映进程间的不同关系,比如用另一个指针反映出进程间的家族关系。,还可以有就绪/挂起队列、阻塞/挂起队列等;,队列最后一个PCB的“队列指针”里,放队列结束标志,如“-1”;,操作系统要为每个队列设置一个头指针,通过它及队列中各PCB里的队列指针,可以得到该队列里的所有进程的PCB;,2.2.2 进程控制块队列,.,操作系统是通过PCB来管理系统中 的进程的。最常用的办法是根据进程所处状态的不同,通过PCB中的链接指 针,形成各种管理队列。,.,运行队列 头指针,就绪队列 头指针,PCB,PCB,PCB,PCB,PCB,-1,阻塞队列1 头指针,PCB,PCB,-1,阻塞队列2 头指针,PCB,PCB,PCB,PCB,-1,PCB,队列指针,(a) 带有队列指针的PCB,(b) 由PCB组成的各种队列,几点说明,(1),(2),(3),(4),返回目录,按系统所采用的调度算法,将其PCB排入就绪队列或就绪/挂起队列。,调用创建进程原语后,系统中出现一个新的进程,就会感知到这个进程的存在。一个进程创建(或“派生”)另一个进程,前者称为父进程,后者称为子进程。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号