操作系统设计原理 课件第2章 进程与线程_第1页
操作系统设计原理 课件第2章 进程与线程_第2页
操作系统设计原理 课件第2章 进程与线程_第3页
操作系统设计原理 课件第2章 进程与线程_第4页
操作系统设计原理 课件第2章 进程与线程_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

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

文档简介

1第二章进程与线程

学习要求掌握进程、线程管理基本原理及处理机制能够识别进程、线程管理功能实现的关键环节和影响因素能认识到进程、线程管理模块的实现有多种方案可选能够通过文献研究,在相关进程、线程管理功能模块实现的多种方案中,寻求一种更合适的解决方案。

能够遵循系统化的基本要求,确定进程、线程管理相关功能模块设计目标和技术方案。能够运用所学知识解决进程、线程管理的功能模块设计与实现问题,能在设计实现中体现创新意识。3总述操作系统的重要任务之一:是充分、有效地利用系统的各类资源

最宝贵的资源:CPU

分配调度策略、处理冲突、资源回收

引入进程:作为资源分配的基本单位和基本实体

处理器的管理→进程管理

4第二章进程与线程2.1

多道程序与并发执行2.2

进程2.3

线程2.4进程管理实例52.1多道程序与并发执行本节内容:介绍程序的顺序执行;分析程序顺序执行的特点;引入多道程序并发执行;分析程序的并发执行和特点。

62.1多道程序与并发执行2.1.1程序的顺序执行和特点2.1.2程序的并发执行和特点72.1.1程序的顺序执行和特点计算机上运行的是:程序程序:是一个在时间上按严格次序先后操作的指令序列。它规定完成某一任务时所需做的各种操作规定操作顺序单道程序系统:每次只允许一道程序进入计算机执行的系统。82.1.1程序的顺序执行和特点单道程序系统中:每次只允许一道程序运行;它将独占系统资源(处理器、主存、辅存、外设、软件);系统按照程序设计的步骤顺序地执行;在该程序执行完成之前,其它程序只能等待。

92.1.1程序的顺序执行和特点例:假设有两道程序都需运行,在单道程序系统中的运行情况如下:I代表输入,用C代表计算,P代表打印程序1程序2I1C1P1I2C2P2102.1.1程序的顺序执行和特点顺序执行的特点:程序执行的顺序性:前一步完才做下一步;程序运行时对资源的独占性:没有其它程序与之争夺资源;程序结果的可再现性:程序执行的结果与执行速度、时间无关;程序结果的封闭性:程序的运行只由初始条件和程序本身来确定。112.1.1程序的顺序执行和特点优点:系统管理简单,容易实现。缺点:系统的资源得不到充分的利用。中断和通道技术的引入122.1.2程序的并发执行和特点程序的并发执行:一道程序不用某一系统资源,另一程序道就可以马上利用;多道程序并发执行的情形:132.1.2程序的并发执行和特点142.1.2程序的并发执行和特点宏观:同时驻留在主存的几道程序都按照自己的程序规定动作执行;微观:是这几道程序交替执行。152.1.2程序的并发执行和特点程序的并发执行的特点:程序执行时的资源共享性:硬资源、软件资源(系统软件、数据);程序失去了封闭性和可再现性:举例并发程序之间的相互制约性:共享系统内的资源,因此程序之间产生相互制约关系。并发程序活动规律:执行—暂停—执行程序:静态概念(难于描述动态系统)进程16例:varn:integerbeginn:=0;cobegin

programA;beginL1:n:=n+1;gotoL1end

programB;beginL2:print(n);n:=0;

gotoL2end

coend

end

172.2进程2.2.1进程的概念2.2.2进程的实体2.2.3进程状态和转换2.2.4进程的控制2.2.5进程的调度进程的引入:程序的缺点:无法表示系统的动态特性,如:两个用户同时执行CC编译自己的程序,某时刻程序的执行状态难以刻画(运行、就绪、等待?)。引入进程(程序+处理对象)可表示执行动态特性。182.2.1进程的概念进程的六种理解方法(任务、活动)任何一个处于执行的程序。可以和别的计算并发执行的计算。程序及其数据在处理器上顺序执行时的活动。抽象实体,当它执行一个任务时,将要分配和释放各种资源。独立的可以调度的活动。具有独立功能的程序关于某个数据集合的一次运行活动。

