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

上传人:豆浆 文档编号:48641975 上传时间:2018-07-18 格式:PPT 页数:29 大小:1.68MB
返回 下载 相关 举报
《操作系统》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 进程的概念 o2.1.1多道程序设计环境下的程序特点 .单道程序设计环境下的程序特点 1.资源的独占性程序A程序B程序C时间42342453

2、30469141820232630图例:打印机输出CPU执行 . .执行的顺序性 结果的再现性 多道程序设计环境下的程序特点 2.程序A时间04691215 17131822程序B程序C. 执行的并发性:宏观上,在内存的 多个程序都按自己程序规定的操作步骤 向前推进;微观上,CPU在任何时刻只 执行一个程序,它们轮流占用CPU,交 替地执行着。 . 相互的制约性:内存里的多个程序共享系统中的资源,相互间必然有各种制约。 一种是“间接制约关系”,另一种是“直接制约关系” 。程序P1调用echo()函数,getchar()接收到从键盘输入的字符x,在将其存于变 量chin后被中断; 程序P1从断点

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

4、= chin;putchar(chout); 执行顺序1 :程序P2调用echo()函数,getchar()接收到从键盘输入的 字符y,然后在屏幕上显示出字符y。(1)(2).执行顺序2 :(1)(2)(3)程序P2获得CPU使用权,调用echo()函数,从头做到尾,屏幕上显示字符y; 返回目录.o2.1.2 进程的定义 1. 进程的定义 .进程是程序的一次运行活动;进程的运行活动是建立在某个数据集合之上的;进程要在获得资源的基础上从事自己的运行活动。所谓“进程”是指一个程序在给定数据集合上的一次执行过程,是系统进行资源分配和 运行调度的独立单位。 可从三个方面来描述进程: (1)(2)(3)

5、例2-2 :驼峰溜放控制过程中的进程 驼峰到达场编组场溜放中 的一勾车雷达 测速、测长道岔 (轨道电路)一列新货车一列解体货车缓行器1234 5678股道号溜放中 的一勾车 扳道岔程序 .缓行器控制程序 .雷达测速程序 .雷达测长程序 .巡回检测程序 2. 进程与程序的关系 进程是一个动态的概念,强调的是程序的一次“执行”过程;程序则是一 组有序指令的集合,在多道程序设计环境下,它不涉及“执行”,是一个静态 的概念。 .不同进程可执行同一个程序。由进程的定义可知,区分进程的条件一是所执行的程 序,二是数据集合。即使多个进程执行相同的一个程序,只要它们运行在不同的数据集 合上,它们就是不同的进程

6、。 .每个进程都有自己的生命期。进程的本质是程序的一次执行过程,当系统要完成某 项工作时,它就“创建”一个进程,以便执行事先编写好的、完成该工作的那段程序。程 序执行完毕、完成预定的任务后,系统就“撤消”这个进程,收回它所占用的资源。一个 进程创建后,系统就感知到它的存在;一个进程撤消后,系统就无法再感知到它。于是 从创建到撤消,这个时间段就是一个进程的“生命期”。 .进程之间具有并发性。在一个系统中,同时会存在多个进程,与它们对应的多个程 序同时在系统中运行,轮流占用CPU和各种资源。这正是多道程序设计的初衷,说明这 些进程在系统中并发执行着。 .进程间会相互制约。由于进程是系统中资源分配和

7、运行调度的单位,因此在对资源 共享和竞争中,必然会相互制约,影响了各自向前推进的速度。 通常,系统进程运行在核心态,用户进程运行在用户态。不过,在微内核模 式下,只有那些执行基本功能程序的进程,运行在核心态,那些执行非基本程序的进 程,则以各种服务的形式运行在用户态。 系统进程与用户进程都要使用系统中的各种资源,它们都是资源分配与运行 调度的独立单位,但系统进程的使用级别,应该高于用户进程。也就是说,在双方出现 对资源的竞争时,系统进程有优先获得资源、优先得到运行的权利。只有这样,才能保 证计算机系统高效、有序的工作。 系统进程直接管理软、硬件资源的有关活动;而用户进程则不得插手资源管 理,在

8、需要使用资源时,必须向系统提出申请,由系统统一调度与分配。 系统进程间的相互关系由操作系统负责协调,以利于增加系统的并行性,提 高资源的整体利用率;用户进程间的相互关系由用户自己(在程序中)安排。不过,操 作系统会向用户提供一定的协调手段(以系统调用命令的形式)。 3. 系统进程与用户进程 .在多道程序设计系统中,既有操作系统程序,又有用户程序,因此整 个系统中存在着两类进程:一类是系统进程,一类是用户进程。 . 操作系统中用于管理系统资源的那些可以并发执行的程序,构成了一 个个系统进程,它们提供系统的服务,分配系统的资源;而可以并发执行的用户程序段 ,形成一个个用户进程,它们是操作系统的服务

