首页计算机计算机软件计算机操作系统 02 第二章 进程管理 2.1-2.2.pptx

02 第二章 进程管理 2.1-2.2.pptx

页数:42页文件大小:210.6 KB来源: 计算机操作系统ppt课件

本课件进入第二章进程管理,对比程序的顺序执行与并发执行,说明引入进程的原因,讲解进程的结构特征、动态性与独立性,给出进程定义与就绪执行阻塞三态及含挂起状态的转换图,并介绍 PCB 的组织方式与进程控制原语。

计算机操作系统第二章进程管理封面,标示本章围绕进程基本概念与进程控制两条主线展开。
第二章 内容目录,列出本章各小节标题与内容顺序。
2.1进程的基本概念,以伪代码给出实现过程与关键步骤。
查看本课件的文字版(共 42 页,供检索与复制)

第1页:第二章 进程管理封面

第二章 进程管理:本页为《计算机操作系统》课件封面,标注课程名称与英文名称 Operating Systems,并列出 WINDOWS、UNIX、LINUX 等常见操作系统类型。

第2页:第二章 内容目录

第二章 内容目录:第二章进程管理2.1进程的基本概念2.2进程控制2.3进程同步2.4经典进程的同步问题2.5进程通信2.6线程。

第3页:2.1进程的基本概念

2.1进程的基本概念

2.1进程的基本概念 2.1.1程序的顺序执行及其特征S1:a:=x+y;S2:b:=a-5;S3:c:=b+1;1.顺序性---顺序执行;2.封闭性---程序运行时独占全机资源,不受外界影响;3.可再现性---程序重复执行时将得到相同结果;S1S2S3ab

第4页:2.1.3程序的并发执行及其特征

2.1.3程序的并发执行及其特征

2.1.3程序的并发执行及其特征

第5页:程序的并发执行时的特征

程序的并发执行时的特征

  • 间断性---并发执行导致间断性
  • 失去封闭性---多个程序共享资源,受外界影响
  • 不可再现性---程序重复执行时可能到不同结果;缓存区BUFP1P2

第6页:并发执行案例:交通路口计数

并发执行案例:交通路口计数

  • 案例
  • 例如:某交通路口设置了一个自动计数系统,该系统由观察者和报告者共同组成。观察者报告者交通路口自动计数系统观察到一辆卡车将计数值N累加1将计数值N清0输出计数值N

第7页:观察者与报告者的执行序列

观察者与报告者的执行序列

  • 7Procedure观察者begin观察到一辆卡车;N=N+1;endProcedure报告者beginprint N;N=0;end假设某时刻N的值为m,可能出现下面情况:print的N值N的最终取值
  • (3)m 0观察者;报告者报告者;观察者报告者Print N;观察者N=N+1;报告者N=0

第8页:操作系统为什么要引入进程概念?

操作系统为什么要引入进程概念?

  • 刻画系统的动态性,发挥系统的并发性,提高资源利用率
  • 程序是并发执行的,即不是连续而是走走停停的
  • 程序的并发执行引起资源共享和竞争问题,执行的程序不再处在封闭环境中
  • “程序”自身只是计算任务的指令和数据的描述,是静态概念
  • 无法刻画程序的并发特性
  • 系统需要寻找一个能描述程序动态执行过程的概念

第9页:进程的特征

进程的特征

  • 结构特征
  • 动态性
  • 并发性
  • 独立性
  • 异步性

第10页:进程的结构特征

进程的结构特征

  • 进程的特征
  • 结构特征
  • 为使程序(含数据)能独立运行,应为之配置一进程控制块(PCB,Process Control Block)
  • 由程序段、相关的数据段和PCB三部分便构成了进程实体
  • PCB常驻内存程序段数据段PCB动态特征的集中反映描述要完成的功能操作对象及工作区

第11页:进程的动态性

进程的动态性

  • 进程的特征
  • 动态性
  • 进程的最基本的特征
  • 程序只是一组有序指令的集合,并存放于某种介质上,其本身并不具有运动的含义,因而是静态的
  • 进程实体有一定的生命期
  • “它由创建而产生,由调度而执行,由撤消而消亡”
  • 作业调度与进程调度

第12页:进程的并发性与独立性

进程的并发性与独立性

  • 进程的特征
  • 并发性
  • 并发性是进程的重要特征,也成为OS的重要特征
  • 引入进程的目的:正是为了使其进程实体能和其它进程实体并发执行
  • 独立性
  • 在传统的OS中,独立性是指进程实体是一个能独立运行、独立分配资源和独立接受调度的基本单位
  • 异步性
  • 进程按各自独立的、不可预知的速度向前推进,或说进程实体按异步方式运行

第13页:进程的定义

进程的定义

  • 较典型的进程定义有
  • (1)进程是程序的一次执行
  • (2)进程是一个程序及其数据在处理机上顺序执行时所发生的活动
  • (3)进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位
  • 我们可以把传统OS中的进程定义为
  • “进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位”

第14页:进程的三种基本状态