192.2.1进程的概念进程的定义(程序段+数据)能和其它程序并行执行的程序段在某数据集合上的一次运行过程,它是系统资源分配和调度的一个独立单位。注意的问题:程序段可以并行执行。(并发性)基础是一个程序段,而不是整个程序。程序段在数据上的一次运行(某数据集合上的运行)动态的,是程序的一次执行过程。(动态性)能独立运行的基本单位。(独立性)202.2.1进程的概念进程和程序的区别:进程是一段程序的一次运行活动,动态概念,有一定“生命期”;程序是一组指令的集合:静态概念;程序段运行在两个不同数据集合上,就是两个不同的进程;一个程序可以对应多个进程;一个进程至少要对应一个程序,或对应多个程序,多个进程也可对应相同的程序。进程具有并行特征(独立性和异步性);进程是资源分配的基本单位。例子:光盘(CD、VCD)光盘(程序)放光盘的活动(进程)212.2.2进程的实体1、进程的组成程序:进程→完整的程序、一部分程序;数据集合:运行需要的数据、工作区域;进程控制块(PCB):描述和标志进程(创建进程时,建立PCB;完成任务被撤销时,撤销PCB。)物质基础222.2.2进程的实体进程控制块

PCB(ProcessControlBlock)

存放进程的管理和控制信息(标识信息,说明信息,现场信息,管理信息)的数据结构称为进程控制块。在创建进程时,建立PCB,并伴随进程运行的全过程,直到进程撤消而撤消。PCB就象我们的户口表。232.2.2进程的实体PCB的组织方式(为了管理上的方便)线性方式:所有的PCB组成一个数组;链接方式:运行队列、就绪队列、阻塞队列;索引方式:建立N张索引表。例如就绪索引表、阻塞索引表等。

242.2.2进程的实体线性方式PCB使用一个数组来组织和保存通过下标访问PCB缺点:找到某一状态的PCB,需要扫描整个线性表;PCBPCBPCB……PCB252.2.2进程的实体链接方式将具有相同状态的PCB,使用链表的形式组成一个队列;系统使用固定单元,保存各队列的第一个PCB的起始地址;队列类型:运行队列(多处理机)、就绪队列、阻塞队列。262.2.2进程的实体运行队列就绪队列阻塞队列272.2.2进程的实体索引方式还是使用统一的队列存放PCB;根据所有进程状态,建立N张索引表;索引表的首地址记录于内存中的专用单元中;282.2.3进程状态和转换1.进程的三种基本状态进程:动态的概念,表示了执行过程。(生命期)为了便于管理:对进程的不同时刻的不同状况,进行划分;三种基本状态(按照对资源的占用情况)就绪状态:执行状态:阻塞状态:292.2.3进程状态和转换(1)就绪状态进程获得其它全部资源;但不能占用CPU;一旦获得CPU就可以执行;(2)执行状态已获得必要的资源并占有CPU,正在执行;单处理器系统:只能有一个进程处于执行状态多机处理系统:可能有多个进程处于执行状态(3)阻塞(等待)状态进程因等待某一事件而暂不能执行的状态;是等待除CPU外的资源或事件。CPU是一类特殊的资源302.2.3进程状态和转换状态的细分(为了管理和调度的便利,如PDP11的UNIX)运行状态(执行、就绪状态):高优先级睡眠状态:低优先级睡眠状态:创建进程状态:正在被创建时等待终止处理状态:运行结束未撤消时暂停状态:被跟踪时本质:在三态的基础上再分。等待或阻塞状态312.2.3进程状态和转换进程状态的转换(运行过程中)产生的原因:自身的进展情况与其它进程并发执行外界条件的变化322.2.3进程状态和转换就绪状态执行状态阻塞状态资源满足且获得CPU(选中)

时间片用完(落选)等待事件已发生(资源得到满足)

等待事件发生(等待资源)状态转换33五种状态的进程状态转换图34双挂起状态的进程状态转换图352.2.4进程控制进程是有生命周期的,产生、运行、暂停、终止。对进程的这些操作叫进程控制。进程控制的职责是对系统中全部进程实施有效的管理,它是处理机管理的部分(另一部分是进程调度),当系统允许多进程并发执行时,为了实现共享、协调并发进程的关系,处理机管理必须提供对进程实行有效的管理。362.2.4进程控制问题:进程的三态和转换,如何控制它们的进行:如何对进程的整个生命期进行控制:创建、撤消进程控制的主要任务:对系统中所有进程从创建到消亡的全过程实行有效地管理和控制。包括对进程状态变化加以管理和控制;创建新进程和撤消已完成任务的进程;372.2.4进程控制进程控制包括:

进程创建、

进程撤消、

进程阻塞、

进程唤醒。

这些操作都要对应地执行一个特殊的程序段(操作系统核心程序),同时系统也通过系统调用给用户提供进程控制的功能。教材上叫原语(一种特殊的系统调用)。

原语:

用于完成特定功能的一段程序模块;执行期间不可分割。382.2.4进程控制运行状态