9、对象,是系统资源的实际享用者。 .系统进程与用户进程的主要区别 : (1)(2)(3)(4)返回目录终止:进程或正常结束,或因某种原因被强制结束。这时,系统正在为其进行 善后处理。 阻塞:进程正在等待某事件(如I/O完成)的发生。在事件到来之前,即使把 CPU分配给这个进程,它也无法运行。阻塞状态有时也被称为等待状态。 运行:进程获得CPU正在被执行中。若系统只有一个CPU,那么任何时候系统 中最多只有一个进程处于运行状态。 就绪:进程已具备运行的条件,只要有机会获得CPU,它就可以投入运行。 创建:进程正在初创时期,操作系统还没把它列入可执行的进程行列。 o2.1.3 进程的状态及状态变迁

10、1. 进程的基本状态和状态变迁 .就绪提交 运行阻塞终止调度撤销超时 事件发生等待事件三种最 基本的状态创建进程的五种状态 (1)(2)(3)(4) (5)进程状态的变迁进程从一个状态改变成另一 个状态,称为进程状态的“变迁”。箭头上 的文字,是引起状态变迁的原因。并不是 所有的进程状态之间都可发生变迁。.可能的变迁为:创建就绪 ,就绪运行 ,运行就绪,运行阻塞 ,阻塞就绪 ,运 行终止 就绪/挂起:进程在辅存。只要被激活,进程就可以调入内存,如果获得CPU 就可以投入运行。 2. 对进程状态更细致的划分 就绪/挂起就绪激活 运行阻塞终止调度撤销超时事件发生等待事件挂起阻塞/挂起激活挂起事件发

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

12、 ,运行就绪/挂起 。返回目录进程控制块里包括四种基本 信息:标识信息、现场保护区信 息、调度信息以及管理信息 。程序代码及与代码相关联的数据集合,是组成一个进程的实体。但它们都是静态文 本,无法反映进程的各种动态特征。 2.2 进程的管理 o2.2.1 进程控制块 . .1. 进程控制块 为便于管理和控制进程的执行,为随时刻画进程的动态特性,为反映进程间的相互 关系,操作系统用一个与进程有关的数据结构来完成这样的任务。这个数据结构被称为 “进程控制块(PCB)”,它由操作系统创建和管理。标识信息现场保护区 信息调度信息管理信息进程标识符(进程名)进程标识数(PID)家族关系(父进程)家族关系

13、(子孙进程)通用寄存器指令计算器程序状态字(PSW)用户栈指针进程状态进程优先数(级/权)等待原因队列指针程序存放位置资源使用历史打开的文件数据存放位置由于进程控制块PCB里包含着 一个进程所需要的所有信息,因此 它是操作系统中最重要的一种数据 结构。进程的PCB是系统感知一个 进程实际存在的唯一实体。 .2. 进程的三个组成部分 .操作系统中进程由三个部分组成,称为“进程映像” 。 (1) (2) (3)程序:进程将要执行的程序; 数据:用户空间中的可修改部分,如数据、堆栈、可修改程序; 进程控制块PCB:记录操作系统 管理、控制进程所需要的数据信息。 进程映像的表示PCBPCBPCB1PC

14、B2程 序程 序程 序数据 集合数据 集合数据 集合1数据 集合2(a)(b)(c)3. 进程间的切换 进程P0进程P1操作系统中断或系统调用保护现场到PCB0从PCB1现场保护区 获取现场信息中断或系统调用保护现场到PCB1从PCB0现场保护区 获取现场信息执行执行执行被打断 的断点x从断点x 恢复执行被打断 的断点y返回目录PCB中可以有多个队列指 针,以反映进程间的不同关系,比 如用另一个指针反映出进程间的家 族关系。 还可以有就绪/挂起队列、 阻塞/挂起队列等; 队列最后一个PCB的“队列 指针”里,放队列结束标志,如“-1”; 操作系统要为每个队列设置 一个头指针,通过它及队列中各P

15、CB 里的队列指针,可以得到该队列里的 所有进程的PCB; o2.2.2 进程控制块队列.操作系统是通过PCB来管理系统中的进程的。最常用的办法是根据进程所 处状态的不同,通过PCB中的链接指 针,形成各种管理队列。 .运行队列 头指针就绪队列 头指针PCBPCBPCBPCBPCB-1阻塞队列1 头指针PCBPCB-1阻塞队列2 头指针PCBPCBPCBPCB-1PCB队列指针(a) 带有队列指针的PCB(b) 由PCB组成的各种队列几点说明 (1)(2)(3)(4)返回目录按系统所采用的调度算法,将其PCB排入就绪队列 或就绪/挂起队列。 调用创建进程原语后,系统中出现一个新的进程,就会 感

16、知到这个进程的存在。一个进程创建(或“派生”)另一个 进程,前者称为父进程,后者称为子进程。 o2.2.3 进程控制的系统调用命令 在执行期间不能被打断、不能被分割的程序段,在操作系统里称作“原 语”、“原子操作”或“不可分割的操作”。 . . .有关进程控制的系统调用命令都是以原语的形式出现的。 1. 创建进程原语 屏蔽中断申请一个PCB分配一个标识填写PCB将进程置为就绪或就绪/挂起 状态,到相应队列排队开中断不能被分 割的整体.创建进程原语程序主要应该完成的工作 (1)为新进程申请一个PCB; (2)为新进程分配一个唯一的标识; (3) 根据创建者提供的信息,填写进程控制块PCB里的 各项内容; (4) . 创建进程原语的图中,“屏蔽中断”及“开中断”两个操作

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

当前位置:首页 > 建筑/环境 > 综合/其它

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