《进程控制块PCB》PPT课件.ppt

上传人:小飞机 文档编号:5611267 上传时间:2023-08-02 格式:PPT 页数:26 大小:245KB
返回 下载 相关 举报
《进程控制块PCB》PPT课件.ppt_第1页
第1页 / 共26页
《进程控制块PCB》PPT课件.ppt_第2页
第2页 / 共26页
《进程控制块PCB》PPT课件.ppt_第3页
第3页 / 共26页
《进程控制块PCB》PPT课件.ppt_第4页
第4页 / 共26页
《进程控制块PCB》PPT课件.ppt_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《《进程控制块PCB》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《进程控制块PCB》PPT课件.ppt(26页珍藏版)》请在三一办公上搜索。

1、3.3.1进程控制块PCB,进程的静态描述:由三部分组成 PCB、有关程序段和该程序段对其进行操作的数据结构集。各部分的作用:1 进程控制块:用于描述进程情况及控制进程运行所需的全部信息。2 程序段:是进程中能被进程调度程序在CPU上执行的程序代码段。3 数据段:一个进程的数据段,可以是进程对应的程序加工处理的原始数据,也可以是程序执行后产生的中间或最终数据。,3.3.2进程控制块中的信息,进程控制块中主要包括四个方面用于描述和控制进程运行的信息。1.进程标识符信息 进程标识符用于唯一的标识一个进程。一个进程通常有以下两种标识符。外部标识符。由创建者提供,通常是由字母、数字组成,往往是用户(进

2、程)访问该进程使用。外部标识符便于记忆,如:计算进程、打印进程、发送进程、接收进程等。内部标识符:为了方便系统使用而设置的。在所有的OS中,都为每一个进程赋予一个唯一的整数,作为内部标识符。它通常就是一个进程的符号,为了描述进程的家族关系,还应该设置父进程标识符以及子进程标识符。还可以设置用户标识符,来指示该进程由哪个用户拥有。,2、处理机状态信息 处理机状态信息主要是由处理机各种寄存器中的内容所组成。通用寄存器。又称为用户可视寄存器,可被用户程 序访问,用于暂存信息。指令寄存器。存放要访问的下一条指令的地址。程序状态字PSW。其中含有状态信息。(条件码、执行方式、中断屏蔽标志等)用户栈指针。

3、每个用户进程有一个或若干个与之相 关的系统栈,用于存放过程和系统调 用参数及调用地址。栈指针指向该栈 的栈顶。,3.进程调度信息 在PCB中还存放了一些与进程调度和进程对换有关的信息。(1)进程状态。指明进程当前的状态,作为进程调度和对换时的依据。(2)进程优先级。用于描述进程使用处理机的优先级别的一个整数,优先级高的进程优先获得处理机。(3)进程调度所需要的其他信息。(进程已等待CPU的时间总和、进程已执行的时间总和)(4)事件。这是进程由执行状态转变为阻塞状态所等待发生的事件。(阻塞原因),3.2.3 PCB的组织方式,常用的组织方式有两种:链接方式、索引方式。1、链接方式:具有相同状态的

4、PCB,用其中的链接字,链接成一个队列。这样就可以形成就绪队列、若干个阻塞队列和空白队列等。对其中的就绪队列常按照进程优先权的大小排列,把优先权告的进程的PCB排在队列前面。,1、索引方式:系统根据所有进程的状态,建立几张索引表。例如:就绪索引表、阻塞索引表的国内。并把各索引表在内存的首地址记录在内存中的一些专用单元中。每个索引表的表目中,记录具有相同状态的某个PCB在PCB表中的地址。,3.3.4进程上下文,进程上下文:是进程执行活动全过程的静态描述。包括计算机系统中与执行该进程有关的各种寄存器的值、程序段在经过编译之后形成的机器指令代码集、数据集及各种堆栈值和PCB结构。可按一定的执行层次