等待状态

进程阻塞等待状态

就绪状态

进程唤醒新建进程置为就绪状态进程创建进程终止(消亡)

进程撤消就绪状态

运行状态

进程调度392.2.4进程控制OS的内核中,用于进程控制的原语创建原语撤销原语阻塞原语唤醒原语对应进程的建立和撤消对应进程状态转换使进程在等待和就绪态之间转换402.2.4进程控制1.创建原语-用于建立新的进程。建立进程的两种方式-由操作系统建立;-由其它进程创建一个新的进程;形成父子进程关系建立过程AB1B2C1C2C3412.2.4进程控制创建过程填写相关信息申请PCB,分配惟一的数字标示符c调入程序设置为就绪状态42UNIX的进程创建:

1.fork:创建一个与自己完全一样的新进程;

2.exec:Windows的进程创建:

1.CreatProcess:传递参数。432.2.4进程控制2.撤消原语完成任务后,释放它所占用的资源;实质:撤消进程存在标志(进程控制块PCB)并释放资源包括子孙进程442.2.4进程控制进程撤销过程检索该进程PCB从相应队列删除查找所有的子孙进程释放这些进程的资源包括PCB如进程原来为执行状态重新调度进程执行452.2.4进程控制3.阻塞原语使用原因:因缺乏资源、等待I/O操作(也是资源的一种形式)等,而使用;使用目的:阻塞自己,进入阻塞态,使OS可以调度别的进程进入执行态。462.2.4进程控制阻塞过程保存当前进程的现场设置进程状态为等待进程进入阻塞队列转进程调度选择一个就绪态进程执行例如,进程是因等待打印机而进入阻塞状态,则该进程将加入到等待打印机的队列。进程挂起的系统调用算法和队列变化如下:472.2.4进程控制4.唤醒原语使用条件:某个资源得到满足。目的:唤醒所有等待该资源的进程,放入就绪队列,等待调度;唤醒过程:从等待队列中摘下进程设置进程状态为就绪进程进入就绪队列转进程调度或返回原进程482.2.4进程控制注意的问题:创建原语和撤消原语阻塞原语和唤醒原语分别都是一对相对的操作原语使用时,要注意成对的使用。492.3线程首先先分析进程的局限性线程的特性线程和进程的关系线程的实现50线程是对程序并发机制的进一步改善。引入的理由为:原并发机制是建立在进程基础上,当有并发进程抢占CPU时需进行进程上下文的切换,代价高。改善后并发机制是建立在线程基础上的,线程调度时不发生进程上下文的切换,可省去CPU的时间。引入线程后原有进程的两个特征分别处理——操作系统的调度分配单位用线程描述;资源的分配单位仍用进程。2.3.1线程的引入51线程:进程中的一个实体,比进程更小的独立运行的基本单位;(不独立拥有资源)进程内的基本调度单位。52进程与线程的关系操作系统中的进程和线程可以设计为以上四种53线程的属性四部分组成:惟一的标识符、状态寄存器两个栈、私用存储器被系统独立调度和分派的基本单位;本身很小,调度开销小。线程可以创建和撤消另一个线程;同一个进程中的线程可以并发执行;不同进程中的线程也能并发执行;PCB用户地址空间用户栈核心栈进程54每个线程有一个线程控制块(TCB)。线程标识符。描述处理机状态的一组寄存器。栈指针。一个私有存储区。线程标识符处理机状态信息用户栈指针核心栈指针私有存储区用户栈核心栈55进程和线程比较●进程是资源的拥有者●线程不拥有资源,只有TCB及堆栈562.3.1线程的引入引入线程后的优势:1)在已有进程中创建或终止一个线程远比控制进程来得快;2)线程间的切换更容易更快捷;3)线程间的通信无须内核干涉可直接进行。572.3.1线程的引入线程和进程的关系线程:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间;进程:有自己独立的地址空间;进程:资源分配和拥有的单位;线程:同一个进程内的线程共享进程的资源;进程:不是处理器调度的基本单位;线程:成为处理器调度的基本单位;进程:之间并发执行;线程:之间并发执行;地址空间资源拥有调度单位执行方式同样有三态转换和创建和终止582.3.1线程的引入进程、线程、程序、纯程序概念比较程序:静态的概念,无并发性;进程和线程:动态的概念,有并发性;进程:程序段+数据集拥有资源,有自己独立的地址空间;线程:不独占资源,共享进程资源,无独立地址空间纯程序:只有程序,本身无资源,调用程序提供数据区。59系统中进程与线程的表现形式可以是多样的:60线程的状态与管理

