第二章 进程管理 2.4-2.7

合集下载

第2章 进程管理汇总

第2章 进程管理汇总
2、封闭性 是指程序好象在一个封闭环境中执行,即程序在运 行期间,独占全部系统资源,资源状态(除初始资源外)的改 变完全由本程序来决定,程序一旦开始执行,其执行结果不受 外界因素的影响。
3、可再现性 是指当该程序重复执行时,只要其执行环境和初始 条件相同,不论是从头到尾连续执行,还是“走走停停”执行, 必将获得相同的结果。这给程序的调试带来了很大的方便。
2.1 进程的概念
2.1.1 进程的引入 1、程序的顺序执行及其特性
作业l Il
Cl
Pl





行 顺
作业i Ii
Ci
Pi





作业n In
Cn
Pn
图 3.1 程序的顺序执行
程序的顺序执行具有如下特点:
1、顺序性 指的是程序必须严格按其规定的顺序执行,即在前 一个程序没有结束以前绝不允许执行下一个程序,在前一个操 作结束之前绝不允许执行下一个操作。
3.2 进程的表示和调度状态
3.2.1 进程的表示
1. 进程的组成 程序描述进程所要完成的功能。
程序是进程执行时不可修改的部分。
P CB 程序 数据
P CB
数据集合包括程序在执行时所需要的数据和工作
区。这部分只程能序为一个进程所专共有,享是进程的可
修改部分。
程序 段
程序和数据集合是进程存在的物质基础。
void programB(void) {
while(TRUE) {
… print(N); N=0;

} }
程序A中的N=N+1的操作和程序B的 print (N) 、N=0操作可能出现以下三种执 行序列:

第2章 进程管理课件

第2章  进程管理课件
八、UNIX系统的进程映像
用户态运行:执行用户态程序(在CPU上) 核心态运行:在CPU上执行操作系统程序
2、进程状态
在内存就绪:具备运行条件,只等取得CPU 在外存就绪:就绪进程被对换到外存上
在内存睡眠:在内存中等待某一事件发生 在外存睡眠:睡眠进程被对换到外存上 在内存暂停:因调用stop程序而进入跟踪暂停状态,等 待其父进程发送命令 在外存暂停:处于跟踪暂停状态的进程被对换到外存上 创建态:新进程被创建,但尚未完毕的中间状态 终止态:进程终止自己
第2章
2.3
进程管理
进程间的相互作用和通信
一、进程间的联系 3、临界资源与临界区
(4)系统对同类临界区的调度原则:
1 2 3
有若干进程要求进入临界区,一次仅允许一个进程进入。 任何时候,处于临界区的进程不可多于一个。 进入临界区的进程要在有限时间内退出, 使其它进程能及时进入。
第2章
2.3
二、锁操作法
三、信号量与P、V操作
4、举例说明利用P、V操作互斥同步问题
例2.1 生产者与消费者的问题
消费者进程
生产者进程
L1:P(empty);
P(mutex); 将产品送往缓冲池
L2:P(mutex);
P(full); 从缓冲池取出产品
V(mutex);
V(full); goto L1;
V(mutex);
三、信号量与P、V操作
4、举例说明利用P、V操作互斥同步问题
例2.1 生产者与消费者的问题
问题是这样叙述的:有若干生产者进程P1、P2、……Pn和若 干消费者进程C1、C2、…Cm;它们通过一个有界缓冲池(即由 K个缓冲区组成)联系起来,如下图所示:
有界缓冲池 生产者

chp2 进程管理

chp2 进程管理