进程的三种基本状态

  • 就绪(Ready)状态
  • 进程已分配到除CPU以外的所有必要资源
  • 就绪队列
  • 执行状态
  • 进程已获得CPU,其程序正在执行
  • 在单处理机系统中,只有一个进程处于执行状态
  • 在多处理机系统中,则有多个进程处于执行状态
  • 阻塞状态
  • 正在执行的进程由于发生某事件而暂时无法继续执行时,便放弃处理机而处于暂停状态
  • 引起阻塞的事件

第15页:进程三态及其转换

进程三态及其转换:进程三个基本状态及其转换执行就绪阻塞进程调度时间片完I/O请求I/O完成。

第16页:挂起状态

挂起状态

  • 引入挂起状态的原因
  • (1)终端用户的请求
  • (2)父进程请求
  • (3)负荷调节的需要
  • 为了让某些进程暂时不参与进程调度,对换到外存中,释放它占有的资源
  • (4)操作系统的需要
  • 挂起状态(静止状态)非挂起状态(活动状态)

第17页:具有挂起状态的进程状态图

具有挂起状态的进程状态图:具有挂起状态的进程状态图释放激活挂起调度时间片完I/O请求执行活动就绪释放静止就绪激活挂起静止阻塞活动阻塞挂起。

第18页:创建状态和终止状态

创建状态和终止状态

  • 创建状态
  • 为一个新进程创建PCB,并填写必要的管理信息
  • 该进程所必需的资源或其它信息尚未分配
  • 终止状态
  • 当一个进程到达了自然结束点,或是出现了无法克服的错误,或是被操作系统所终结,或是被其他有终止权的进程所终结,它将进入终止状态
  • 终止态的进程不能再执行
  • 一旦其它进程完成了对终止状态进程的信息提取之后,操作系统将删除该进程

第19页:进程五态及其转换

进程五态及其转换:进程的五种基本状态及转换执行就绪阻塞进程调度时间片完I/O请求I/O完成创建终止许可结束。

第20页:具有创建、终止和挂起状态的进程状态图

具有创建、终止和挂起状态的进程状态图:具有创建、终止和挂起状态的进程状态图释放激活挂起调度时间片完I/O请求执行活动就绪释放静止就绪激活挂起静止阻塞活动阻塞挂起创建许可许可终止结束。

第21页:2.1.5进程控制块

2.1.5进程控制块

  • 系统为每个进程定义的一个数据结构
  • PCB中记录了操作系统所需的、用于描述进程的当前情况以及控制进程运行的全部信息
  • PCB是进程存在的惟一标志
  • 最重要的记录型数据结构
  • PCB应常驻内存
  • 专门开辟的PCB区内

第22页:PCB中的信息组成

PCB中的信息组成:进程控制块中的信息1.进程标识符2.处理机状态3.进程调度信息4.进程控制信息。

第23页:PCB中的进程标识符

PCB中的进程标识符

  • 1进程控制块——进程标识符
  • 内部标识符
  • 一个惟一的数字标识符,它通常是一个进程的序号
  • 外部标识符
  • 它由创建者提供,通常是由字母、数字组成,往往是由用户(进程)在访问该进程时使用
  • 为了描述进程的家族关系,还应设置父进程标识及子进程标识
  • 设置用户标识,以指示拥有该进程的用户

第24页:PCB中的处理机状态

PCB中的处理机状态

  • 2进程控制块——处理机状态
  • 处理机状态信息主要是由处理机的各种寄存器中的内容组成的
  • 这些寄存器包括
  • ①通用寄存器,它们是用户程序可以访问的,用于暂存信息
  • ②指令计数器,其中存放了要访问的下一条指令的地址
  • ③程序状态字PSW,含有状态信息,如条件码、执行方式、中断屏蔽标志等
  • ④用户栈指针,指每个用户进程都有一个或若干个与之相关的系统栈,用于存放过程和系统调用参数及调用地址,栈指针指向该栈的栈顶

第25页:PCB中的进程调度信息

PCB中的进程调度信息

  • 3进程控制块——进程调度信息
  • 在PCB中还存放一些与进程调度和进程对换有关的信息,包括
  • ①进程状态
  • ②进程优先级,优先级高的进程应优先获得处理机
  • ③进程调度所需的其它信息,它们与所采用的进程调度算法有关,比如,进程已等待CPU的时间总和、进程已执行的时间总和等
  • ④事件,指进程由执行状态转变为阻塞状态所等待发生的事件,即阻塞原因

第26页:PCB中的进程控制信息

PCB中的进程控制信息

  • 4进程控制信息
  • ①程序和数据的地址,指进程的程序和数据所在的内存或外存地(首)址
  • ②进程同步和通信机制,指实现进程同步和进程通信时必需的机制
  • ③资源清单,即一张列出了除CPU以外的、进程所需的全部资源及已经分配到该进程的资源的清单
  • ④链接指针,它给出了本进程(PCB)所在队列中的下一个进程的PCB的首地址

第27页:进程控制块的组织方式

进程控制块的组织方式

  • 链接方式
  • 索引方式

