操作系统2016

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
运行时独占整个系统资源,资源的状态(除初始状态外) 只有本程序可以改变。
(3)可再现性:只要程序执行时的环境和初始条件相 同,当程序重复执行时,不论它的执行方式如何,是连 续执行或“走走停停”的执行,其结果都是相同的。
7
【例 2】用计算机计算 n 个表达式的值。
按照例 1 的思路,依旧使用I、C和 P代表计算过程中 的几个操作步骤,由于需要计算 n个表达式,所以也需要 若干组 I、C、P,每组操作相应标记为 Ii、Ci、Pi。
Pi→ Pj ,用集合表示为: →={ ( Pi,Pj ) | 仅当 Pi 完成,才能执行 Pj } 其中,Pi 是Pj 的直接前趋,而Pj 是Pi 的直接后继。
在前趋图中,把没有前趋的结点称为初始结点,把 没有后继的结点称为终止结点 。
3.1.1 程序的顺序执行及其特征
1. 程序的顺序执行
【例 1】用计算机计算一表达式的值。
在PCB中,主要包含如下的信息:
✓ 进程标识符
✓ 上下文数据
✓ 进程状态
✓ 内存指针
✓ 调度信息
✓I/O 状态信息
✓ 程序计数器
28
PCB 是进程实体的一部分,是OS 中最重要 的记录型数据结构。它记录了操作系统所需的、 用于描述进程的当前情况以及管理进程运行的全 部信息。
PCB是进程存在的唯一标志。进程被创建同 时就建立其 PCB;进程结束则 PCB 被回收,进 程随之消亡。
37
3.2.4 进程挂起和激活
1. 进程挂起 当系统中出现了引起挂起的事件,如内存资源不
足时,操作系统将利用挂起原语将处于阻塞状态 的进程挂起。 挂起原语(Suspend primitive)的具体步骤: (1)根据进程标示符,在PCB集合中找到需要挂 起的进程。 (2)检查挂起进程的状态。
38
3.1.3 进程的概念及其特征
程序和进程之间的区别与联系:
➢ 程序是完成特定任务的一组指令的集合,可以 永久保存,具有静态性;
➢ 进程有生命周期,是程序在某一数据结构上的 一次执行过程,是系统进行资源分配和调度的 基本单位,具有动态性;
➢ 一个进程可以包含多个程序,一个程序也可以 被多个进程执行。
I1
I2
I3
I4
I i+1、Ci、Pi-1 可并发执行
C1
C2
C3
C4
P1
P2
P3
P4
包含的前趋关系有: Ii→Ci ,Ci→Pi, Ii→Ii+1 ,Ci→Ci+1,Pi→Pi+1
3.1.2 程序的并发执行及其特征
具有以下四条语句的一个程序段:
S1: a:=x+2; S1
S2: b:=y+4;
S3
计算机操作系统
第三章 进程与线程
目录
3.1 进程概念 3.2 进程控制 3.3 线程 3.4 互斥和同步
2
3.1 进程概念 3.1.1 程序的顺序执行及其特征
1. 程序的顺序执行 通常可以把一个应用程序分成若干个程序
段,各程序段之间必须按照某种先后次序顺序 执行,仅当前一程序段(操作)执行完后,才 能执行后继程序段(操作)。
终止原语的具体步骤: (1)根据需要终止进程的进程标识符,从PCB集合中查找 对应进程,从中读出该进程的状态。 (2)若被终止进程正处在执行状态,则应立即终止该进程 的执行,并设置相应的调度信息,用于指示该进程被终止 后应重新进行调度。 (3)将被终止进程所拥有的所有资源归还给其父进程,或 者归还给系统。 (4)若被终止进程还拥有子孙进程,则将其所有子孙进程 一并终止。 (5)归还PCB所占据的空间。
(3)不可再现性:程序在并发执行时,由于失 去了封闭性,也将导致其失去执行的可再现性。
13
【例3】有程序A和B,它们共享一个变量 N。A每执行一次时, 都要做 N=N+1 操作;B每执行一次时,都要执行 Print(N) 操作, 然后再将 N 置成 “0” 。且 A 和 B 以不同的速度运行。
假设:在某时刻变量 N 的值为 n ,
阻塞原语(Block primitive)的具体步骤:
(1)正在执行的进程立即终止执行,把PCB中的进程状态由 执行改为阻塞,并将处理机状态写入PCB中。
(2)将PCB插入阻塞队列中,等到事件的发生或操作的完成。 (3)系统将处理机重新分派给另一就绪进程,按照新进程的
处理机状态更新处理机环境,就绪进程开始执行。 (4)当被阻塞进程等待的事件发生或者等待的操作完成时,
34
3.2.3 进程阻塞和唤醒
1. 进程阻塞
进程阻塞是指进程在执行过程中因等待某个事件 的发生或等待某个操作的完成而不得不让出处理 机,是进程主动、自愿的行为。
引起进程阻塞的主要事件有:
(1)请求系统服务 (2)启动某种操作 (3)新数据尚未到达 (4)无新工作可做
35
3.2.3 进程阻塞和唤醒
分派 进入
非运行
退出 运行
暂停
(a) 状态变迁图
20
3.1.4 进程状态
进入
队列
分派 处理器 退出
(b) 排队图
21
3.1.4 进程状态
2.五状态模型 包括就绪态(Ready)、运行态(Running)、阻塞态 (Blocked)、新建态(New)和终止态(Terminate) 进程状态描述: (1)新建态:刚刚创建的新进程,通常是指进程控制块 已经创建,但还没有加载到系统内存中的进程 (2)就绪态:进程等待系统为其分派处理器,而此时处 理器被其它进程占据,所以该状态进程不能执行但已经具 备了除处理器之外的进程执行所需要的所有条件。
语句的执行次序
N=N+1 在Print(N) 和 N=0 之前 N=N+1 在Print(N) 和 N=0 之间
执行中变量 N 的值
n+1 n+1 0 n n+1 0
N=N+1 在Print(N) 和 N=0 之后 n
01
3.1.3 进程的概念及其特征
已有的一些定义充分反映了进程的实质:
进程是程序的一次执行; 进程是可以和别的计算并发执行的计算; 进程是定义在一个数据结构上,并能够在其上
那么计算过程的前驱图可描述如下:
I1
C1
P1
I2
C2
P2
……… In
Fra Baidu bibliotek
Cn
Pn
3.1.2 程序的并发执行及其特征
1. 程序的并发执行
为了提高计算机的利用率、处理速度和 系统的吞吐量,并行处理技术和并发程序 设计技术在计算机中已经得到了广泛应用, 成为了现代操作系统的基本特征之一。
9
改进后的工作流程描述如图所示:
允许进入
允许进入
新建
挂起
事件发生
挂起就绪 挂起阻塞
激活 挂起 激活 挂起
事件发生
就绪 阻塞
分派
超时 事件等待
运行
释放
图3.6 引入挂起的进程状态转换模型
终止
27
3.1.5 进程控制块
进程控制块(Process control block, PCB)是操 作系统用来记录进程状态和相关信息,控制进 程运行的数据结构,是进程的唯一标识符。
一种可行的解决问题的办法是引入挂起的 概念。
25
挂起状态又称静止状态,而其余的非挂起 状态均称为活动状态。
进程处于未被挂起的就绪状态时,称活动就绪状 态;若将此时的进程挂起,则称静止就绪状态。
进程处于未被挂起的阻塞状态时,称活动阻塞状 态;若将此时的进程挂起,则称静止阻塞状态。
3.1.4 进程状态
3.1.2 程序的并发执行及其特征
2. 程序并发执行的特征
(1)间断(异步)性:程序在并发执行时, 由 于它们共享系统资源,以及为了完成同一任务而 相互合作,致使这些并发程序之间形成了相互制 约的关系。
(2)失去封闭性:程序在并发执行时,多程序 共享系统中的各种资源,因此系统资源的状态将 由多个程序来改变,致使程序失去了封闭性。
若分别用 I、C和P代表表达式输入、表达式计算和 结果输出的操作,则计算过程可用以下前趋图描述:
I
C
P
6
3.1.1 程序的顺序执行及其特征
2. 程序顺序执行的特征 (1)顺序性:处理机的操作严格按照程序所规定的顺
序执行,即每一操作必须在上一操作结束之后开始。 (2)封闭性:程序是在封闭的环境下执行的,即程序
3.2.4 进程挂起和激活
2. 进程激活 激活,对应于挂起,是让被挂起的进程重新活跃
起来,也就是把进程从外存调入到内存中。当系 统中出现了引起激活的事件时,操作系统会利用 激活原语将挂起进程激活。 激活原语(Active primitive)的具体步骤: (1)根据进程标示符,在PCB集合中找到需要激 活的进程。 (2)检查激活进程的状态。
22
3.1.4 进程状态
(3)运行态:进程已获得所需资源并占据处理 器,处理器正在执行该进程 (4)阻塞态:也称为等待态、挂起态或睡眠态, 进程在等待某个事情的发生而暂时不能运行,例 如等待某个I/O操作的完成 (5)终止态:进程或者因为执行结束或者因为 被撤销而从可执行进程组中退出
23
3.1.4 进程状态
进行操作的一个程序; 进程是程序在一个数据集合上运行的过程,它
是系统进行资源分配和调度的一个独立单位。
15
3.1.3 进程的概念及其特征
综上,将进程定义为: 进程是进程实体的运行过程,是系统进行
资源分配和调度的一个独立单位。
16
※ 进程的特征
(1)结构特征:进程实体=程序+数据+PCB (2)动态性,是最基本特性,表现在:进程是一次 实体的运行过程,拥有生命周期 (3)并发性,多个进程实体同存于内存,并在一段 时间内同时运行 (4)独立性,是获得资源和独立调度的基本单位 (5)异步性,进程按各自独立的、不可预知的速度 向前推进
3.2 进程控制
进程控制是进程管理中最基本的功能 在操作系统中,不同功能都是通过执行各种原
语(Primitive)操作实现 原语是由若干条指令构成、可完成特定功能的
程序段;它是不可分割的操作单元,在执行过 程中不会被中断!
30
3.2.1 进程创建
引起进程创建的事件: (1)批处理作业 (2)用户登录 (3)提供服务 (4)进程派生
允许进入
分派
释放
新建
就绪
运行
终止
超时
事件发生
事件等待 阻塞
图3.5 五状态模型(P40)
24
3.1.4 进程状态
对于内存中的多个进程,处理器依次选中 运行,当一个进程正在等待 I/O 事件发生时, 处理器转移到另一个进程。但是处理器的速度 比 I/O 要快很多,有可能内存中所有进程都在 等待 I/O 事件的完成,导致处理器处于空闲状 态。
18
3.1.4 进程状态
1. 两状态模型
包含运行态(Running)和非运行态(Not running)两 种进程状态
创建了一个新进程之后,它会以非运行态加入 到系统中,等待操作系统为其分派处理器
当前处于运行态的进程会不时地中断,由系统 中的分派器选择处于非运行状中的某一个进程 运行
19
3.1.4 进程状态
S4
S3: c:=a+b;
S2
S4: d:=c+b;
图 3.3 四条语句的前趋图
程序两两并发必须满足Bernstein条件(P37)
11
R(s1)∩W(s2)∪R(s2)∩W(s1)∪W(s1)∩W(s2)=∅
即:想要并发的S1和S2 ,其中某一个在“写”的 时候另一个就不允许“读”;并且两者也不允许 同时“写”。
则操作系统会通过唤醒原语将等待该事件的进程唤醒。
36
3.2.3 进程阻塞和唤醒
2. 进程唤醒 当被阻塞进程等待的事件发生(如等待的 I/O 操
作已完成、或等待的操作完成时),则操作系统 会通过唤醒原语将等待该事件的进程唤醒。 唤醒原语(Wakeup primitive)的具体步骤: (1)根据进程标识符从等待该事件的阻塞队列中 找到需要唤醒的进程PCB。 (2)将PCB中的进程状态阻塞改成就绪,并将该 进程插入到就绪队列中。
3
前趋图是一个有向无循环图,用于描述进程之间执 行的前后关系。
图中的每个结点用于描述一个程序段、一个进程或 是一条语句;结点间的有向边则用于表示两个结点之间 存在的前趋(偏序)关系“ ”。
若有两个结点Pi 和Pj,仅当Pi 操作完成后,才能执行 Pj 结点的操作,称: Pi 和Pj 之间存在前趋关系,表示为:
32
3.2.2 进程终止
引起进程终止的事件:
(1) 正常完成 (8) I/O错误
(2) 运行超时 (9) 无效指令
(3) 等待超时 (10)特权指令
(4) 内存不足
(11)操作员或操作系统干涉
(5) 越界错误 (12)父进程请求
(6) 保护错误 (13)父进程终止
(7) 算术错误
33
3.2.2 进程终止
31
3.2.1 进程创建
创建一个新进程的具体步骤: (1)系统为新建进程申请一个空白的进程控制 块,获得一个唯一的进程标识符。 (2)系统为新建进程分配运行所需的资源,包 括:内存、处理器时间、I/O设备等。 (3)进程控制块(PCB)初始化。 (4)设置链接,如果就绪队列允许新进程插入, 则将新进程插入就绪队列。
相关文档
最新文档