进程控制块包含的消息
进程控制块PCB中包含的消息有:
进程标识信息:用于标识一个进程,通常分为外部标识符和内部标识符。外部 标识符是由用户使用的,一般由字母、数字组成。内部标识符则是为了方便系统 使用而设置的。 说明信息:说明信息是有关进程状态等一些与进程调度有关的信息。例如进程 优先级,进程调度所需的其它信息等。 处理机状态信息:处理机状态信息主要是由处理机的各种寄存器中的内容组成 的。例如通用寄存器、程序计数器等。处理机在运行时,许多信息都存放在寄存 器中,当处理机被中断时,信息保存在PCB中,以便当该进程重新执行时,能从 断点处继续执行。 进程控制信息:进程控制信息包括:程序和数据的地址信息,进程间通信所需 要的数据结构信息,进程所需资源及已经分配到该进程的资源清单等方面的信息。
进程控制块的组织方式
进程控制块提供了系统控制和管理进程所需要的信息,是 系统为描述进程而设计的一种数据结构。在一个系统中通常 具有多个进程控制块,操作系统在内存中开辟了一个PCB表 区,每个进程控制块是一片连续的存储单元。常用的进程控 制块组织方式有链接方式和索引方式。
链接方式
按链接方式组织PCB表时,系统把具有相同状态的PCB,用其中的链接指针 链接成队列。从而可以形成就绪队列、阻塞队列和空闲队列等。对其中的就绪队 列通常按照进程优先权的大小排列,把优先权高的进程的PCB排在队列前面。对 于阻塞进程队列,则可以根据不同的阻塞原因形成不同的阻塞队列。
进程的状态(续)
运行状态→就绪状态:由于外界原因使运行状态的进程让出处理机,例 如分配给进程的CPU时间片用完,或有更高优先级的进程来抢占处理机等 情况发生时,运行状态的进程就转化为就绪状态。 阻塞状态→就绪状态 :阻塞状态的进程,如果等待的条件均已满足, 只要分配到处理机后就能运行,进程则从阻塞状态进入就绪状态。 运行状态→终止状态:当一个运行的进程正常结束或者出现其他原因被 迫终止时,就进入终止状态。

二章节进程管理

二章节进程管理

第二章 进 程 管 理
第一章 操作系统引论
1.1 操作系统的目标和作用 1.2 操作系统的发展过程 1.3 操作系统的基本特性 1.4 操作系统的主要功能 1.5 操作系统的结构设计
第二章 进 程 管 理
第一章 习题课
一、单选题
(1)当CPU执行操作系统代码时,称处理机处于( C )。
A.执行态 B.目态 (2)在下列性质中,( D
第二章 进 程 管 理
中断响应过程
(1)中断装置(硬件)发现中断源;置当前PSW的中断码;交换 PSW;保存“当前PSW”到约定的单元成为“旧PSW”,“新 PSW”成为“当前PSW”。 (2)中断处理程序 ①保护被中断进程的现场,通用寄存器、控制寄存器内容以 及“旧PSW”保存到PCB中; ②根据“旧PSW”分析中断原因; ③对不同性质的中断事件,转交给不同的例行程序处理。
第二章 进 程 管 理
中断类型
1. 强迫中断 (1)硬件故障中断 (2)程序中断 (3)外部中断 (4)输入输出中断
2. 自愿中断 (5)访管中断
第二章 进 程 管 理
管目态
特权指令:有少数指令是为编制系统管理程序专门设置的。如 果用户误用这些特权指令,称为非法指令,将引发故障中断。 目态:程序执行时不可使用特权指令,I/O指令、时钟设置等。 管态:程序执行时可以使用特权指令。 目态:用户态,执行用户程序。 管态:系统态,执行系统管理程序,又称核心态。
程) 2. “旧PSW”. 保护起来的被中断进程的PSW 3. “新PSW”. 中断处理程序的PSW(其中指令地址即入口地址)
第二章 进 程 管 理
中断响应
通常在处理机执行完一条指令后,硬件的中断装置立即 检查有无中断事件发生。若有中断事件发生,则暂停现行进 程的运行,而让操作系统中的相应的中断处理程序占用处理 机,这一过程称为“中断响应”。

操作系统__第二章_进程管理_习题答案

操作系统__第二章_进程管理_习题答案

操作系统__第二章_进程管理_习题答案第二章进程管理2. 试画出下面4条语句的前趋图:S1S1: a:=x+y;S4S3S2: b:=z+1;S2S3: c:=a-b; S4: w:=c+1; 3. 为什么程序并发执行会产生间断性特征?程序在并发执行时,由于它们共享系统资源,以及为完成同一项任务而相互合作,致使在这些并发执行的进程之间,形成了相互制约的关系,从而也就使得进程在执行期间出现间断性。