第28页:PCB的链接方式

PCB的链接方式:链接方式PCB表PCB10PCB25PCB30PCB40PCB50PCB64执行指针就绪队列指针阻塞队列1指针阻塞队列2指针…PCBn7PCB70…空闲队列指针链接方式。

第29页:PCB的索引方式

PCB的索引方式:索引方式执行指针就绪表指针阻塞表1指针PCB表PCB1PCB2PCB3PCB4PCB5PCB6……PCBn…就绪索引表…阻塞索引表1阻塞表2指针…。

第30页:2.2进程控制

2.2进程控制

  • 进程控制是进程管理中最基本的功能
  • 进程控制任务
  • 进程创建、终止、进程状态的转变
  • 进程控制一般是由OS的内核中的原语来实现的
  • 原语是由若干条指令组成的,用于完成一定功能的一个过程
  • 它与一般过程的区别在于:它们是“原子操作”。因此,在执行过程中不允许被中断
  • 原子操作在管态下执行,常驻内存

第31页:2.2.1进程的创建——进程树

2.2.1进程的创建——进程树:2.2.1进程的创建——进程树。

第32页:引起创建进程的事件

引起创建进程的事件

  • 用户登录
  • 作业调度
  • 提供服务
  • 应用请求

第33页:进程的创建

进程的创建:调用进程创建原语Create( )按下述步骤创建一个新进程:1.申请空白PCB。2.为新进程分配资源。3.初始化进程控制块:初始化标识信息、初始化处理机状态信息、初始化处理机控制信息。4.将新进程插入就绪队列,如果进程就绪队列能够接纳新进程,便将新进程插入就绪队列。

第34页:2.2.2进程的终止

2.2.2进程的终止

  • 引起进程终止的事件
  • 正常结束
  • 异常结束
  • ①越界错误
  • ②保护错
  • ③非法指令
  • ④特权指令错
  • ⑤运行超时
  • ⑥等待超时
  • ⑦算术运算错
  • 外界干预
  • ①操作员或操作系统干预

第35页:进程的终止过程

进程的终止过程:进程的终止过程1.从PCB集合中检索出该进程的PCB,读出该进程的状态。2.若正处于执行状态,应立即终止该进程的执行,并置调度标志为真,重新调度。3.若还有子孙进程,还应将其所有子孙进程予以终止。4.将被终止进程所拥有的全部资源,或者归还给其父进程,或者归还给系统。5.将被终止进程(它的PCB)从所在队列(或链表)中移出,等待其他程序来搜集信息。

第36页:2.2.3进程的阻塞与唤醒

2.2.3进程的阻塞与唤醒:引起进程阻塞和唤醒的事件1)请求系统服务2)启动某种操作3)新数据尚未到达4)无新工作可做。

第37页:进程阻塞过程

进程阻塞过程

  • 进程通过调用阻塞原语block把自己阻塞:1.该进程还处于执行状态,应先立即停止执行,2.把进程控制块中的现行状态由“执行”改为阻塞,并将PCB插入阻塞队列
  • 应将本进程插入到具有相同事件的阻塞(等待)队列。3.重新调度,并进行切换
  • 保留被阻塞进程的处理机状态(在PCB中)
  • 再按新进程的PCB中的处理机状态设置CPU的环境

第38页:进程唤醒过程

进程唤醒过程:有关进程调用唤醒原语wakeup( ),将等待该事件的进程唤醒:1.把被阻塞的进程从等待该事件的阻塞队列中移出2.将其PCB中的现行状态由阻塞改为就绪3.将该PCB插入到就绪队列中。

第39页:进程的唤醒

进程的唤醒

  • block原语和wakeup原语是一对作用刚好相反的原语
  • 如果在某进程中调用了阻塞原语,则必须在与之相合作的另一进程中或其他相关的进程中安排唤醒原语.进程A进程B等待事件1调用阻塞原语阻塞自己事件1发生调用唤醒原语唤醒被阻塞进程

第40页:2.2.4进程的挂起与激活

2.2.4进程的挂起与激活

  • 将指定进程或处于阻塞状态的进程挂起
  • 挂起原语的执行过程是:1.检查被挂起进程的状态
  • 若处于活动就绪状态,便将其改为静止就绪
  • 对于活动阻塞状态的进程,则将之改为静止阻塞。2.把该进程的PCB复制到某指定的内存区域。3.若被挂起的进程正在执行,则转向调度程序重新调度

第41页:进程的激活过程

进程的激活过程:系统将利用激活原语active( )将指定进程激活。1.将进程从外存调入内存2.检查该进程的现行状态,若是静止就绪,便将之改为活动就绪;若为静止阻塞便将之改为活动阻塞。3.假如采用的是抢占调度策略,则每当有新进程进入就绪队列时,应检查是否要进行重新调度,即由调度程序将被激活进程与当前进程进行优先级的比较,如果被激活进程的优先级更低,就不必重新调度;否则,立即剥夺当前进程的运行,把处理机分配给刚被激活的进程。

第42页:作业

作业:作业。

顶部目录