线程三种基本状态(1)就绪状态:表示线程已具备执行条件,等待调度程序分配CPU运行。(2)运行状态:表示线程被调度程序选中,并正占有CPU运行。(3)等待状态:表示线程正在等待某个事件发生。61线程的状态与操作

就绪执行阻塞结束派生调度结束阻塞激活62线程的典型应用场合

前后并行工作场合:如,表处理。

异步处理工作场合:如,设置一个备份线程,它每隔一分钟把RAM缓冲区的数据和信息写入磁盘。

需要加快执行速度的场合:如,一个线程在计算一批数据时另一个线程可以从设备上输入下一批数据,从而加快进程的执行速度。

组织复杂工作的程序:如,多个不同的任务需要处理,多线程机制可方便程序的设计和组织,且可提高整个系统效率。同时有多个用户服务请求的场合:如,文件服务器。632.3.2线程的实现两种方式:1.内核支持线程的实现2.用户级线程的实现64线程的实现用户级线程内核级线程组合的方法●线程的创建、撤消和切换,都不利用系统调用来实现。线程与内核无关,内核也不知道线程的存在。●依赖于内核,线程的创建、撤消和切换都由内核实现。在内核中有线程控制块(TCB),内核根据TCB感知线程的存在,并对线程进行控制。●由内核支持的用户线程。一个进程可以有一个或多个轻量级线程,每个轻量级线程由一个单独的内核线程来支持。652.3.2线程的实现1.内核支持线程的实现由OS内核管理:创建、撤消和切换内核提供相应的系统调用和API,用户程序可以创建、执行和撤消线程。

内核中保留了一个线程控制块(TCB);调度算法和进程类似,抢占式和非抢占式两种;时间片轮转法、优先权等算法。661.内核支持线程的实现

Windows2000,Linux,OS/2采用内核级线程。用户空间内核空间进程…核心级线程用户线程…核心线程671.内核支持线程的实现优点:用户编程简单;如果进程中一个线程阻塞,内核可以调度另外的线程;

可以利用多处理机。缺点:效率低;需要占用内核稀缺的内存资源;需修改操作系统。682.3.2线程的实现2.用户级线程的实现仅存在于用户级中,创建、撤消和切换与内核无关;内核不知道线程的存在;在用户空间实现的,运行在中间系统之上;有关线程管理的所有工作都由应用程序完成。692.3.2线程的实现用户级线程实现方法

线程库用户空间内核空间进程…用户级线程用户级线程702.3.2线程的实现用户级线程的优点:

(1)灵活性。线程调度算法和过程完全由用户进程自行选择确定,与其他进程甚至操作系统内核无关。(2)线程切换快。用户级线程的调度只进行线程上下文切换而不进行进程切换,且线程上下文切换是在内核不参与的情况下进行的。(3)用户级线程可以在任何操作系统中运行,不需要对底层内核进行修改。(4)进程状态可能与线程状态不一致。如,当一个进程由于I/O中断或时间片用完等原因造成该进程处于等待状态或就绪状态,而在该进程中执行的线程仍处于执行状态。

712.3.2线程的实现用户级线程的缺点:在典型的操作系统中,一个线程受阻会造成整个进程都受阻。(可解决)72测试结果比较:表:用户级线程、内核级线程及进程执行时间的比较操作用户级线程内核级线程进程操作2374411840(单位:μs)操作1:创建、调度、执行和完成一个零过程的线程/进程;操作2:线程/进程同步所需时间。73组合的方法Solaris中的线程●在用户级线程和内核级线程之间,定义了一种轻型进程(LWP)●由LWP实现了内核与用户级线程的隔离,从而使用户级线程与内核无关2.4进程管理实例UNIX进程管理Linux进程管理Windows进程管理OpenHarmony进程管理2.5.1UNIX进程管理0#进程:核心态;

创建1#进程;

处理器调度;

进程切换。1#进程:核心态、用户态;

创建终端进程;

是用户进程的祖先。2.5.1UNIX进程管理UNIX的进程上下文2.5.1UNIX进程管理UNIX的进程状态及转换

2.5.2Linux进程管理1.Linux进程包括以下四个要素。(1)内存空间的正文段(2)内存空间数据段(3)task_struct结构(4)系统堆栈每当产生一个新的进程时,就会在内核空间中分配一个8KB的空间记录新进程信息。2.5.2Linux进程管理2.Linux线程Linux的线程模型是一种一对一模型(即一个进程中只有一个线程),也就是每个线程实际上在核心是一个单独的进程,核心的调度程序负责线程的调度,就像调度普通进程。线程用系统调用vfork()和clone()创建,Linux允许新进程共享父进程的存储空间、文件描述符和软中断处理程序。2.5.2Linux进程管理Lin

温馨提示

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

评论

0/150

提交评论