5、组合,如用户级上下文、系统级上下文等。,335进程空间,任何一个进程,都有自己的地址空间,把该空间称为进程空间或虚空间。进程空间的大小只与处理机的位数有关。程序的执行都在进程空间内进行。用户程序、进程的各种控制表格都按一定的结构排列在进程空间里。在Unix和Linux系统中,进程空间还被划分为用户空间和系统空间两大部分 在进程空间被划分为两大部分后,用户程序在用户空间内执行,操作系统内核程序在进程的系统空间内执行。了防止用户程序访问系统空间,造成访问出错,计算机系统还通过程序状态寄存器设置不同的执行模式,用户模式和系统模式来进行保护,即用户态和系统态。,3.4 进程控制,为了防止操作系统及关键

6、数据受到破坏,通常将处理机的状态分为系统态和用户态。OS内核通常是运行在系统态的,进程控制是由OS内核实现的。3.4.1操作系统内核OS内核:通常将一些与硬件紧密相关的模块(中断处理程序),各种常用设备的驱动程序,以及运行频率较高的模块(时钟管理、进程调度)都安排在紧靠硬件的软件层次中,使它们常驻内存,以便提高OS的运行效率,并对它们加以特殊的保护。我们把这一部分称为OS内核。,3.4.2 OS内核的功能一 支撑功能:中断处理、时钟管理、原语操作1.中断处理:中断处理是内核最基本的功能。操作系统的重要活动最终都将依赖于中断(系统调用、键盘命令的输入、进程调度)。通常内核只对中断进行“有限的处理

7、”然后便转交给有关进程继续处理。2.时钟管理:OS中的许多活动都需要时钟管理,例如:在时间片轮转调度中,每当时间片用完时,由时钟管理产生一个中断信号,促使调度程序重新调度。3.原语操作:原语:系统状态下执行的某些具有特定功能的程序段称为原语。机器指令级的 执行其间不允许中断 功能级的 作为原语的程序段不允许并发执行(原语也是由若干条指令构成的,用于完成一定功能的过程)原子操作:一个操作中的动作要么全做,要么全不做。,二 资源管理功能1 进程管理:进程管理的全部或大部分功能都放在内核中。主要因为这些模块的运行频率较高。2 存储器管理:存储器管理软件的运行频率也较高,通常也将它放在内核中。(内存分

8、配与回收模块、内存保护与对换功能的模块)3 设备管理:各类驱动程序,缓冲管理等也都是存放在内存中的。在操作系统中,通常把进程控制用程序段做成原语。用于进程控制的原语有:创建原语、撤销原语、阻塞原语、唤醒原语等。3.4.3进程的创建一 进程图 进程图是用来描述进程家族关系的有向树。,子进程可以继承父进程的所有资源,当子进程被撤消时,应将从父进程那里获得的资源归还给父进程。撤消父进程时也必须同时撤消其所有的子进程。,二 引起创建进程的事件1 用户登录:在分时系统中,用户在终端键入登录命令后,若 是合法用户,系统建立一个进程,并插入就绪队列。2 作业调度:批处理系统中,作业调度程序调度到某个作业以

9、后,就把这个作业装入内存,并分配必要的资源,创建进程,插入就绪队列。3 提供服务:运行中的用户向系统提出请求后,系统专门建立一 个进程为用户服务。(打印请求)由操作系统核心(系统程序模块)创建4 应用请求:应用进程的需要,由它自己创建一个新进程,使新 进程以并发运行方式完成特定任务。(输入数据并 将处理结果输出到表格上)由父进程创建,三 进程的创建过程(creat)1 申请空白的PCB 为新进程分配唯一的数字标识符,并从PCB集合中索取一个空白的PCB2 为新建立的进程分配资源 为新进程的程序和数据,以及用户栈分配必要的内存空间。3 初始化程序控制块 初始化标识符信息。将系统中分配的标识符、父