4. 程序并发执行时为什么会失去封闭性和可再现性?因为程序并发执行时,是多个程序共享系统中的各种资源,因而这些资源的状态是由多个程序来改变,致使程序的运行失去了封闭性。

而程序一旦失去了封闭性也会导致其再失去可再现性。

5. 在操作系统中为什么要引入进程概念?它会产生什么样的影响?为了使程序在多道程序环境下能并发执行,并能对并发执行的程序加以控制和描述,从而在操作系统中引入了进程概念。

影响: 使程序的并发执行得以实行。

6. 试从动态性,并发性和独立性上比较进程和程序?a. 动态性是进程最基本的特性,可表现为由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤销而消亡,因而进程由一定的生命期;而程序只是一组有序指令的集合,是静态实体。

b. 并发性是进程的重要特征,同时也是OS的重要特征。

引入进程的目的正是为了使其程序能和其它建立了进程的程序并发执行,而程序本身是不能并发执行的。

c. 独立性是指进程实体是一个能独立运行的基本单位,同时也是系统中独立获得资源和独立调度的基本单位。

而对于未建立任何进程的程序,都不能作为一个独立的单位来运行。

7. 试说明PCB的作用?为什么说PCB是进程存在的唯一标志?a. PCB是进程实体的一部分,是操作系统中最重要的记录型数据结构。

PCB中记录了操作系统所需的用于描述进程情况及控制进程运行所需的全部信息。

因而它的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能和其它进程并发执行的进程。

操作系统2 进程管理

操作系统2 进程管理

进程的挂起状态(从内存交换到外存) 进程的激活状态(从外存交换到内存)
新建
内存活动
空间
运行
时间 片到
调度
终止
等待事件 发生如 等待I/O
完成
接纳 就绪 事件发生 等待
如I/O完成
接纳
挂起
激活(内存有空间)挂起
激活(内存有空间)
外存 就绪
事件发生 如I/O完成
外存 等待
外存活动 空间
具有挂起状态的进程状态转换图
进程控制块的组织:
2.2.3 进程的阻塞与唤醒
1. 引起进程阻塞和唤醒的事件
1) 请求系统服务 2) 启动某种操作 3) 4)
2. 进程阻塞过程
进程调用阻塞原语block(), 把自己阻塞。它是进程自身的 一种主动行为。
然后,PCB中的状态由“执行”改为阻塞,并将PCB插 入阻塞队列。
最后,转调度程序将处理机分配给另一就绪进程,并进 行切换.
2)把该进程的PCB复制到某指定的内存区域。 3)若被挂起的进程正在执行,则转向调度程序重新调度。
2. 进程的激活过程
系统用原语active( )将指定进程激活。
执行过程是:
1)先将进程从外存调入内存,静止就绪改为活动就绪; 静止阻塞改为活动阻塞。
2)假如采用的是抢占调度策略,则每当有新进程进入 就绪队列时,应检查是否要进行重新调度,即由调度程 序将被激活进程与当前进程进行优先级的比较,如果被 激活进程的优先级更低,就不必重新调度;否则,立即 剥夺当前进程的运行,把处理机分配给刚被激活的进程。
整个系统效率得 以提高。
下一 步
吞吐率:1/8Δt = 0.125道程序/Δt
A
0 Δt 1

第二章 进程管理、作业管理

第二章 进程管理、作业管理
1 作业状态及其转换 提交 - 收容 - 执行 - 完成
27
2 调度的层次 高级调度 :又称为“长程调度”、“作 业调度”。从用户工作流程的角度,一次 提交的若干个流程,其中每个程序按照进 程调度。时间上通常是分钟、小时或天。 接纳多少作业 接纳哪些作业 调度算法
29
低级调度:又称为“短程调度”、“进程或线 程”。从CPU资源的角度,执行的单位。时间上 通常是毫秒。因为执行频繁,要求在实现时达到 高效率。 两种调度方式: 非抢占方式 抢占方式 时间片 优先权 短作业(进程)优先 中级调度:又称为“中程调度”,内外存交换。 从存储器资源的角度。将进程的部分或全部换出 到外存上,将当前所需部分换入到内存。指令和 数据必须在内存里才能被CPU直接访问。

