计算机操作系统课件(第四版)第二章

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PI一个进程PJ可以向P其K 父进程申PL请撤消自P己M ;也可PN以因 父进程的被撤销而被同时撤消。
3、进程阻塞(Block())
引起阻塞的事件
请求系统服务、启动某种操作、数据尚未到 达、无新工作可做
进程阻塞的过程
发现上述事件,调用阻塞原语把自己阻塞 停止进程的执行,修改PCB中的状态信息,
进程的特征
动态性:“它由创建而产生,由调度而执行,由撤销而 消亡”。进程具有动态的地址空间(数量和内容),地 址空间上包括: 代码(指令执行和CPU状态的改变) 数据(变量的生成和赋值) 系统控制信息(进程控制块PCB的生成和删除) 独立性:进程是一个能独立运行、独立分配资源和独立 调度的基本单位。各进程的地址空间相互独立。 并发性:引入进程的目的正是为了使其程序能和其他进 程的程序并发执行; 异步性: 进程按各自独立的、不可预知的速度向前推进 结构性:进程由程序段、数据段及PCB三部分组成,在 Linux中称为“进程映像”
互斥现象
火车到站的调度 火车1 火车2 火车3 …
站台轨道
例1:两个同学做抢椅子的游戏。
同学甲
…… if 有空椅子 then 坐下 ……
同学乙
…… if 有空椅子 then 搬走 ……
例2:民航售票系统
进程控制信息: 程序和数据的地址 同步和通信机制 资源清单 链接指针
4、进程控制块的组织方式
PCB数目
一个系统中的PCB数目可为数十个、数百个甚至数千个
线性方式
把所有的PCB都组织在一张线性表中,将表的首地址放 在内存的专用区中。
链接方式
把具有同一状态的PCB,用其链接字链接成一个队列 就绪队列、若干个阻塞队列、空队列
引消起创建进程程+序的事PA件
PCB6 08 PCB7
用户登录PB 、数作据业调度、提供PC服务PPCCBB、89 应9102 用请求
进程创建的过程 空PCB队列指针
PCB10 PCB11
P申D 请空白PPECB、为新进PF程分P配G 资PCB源12P、H25 初始化
PCB、插入就绪进程队列
PCB13 6
进司程机同:步P:1 合作完成同一个售任票务员的:多P个2 进程,
在w执h行ile速(t度ru或e)某些时序点上w必hi须le (相tr互ue协) 调的合
作关{ 启系动。车辆;
{ 关门;
进程正互常斥运:行一;个进程正在访问售临票界;资源,另一
个要访到问站该停资车源;的进程必须等待开。门;
并发} 执行可产生与时间有关}的错误
进程实体及所用 资源列表 进程1
进程n
2.2.4、进程管理中的数据结构
2、PCB(Process Control Block)
PCB中记录了操作系统所需的、用于描述进程的 当前情况以及控制进程运行的全部信息。
OS是根据PCB来对并发执行的进程进行控制和管 理的。是进程存在的唯一标志。
PCB可被操作系统中的多个模块读或修改,如被 调度程序、资源分配程序、中断处理程序以及监 督和分析程序读或修改。
观察下图,初始结点是哪个?终止结点是哪个? 有哪些前驱关系?
P2 P1
P3 P4
P5
P6
P8
P9
P7
思考:下图是否为前趋图? S1 S2 S3
3、程序的并发执行
输入程序 I1 I2 I3 I4
计算程序
C1 C2 C3 C4
打印程序
P1 P2 P3 P4
对于下述四条语句的程序段:
S1:a:=x+2; S2:b:=y+4; S3:c:=a+b; S4:d:=c+b;
2.2 进程的描述
进程的定义和特征 进程的基本状态和转换 挂起操作和状态转换 进程管理中的数据结构
2.2.1、进程的定义和特征
进程的定义 进程的特征
进程的定义
进程: 进程是进程实体的运行过程,是系统进行资
源分配和调度的一个独立单位。 进程实体=程序段+相关的数据段+PCB
Linux 进
系统 数据
终止
就绪
执行
事件发生
进程调度
阻塞
等待某事件
进程基本状态转换图
创建状态 为新进程创建PCB,填写信息, 该进程转入就绪状态并插入就绪队列中。 引入创建状态可保证进程的调度在创建工作完
成后,确保对PCB操作的完整性。 终止状态 等待OS进行善后处理 将PCB清零,将PCB空间返还系统。 终止态的进程不能再执行,但需等待其它进程
进程同步的主要任务是使并发执行的诸进程之 间有效地共享资源和相互合作,从而使程序的 执行具有可再现性。
基本概念 硬件同步机制 信号量机制 信号量的应用
进程同步举例2:.4.1 基本概念
两例种1:形接式力的赛制约关系
例 直2:接司相机互-制售约票:员源于进程间的合作
间接相互制约:源于进程对资源的共享
进程是并发程序的一次执行过程。是系统进 行资源分配和调度的独立单位。
进程是可以和别的计算并发执行的计算。
进程与程序的区别
进程是动态的,程序是静态的:程序是有序代码的 集合;进程是程序的执行。 进程是暂时的,程序的永久的:进程是一个状态变 化的过程,程序可长久保存。 进程与程序的组成不同:进程的组成包括程序、数 据和进程控制块(即进程状态信息)。 进程与程序的对应关系:通过多次执行,一个程序 可对应多个进程;通过调用关系,一个进程可包括 多个程序。
PCB1 4 PCB2 3 PCB3 0 PCB4 8 PCB5 PCB6 7 PCB7 9 PCB8 0 PCB9 11 ……
PCB链接队列示意图
执行指针 就绪队列指针 阻塞队列指针
按索引方式组织PCB
PCB1 PCB2 PCB3 PCB4 PCB5 PCB6 PCB7 PCB8 PCB9 ……
程序2
语句1 语句2 语句3 语句4 语句5
(2)特征 ①顺序性
②封闭性
③可再现性
2、前趋图与前趋关系
前趋图(Precedence Graph)
一个有向无循环图 描述程序或程序段之间执行 ∈,也可以写成: PiPj 则称:Pi是Pj的直接前趋, Pj是Pi的直接后继 初始结点:没有前趋 终止结点:没有后继
程 段,
组 成
PCB
程序段 数据段
Linux的进程实体组成
Linux进程是由三部分组成:正文段、用户数据段 和系统数据段。 (1) 正文段(text)——程序段 正文段是只能读不能修改的指令代码,它允许系统 中多个进程共享这一代码段。
(2) 用户数据段(user segment)——数据段 用户数据段是进程执行时直接操作的所有数据(包 括全部变量在内),这些信息是可以被修改的。
(3) 系统数据段(system segment)——PCB 系统数据段存放着进程的控制信息,即进程控制块 (PCB),它存放了程序的运行环境。
进程的结构图示:
进程控制块 动态特征的集中反映
描述要完成的功能 操作对象及工作区
进程的其他定义:
进程是一个具有一定独立功能的程序在一个 数据集合上的一次动态执行过程。
PI
PJ
PK
PL
P…M…
PN
2、进程撤消(Terminat())
引起进程终止(Termination)的事件
正常结束:执行到最后P的A 结束指令、中断 异常结束:出现错误或因故障而被迫终止 外界干扰:PB进程应外界的请求而P终C 止运行
进程撤消的过程
检PD索进程状态P、E 结束并置调P度F 标志PG、撤销P其H 所有的 子进程、归还资源、移出队列
S1
S3
S4
S2
并发执行时的特征
间断性——“停停走走” 失去封闭性——原因:多个程序共享资源 不可再现性
例如:有两个循环程序A和B,共享一个变量n。程序
A和B以不同的速度运行。可能出现的情况如下:
程序A
程序B
{
{
n=n+1;
print(n);
}
n=0;
}
1、A快B慢,得到的n值为: n+1,n+1,0 2、B快A慢,得到的n值为:n,0,1 3、n:=n+1在print(n)和n:=0之间,如图,得到的n值为 n,n+1,0
• 具有较低特权的执行状态,仅能执行规定的指 令访问制定的寄存器和存储区。应用程序一般运 行在用户态。
1、进程创建(Creat())
进程之间的关系:就绪队列指针
PCB1 5
父、子进程与祖先进程:PCB中PPCCBB标23 识
HD继承归还资R源AM、“父”创建“子PPCCBB”45 1、3 父撤子
完成对它的信息提取后,OS再将它删除。
进程的挂起状态(静止状态)
内存 活动
外存 静止
引入 父进程考查和修改、协调子进程间的活动 操作系统协调资源使用或进行记账 终端用户的请求,希望自己的程序暂时静止下来
负荷调节的需要,如实时紧急任务,由系统把一 些不重要的进程挂起
进程的挂起状态
活动 就绪
PCB经常被系统访问,故应常驻内存。
Linux的PCB结构
3、PCB中的信息
进程标识符:唯一的标识一个进程
内部标识(OS) 外部标识(由创建者提供,由字母数字组成)
处理机状态:由CPU的各种寄存器中的内容组成。 通用R 指令计数器PC 程序状态字PSW 用户栈指针
进程调度信息: 进程状态 进程优先级 其它信息 等待事件(阻塞原因)
第三节 进程的控制
系统内核 进程创建 进程撤消 进程阻塞 进程唤醒 进程挂起与激活
2.3.1 操作系统内核
进程管理中最基本功能是进程控制。进程控制的 作用:创建新进程,终止已完成进程,并负责进 程的状态转换。进程控制是由OS内核中的原语实 现的。 OS内核:把一些与硬件紧密相关的模块(如中断)、 各种常用设备的驱动程序、运行频率较高的模块 (时钟管理、进程调度等)以及为许多模块公用 的一些基本操作,安排在靠近硬件的软件层次中, 以提高OS的运行效率。OS内核是常驻内存的程序 和数据。
第二章 进程管理
2.1前驱图和程序执行 2.2进程的描述 2.3进程控制 2.4进程同步 2.5经典进程同步问题 2.6进程通信 2.7线程的基本概念
2.1前驱图和程序执行
程序的顺序执行 前趋图与前趋关系 程序的并发执行
1、程序顺序执行的特征
(1)程序的顺序执行
I1 C1 P1
程序1
I2 C2 P2
调度
释放
I/O请求
激活 挂起
执行
活动 阻塞
激活 挂起
挂起 就绪
挂起
释放 唤醒
挂起 阻塞
2.2.4、进程管理中的数据结构
1、操作系统中用于管理控制的数据结构
资源信息表、进程信息表:数据结构表征其实体。 包含了资源或进程的标识、描述、状态等信息及
一批指针。
内存表
设备表
文件表
进程表1 ... 进程表n
原语: 是由若干条指令组成的,用于完成一定功能的
一个过程。具有不可分割性。 具有原子性。即:原语的执行必须是连续的,
在执行的过程中不允许被中断。
处理机的执行状态具有两种状态:
核心态(系统态、管态):OS的管理程序执行时处 理机所处状态。
具有较高的特权,能执行一切指令,访问所有 寄存器和存储区。OS运行在系统态。 • 用户态(目态):用户程序执行时处理机所处状 态。
并将其插入相应的阻塞队列 转调度程序进行重新调度
4、进程唤醒(Wakeup())
引起唤醒的事件
与引起阻塞的事件相对应
进程唤醒的过程
阻塞进程所期待的事件出现,有关的进程调用唤醒 原语,将等待该事件的进程唤醒
将PCB从阻塞队列中移出,修改PCB中的状态信息, 再将其插入到就绪进程队列中
阻塞与唤醒要匹配使用,以免造成“永久阻塞”
2.2.2 进程的基本状态及转换
1、进程的三种基本状态
就绪状态(Ready) 得到了除CPU以外的所有必要资源 执行状态(Running) 已获得处理机,程序正在被执行 阻塞状态(Blocked) 因等待某事件发生而暂时无法继续执行,从
而放弃处理机,使程序执行处于暂停状态
中断
创建 接纳
完成
5、进程挂起与激活 (Suspend()、Active())
进程挂起 检查被挂进程的状态,改为相应的挂起状态。
把进程的PCB复制到指定的区域。最后,转 向调度程序重新调度。 进程激活 先将进程从外存调入内存。检查该进程的现 行状态,改为相应的活动状态。根据优先级 确定是否需要重新调度。
第四节 进程同步
索引方式
系统根据所有进程的状态建立相应的索引表 就绪索引表、阻塞索引表等,索引表在内存的首地址记
录在内存的一些专用单元中。
PCB1 PCB2 PCB3 PCB4 PCB5 PCB6 PCB7 PCB8 PCB9 …… PCBn
PCB线性表示示意图
执行指针 就绪队列指针 阻塞队列指针 空闲队列指针
相关文档
最新文档