10、进程标识符填入新PCB中。初始化处理机状态信息。是程序计数器指向程序的入口地址,栈指针指向栈顶。初始化处理机控制信息。将进程的状态设置为就绪状态或静止就绪状态。4 将新进程插入就绪队列,入口,查PCB链表,有空PCB?,PCB(I)入进程家族或进程链,PCB(I)入就绪队列,将有关参数填入PCB(I)相应项,取空表PCB(I),返回,创建失败,无,创建原语流程图,有,3.4.4 进程的终止(撤销进程)一 引起进程终止的事件1 正常结束:计算机系统中,都有一个表示进程已经运行完成的指示。(批处理,Holt。分时系统中,Logs Off)2 异常结束 越界错误、保护错、特权指令错、非法指令错、运行

11、超时、等待超时 算术运算错、I/O故障3 外界干预 操作员或操作系统干预 父进程请求 父进程终止,二 进程终止过程1 根据被终止进程的标识符,从PCB集合中检索出该进程的PCB,从中读出该进程的状态2 若被终止进程处于执行态,应立即终止该进程的执行,并设置调度标志为真(用于指示该进程被终止时应重新调度),然后再选择一个进程,分配处理机给它。3 如果该进程还有子孙进程,还应将它的所有子孙进程进行终止,以防它们称为不可控的。4 将该进程所拥有的全部资源,或者归还给它的父进程,或者归还给系统。5 将被终止进程(PCB)从所在队列(链表)中移出,等待其它程序来搜索信息。,入口,返回,查进程链表或进程家

12、族,有此PCB吗?,该PCB有子进程吗?,释放该进程所占有的资源,释放该PCB结构本身,出错处理,有,无,有,3.4.5 进程的阻塞与唤醒一、引起进程阻塞和唤醒的事件1 请求系统服务 正在执行的程序请求操作系统服务,但是由于某种原因操作系统没有立即满足该进程的要求,该进程只能转变为阻塞状态来等待。2 启动某操作 当进程启动某种操作后,如果该进程必须在该操作完成之后才能继续执行,所有必须先使进程阻塞。3 新数据尚未到达4 无新工作可做 系统往往设置一些具有某特定功能的系统进程,每当这种进程完成任务以后便把自己阻塞起来等待新任务的到来。(发送进程),二 进程阻塞过程 当有阻塞事件发生时,进程便调用

13、阻塞原语block把自己阻塞。进入block后,应先立即停止执行,把进程控制块中的执行状态改为阻塞状态,并把它插入阻塞队列。三 进程唤醒过程 当阻塞进程所期待的事件出现时。则调用唤醒原语wakeup(),将等待事件的进程唤醒。唤醒原语执行的过程是:首先把被阻塞进程从等待该事件的阻塞队列中移出,将其PCB中的阻塞状态改为就绪状态,然后把该进程插入到就绪队列中。Block 和wakeup是一对作用刚好相反的原语。,入口,入口,保存当前进程的CPU现场,从等待队列中摘下被唤醒进程,置该进程的状态,被阻塞进程入等待队列,转进程调度,将被唤醒进程置为就绪状态,将被唤醒进程送入就绪队列,转进程调度返回,阻

14、塞原语,唤醒原语,3.4.6 进程的挂起和激活 当出现了引起进程挂起的事件时,用户请求将自己挂起,或者父进程请求挂起自己的子进程,应该利用挂起原语suspend()挂起原语的执行过程:检查被挂起进程的状态;如果处于活动就绪状态,就将它改为静止就绪;如果处于活动阻塞,则改为静止阻塞。进程的激活过程当发生激活事件后,系统利用激活原语Active()将指定进程激活。激活原语先将进程从外存调入内存,然后检查进程的状态。静止就绪 活动就绪 静止阻塞 活动阻塞,1.为使进程由活动就绪转变为静止就绪,应利用_原语;为使进程由执行状态变为阻塞状态,应利用_原语;为使进程由静止就绪变为活动就绪,应利用_原语;从阻塞状态变为就绪状态应利用_原语。,-:A.create B.suspend C.active D.block E.wakeup,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号