平均周转时间T 平均带权周转时间(带权周转时间W是 T(周转)/T(CPU 执行)〕
31
响应时间:用户输入一个请求(如击键)到系统 给出首次响应(如屏幕显示)的时间--分时系 统 截止时间:开始截止时间和完成截止时间--实 时系统,与周转时间有些相似。 优先权:可以使关键任务达到更好的指标。 不因作业或进程本身的特性而使上述指标过分恶 化。如长作业等待很态、寄存 器上下文和栈 同样具有就绪、阻塞和执行三种基本状态

16
线程与进程
one process one thread
one process multiple threads
multiple processes one thread per process
multiple processes multiple threads per process
第二章 进程管理、作业管理
2.1 基本概念

《操作系统实训(Linux)——习题解答、例题解析、实验指导》-王红-电子教..

《操作系统实训(Linux)——习题解答、例题解析、实验指导》-王红-电子教..

第2章进程管理进程是操作系统中非常重要的概念,进程管理是操作系统最为重要的功能之一。

12.1 基本结构图2进程管理基本知识结构图(见下页)进程管理进程的概念进程的描述进程控制进程的创建与终止进程通信线程程序的顺序执行程序的并发执行进程的概念及特征进程的状态及转换Linux进程的状态Linux进程的PCBLinux进程的系统调用进程的阻塞与唤醒进程的同步与互斥临界资源锁机制信号量进程控制块信号量的应用及同步举例进程的同步与互斥进程控制块的组织方式共享存储器机制消息传递机制管道通信机制信号通信机制线程的概念线程的特点2.2 知识点2.2.1 进程的概念1.程序的顺序执行我们把一个具有独立功能的程序独占处理机,直到最后结束的过程称为程序的顺序执行。

程序顺序执行时的特征为:顺序性、封闭性和可再现性。

4顺序性是指,程序执行时严格按照程序的语句或指令的顺序执行。

封闭性是指,程序执行的结果只有程序本身才可以改变,而与其它外界因素无关。

可再现性是指,只要输入的初始条件相同,则无论何时重复执行该程序,结果都是相同的。

52.程序的并发执行所谓程序的并发性,是指多道程序在同一时间间隔内同时发生。

63.进程的概念及特征(1)进程的概念进程是操作系统中最基本、最重要的概念之一。

进程可以如下定义:进程是程序的一次执行。

进程是可以和别的进程并发执行的计算。

进程就是一个程序在给定活动空间和初始条件下,在一个处理机上的执行过程。

进程是程序在一个数据集合上的运行过程,它是系统进行资源分配和调度的一个独立单位。

进程是动态的,有生命周期的活动。

内核可以创建一个进程,最终将由内核终止该进程使其消亡。

7(2)进程与程序的区别进程和程序是两个完全不同的概念,但又有密切的联系。

8(3)进程的特征进程具有动态性、并发性、独立性、异步性及结构性的特征。

4.进程的状态及转换在操作系统中,进程通常至少有三种基本状态:就绪状态、执行状态和阻塞状态。

910程执行完成或撤消阻塞状态就绪状态进程创建调度用片间时进等待某事件发生如I/O 请求外部事件发生进程的基本状态及转换图完5.Linux进程的状态Linux系统内核在进程控制块中用state成员描述进程当前的状态,并明确定义了5种进程状态。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Begin wait(full); Wait(mutex); 消费; 消费; signal(mutex); Signal(empty); ; End; ;
第二章
进程管理
注:一般说来:singal原语是释放资源 一般说来:singal原语是释放资源
的,可以任意顺序出现,wait原语不然, 可以任意顺序出现,wait原语不然, 原语不然 如果次序混乱将造成死锁 死锁。 如果次序混乱将造成死锁。
? 进 餐
准备进餐


第二章
进程管理
2 利用记录型信号量解决
基本工作:思考,进餐。 基本工作:思考,进餐。 同步? 同步? 无 互斥?有 互斥? 临界资源为筷子。一只筷子 编号为 编号为i) 临界资源为筷子。一只筷子(编号为 可定义一个信号量数组来描述五支筷子。 可定义一个信号量数组来描述五支筷子。 var chopstick:array[0..4] of semaphore :=1, 1, 1, 1, 1; 所有信号量初值为1, 所有信号量初值为 , 一个互斥信号量
2 执行过程: 执行过程:
第二章
进程管理
生产者-消费者动画演示( ) 生产者-消费者动画演示(1)
第二章
进程管理
生产者-消费者动画演示( ) 生产者-消费者动画演示(2)
第二章
进程管理
生产者-消费者动画演示( ) 生产者-消费者动画演示(3)
第二章
进程管理
生产者-消费者动画演示( ) 生产者-消费者动画演示(4)
第二章
进程管理
4 利用AND信号量解决 利用AND信号量解决
parbegin producer: begin repeat producer an item in nextp; Swait(empty,mutex); buffer(in):=nextp; in:=(in+1) mod n; Ssignal(mutex,full); until false; end consumer: begin repeat Swait(full,mutex) ; nextc:=buffer(out); out:=(out+1) mod n; Ssignal(mutex,empty); until false; end Parend
第二章
进程管理
3 生产者-消费者问题完整描述: 生产者-消费者问题完整描述:
设有n个缓冲区,为实现对缓冲池的互斥操作: 设有 个缓冲区,为实现对缓冲池的互斥操作: 个缓冲区 互斥信号量mutex;资源信号量empty表示空缓冲的个 ;资源信号量 互斥信号量 表示空缓冲的个 表示满缓冲的个数; 表示满缓冲的个数 数,full表示满缓冲的个数; 定义数组buffer[ ]表示缓冲区。 表示缓冲区。 定义数组 表示缓冲区 输入指针in指示下一个可放消息的缓冲区; 输入指针 指示下一个可放消息的缓冲区;输出指针 指示下一个可放消息的缓冲区 指示下一个可取消息的缓冲区。 out指示下一个可取消息的缓冲区。 指示下一个可取消息的缓冲区 var mutex,empty,full:semaphore :1,n,0; : , , ; buffer:array[0,…,n-1] of item; : , , in , out : integer:=0,0; : , ;
第二章
进程管理 4 4 0 3 3
0
2
1
2 1
4)用AND信号量机制可获得最简洁解法。 ) 信号量机制可获得最简洁解法 信号量机制可获得最简洁解法。
第二章
进程管理
3 用AND信号量机制解决 AND信号量机制解决
var chopstick:array [0,…,4] of semaphore:=(1,1,1,1,1); process i repeat think; Swait(chopstick[(i+1) mod 5],chopstick[i]); eat; Ssignal(chopstick[(i+1) mod 5],chopstick[i]); until false; 哲学家问题对于多个竞争进程互斥地访问有限资源( 哲学家问题对于多个竞争进程互斥地访问有限资源(如I/O 设备)这一类问题的建模十分有用。 设备)这一类问题的建模十分有用。
consumer: begin repeat wait(full) ; wait(mutex); nextc:=buffer(out); out:=(out+1) mod n; signal(mutex); signal(empty); until false; end Parend
第二章
进程管理
第二章
进程管理
哲学家进餐活动可描述为: 哲学家进餐活动可描述为:
Var chopstick: array [0..4] of semaphore:=1, 1, 1, 1, 1; Begin Parbegin process i ( i=0, 1, 2, 3, 4): begin Repeat Think; ; wait(chopstick[i]); ; wait(chopstick[i+1] mod 5); ; eat ; signal(chopstick[i]; ; signal(chopstick[i+1] mod 5); ; until false; end parend end
注 意:
1)wait(mutex)和signal(mutex)必成对出现 ) 和 必成对出现 2)empty和full的wait和signal操作也必成对出现, ) 操作也必成对出现, 和 的 和 操作也必成对出现 但是在不同的进程中。 但是在不同的进程中。 3)wait原语顺序不能颠倒,signal原语顺序可任意。 ) 原语顺序不能颠倒, 原语顺序可任意。 原语顺序不能颠倒 原语顺序可任意 思考: P82习题23、 习题23 思考: P82习题23、24
第二章
进程管理
parbegin producer: begin repeat producer an item in nextp; wait(empty); wait(mutex) ; buffer(in):=nextp; in:=(in+1) mod n; signal(mutex); signal(full) ; until false; end
and consumer problem)
第二章
进程管理
使用方向 主要考虑的问题: 主要考虑的问题: 缓冲区满或空; 缓冲区满或空; 竞争条件。 竞争条件。 供应方向
注 意:
1)缓冲池不满就可放入,不空就可取出; )缓冲池不满就可放入,不空就可取出; 2)不允许消费者到空缓冲中取消息(判空,则阻塞); )不允许消费者到空缓冲中取消息(判空,则阻塞); 3)不允许生产者向满缓冲中放消息(判满,则阻塞); )不允许生产者向满缓冲中放消息(判满,则阻塞); 4)对缓冲池的操作要求互斥。 )对缓冲池的操作要求互斥。
第二章
进程管理
三、读者---写者问题(Reader/Writer 读者---写者问题 --1 问题描述: 问题描述:
Problem) Problem)
一个数据对象被多个进程共享。其中有些进程要求读, 一个数据对象被多个进程共享。其中有些进程要求读,另 一些进程要求写或修改。要求读的进程称为“ 进程” 一些进程要求写或修改。要求读的进程称为“reader进程”; 进程 其它的称为“writer进程 。允许多个reader进程同时执行; 其它的称为“ 进程”。允许多个 进程同时执行; 进程 进程同时执行 不允许一个writer进程和其它 进程和其它reader进程或 进程或writer进程同时访 不允许一个 进程和其它 进程或 进程同时访 问共享对象。 问共享对象。
第二章
进程管理
§2.4 经典进程同步问题
Classical process synchronization problem 一、生产者--消费者问题(producer 生产者--消费者问题 -1 问题描述: 问题描述:
若干进程通过有限的共享缓冲区(缓冲池)交换数据。 若干进程通过有限的共享缓冲区(缓冲池)交换数据。 “生产者”进程不断将信息放入缓冲区 生产者”进程不断将信息放入缓冲区; 将信息放入缓冲区 “消费者”进程不断从缓冲区中取出信息; 消费者”进程不断从缓冲区中取出信息; 消费者 从缓冲区中取出信息 共享缓冲区共有N个;任何时刻只能有一个进程可对共享缓 共享缓冲区共有 个 冲区进行操作。 冲区进行操作。设缓冲池为循环存储结构
第二章
进程管理
各生产者进程使用的过程produce (data) 各生产者进程使用的过程 各消费者使用的过程consume (data)可描述如下: 可描述如下: 各消费者使用的过程 可描述如下
produce(data); ;
Begin wait(empty); wait(mutex); 送数据入缓冲区单元 Signal(mutex); ; Signal(full); End; ;
此算法有无问题? 此算法有无问题?
“Dead“Dead-Lock”
第二章
进程管理
哲学家进餐“死锁” 哲学家进餐“死锁”问题解决方法
1) 规定在拿到左筷子后,先检查右筷子是否可用。若不可 规定在拿到左筷子后,先检查右筷子是否可用。 则先放下左筷子,等一段时间再重复整个过程。 用,则先放下左筷子,等一段时间再重复整个过程。 但该方法可能出现“饥饿” 但该方法可能出现“饥饿”现象 2)至多允许四个人同时进餐,保证至少一个能进餐。 )至多允许四个人同时进餐,保证至少一个能进餐。 设一个信号量v,初值为4。 设一个信号量 ,初值为 。 3)规定奇数号人先拿左筷子,后拿右筷子;偶数号人先拿 )规定奇数号人先拿左筷子,后拿右筷子; 右筷子,后拿左筷子。五个哲学家都先竞争奇数号筷子, 右筷子,后拿左筷子。五个哲学家都先竞争奇数号筷子,获 得后再竞争偶数号筷子。 得后再竞争偶数号筷子。最后总有一个哲学家能获得两只筷 子。
相关文档
最新文档