第2章 进程线程11作业
操作系统第二章进程线程与作业

相互作用
1. 直接相互作用:发生在相关进程之间
P1:
send
P2:
sync
receive
2. 间接相互作用:发生在任何进程之间
P1
P2
wait
hold
R
2.2.8 进程的创建与撤销
进程的创建
建立PCB,分配内存,加载程序,入就绪链 UNIX:pid=fork(),exec(prog,args)
2.1.3 多道程序设计的问题
处理机资源的管理
程序个数处理机个数(如何分配?)
存储资源的管理
地址空间的相对独立性、共享性 内存、外存(swap space)的分配与去配
设备资源管理
分配策略 IO控制
2.2 进程的引入
2.2.1 进程的概念 2.2.2 进程状态及状
态转换
2.2.3 进程控制块 2.2.4 进程的组成与
就绪运行:获得处理机 运行就绪:剥夺处理机 运行等待:申请资源未得到,启动IO 等待就绪:得到资源,IO中断
2.2.2.2 进程状态转换图
就绪
获得处理机 剥夺处理机
运行
事件发生
等待
等待事件
进程状态转换由操作系统完成,对用户是透明的; 进程在其生存期内经过多次状态转换,体现了进程的动态性和 并发性。
上下文切换(context switch)
– 由一个进程的上下文转到另外一个进程的上下文
系统开销(system overhead)
– 运行操作系统程序完成系统管理工作所花费的时间 和空间
2.2.5 进程的队列
PCB构成的队列:(不一定FIFO,单向或双向)
head
PCB
PCB
……
PCB
操作系统课件 第二章 进程线程与作业

2.程序 程序是进程的“躯体”,其中包括代码和数 据两部分。 代码在运行期间不修改自身,以支持程序共 享。另外,在多道系统中,内存中同时存在多个 程序,这些程序在内存中的存放位置随机确定, 且在运行过程中可能会发生变化,因而代码必须 能够浮动,即不采用绝对地址。 数据一般包括静态变量、动态堆和动态栈。 堆用来保存动态变量,栈用来保存用户子程序相 互调用时的参数、局部变量、返回值、断点等。 数据一般归进程私用,当然也有系统提供进 程间数据共享功能,以实现进程间的信息交换。
2.内存资源管理问题 为使多个程序在系统中同时共存,需按某种 原则对内存进行划分,并将其分配给各个程序。 由于程序在内存中的实际存放位置在其装入 系统之前无法确定,且在其运行过程中地址可能 发生变化,因而程序只能使用相对地址。操作系 统负责存储空间的分配与管理,并在硬件支持下 将程序产生的逻辑地址映射到内存物理地址,即 实现程序的重定位。 此外,应防止内存中多道程序之间的相互干 扰或对OS的干扰,即一般不允许一个程序侵犯另 一个程序的地址空间或操作系统空间,为此操作 系统需在硬件支持下实现对存储空间的保护。
2.1.3 多道程序设计的问题
多道程序设计改善了系统资源的利用率,增 加了吞吐量,提高了系统效率,但同时也带来了 新的问题:即资源竞争。 多道程序设计的实现必须协调好运行程序与 资源之间的关系,使资源利用率尽可能提高。具 体地说,需解决如下问题: 1.处理机资源管理问题 如果可运行程序的个数多于处理机的个数, 则需解决可运行程序与处理机资源的竞争问题, 即需要对处理机资源加以管理,实现处理机资源 在各个程序之间的分配和调度。
2.内存资源利用率提高 允许多道程序同时进入系统可避免单道程序 过短而内存空间很大所造成的存储空间浪费。 3.处理机资源利用率提高
操作系统第二版第二章课后习题答案

第二章进程和线程作业答案1,2,4,6,7,10,11,12,14, 211.在操作系统中为什么要引入进程概念它与程序的差别和关系是怎样的答:由于多道程序的并发执行时共享系统资源,共同决定这些资源的状态,因此系统中各程序在执行过程中就出现了相互制约的新关系,程序的执行出现“走走停停”的新状态。
用程序这个静态概念已经不能如实反映程序并发执行过程中的这些特征。
为此,人们引入“进程(Process)”这一概念来描述程序动态执行过程的性质。
进程和程序是两个完全不同的概念。
进程与程序的主要区别:进程和程序之间存在密切的关系:进程的功能是通过程序的运行得以实现的,进程活动的主体是程序,进程不能脱离开具体程序而独立存在。
2.PCB的作用是什么它是怎样描述进程的动态性质的答:PCB是进程组成中最关键的部分。
每个进程有惟一的进程控制块;操作系统根据PCB对进程实施控制和管理,进程的动态、并发特征是利用PCB表现出来的;PCB是进程存在的唯一标志。
PCB中有表明进程状态的信息,该进程的状态包括运行态、就绪态和阻塞态,它利用状态信息来描述进程的动态性质。
4. 用如图2-26所示的进程状态转换图能够说明有关处理机的大量内容。
试回答:①什么事件引起每次显着的状态变迁②下述状态变迁因果关系能否发生为什么(A)2→1 (B)3→2 (C)4→1答:(1)就绪→运行:CPU空闲,就绪态进程被调度程序选中运行→阻塞:运行态进程因某种条件未满足而放弃CPU的占用。
阻塞→就绪:阻塞态进程所等待的事件发生了。
运行→就绪:正在运行的进程用完了本次分配给它的时间片(2)下述状态变迁(A)2→1,可以。
运行进程用完了本次分配给它的时间片,让出CPU,从就绪队列中选一个进程投入运行。
(B)3→2,不可以。
任何时候一个进程只能处于一种状态,它既然由运行态变为阻塞态,就不能再变为就绪态。
(C)4→1,可以。
某一阻塞态进程等到的事件出现了,而且此时就绪队列为空,该进程进入就绪队列后马上又被调度运行。
作业、进程、线程

作业、进程、线程1. 基本概念作业:⽤户在⼀次解决或是⼀个事务处理过程中要求计算机系统所做的⼯作的集合,它包括⽤户程序、所需要的数据集控制命令等。
作业是由⼀系列有序的步骤组成的。
作业的完成要经过作业提交、作业收容、作业执⾏和作业完成4个阶段。
在执⾏⼀个作业可能会运⾏多个不同的进程。
进程:程序在⼀个数据集上的⼀次运⾏过程。
是操作系统资源分配的基本单位。
在Windows下,进程⼜被细化为线程,也就是⼀个进程下有多个能独⽴运⾏的更⼩的单位. 进程还拥有⼀个私有的虚拟地址空间,该空间仅能被它所包含的线程访问。
线程:是进程中的⼀个实体,是被操作系统独⽴调度和执⾏的基本单位。
⼀个进程包含⼀个或多个线程。
线程只能归属于⼀个进程并且它只能访问该进程所拥有的资源。
当操作系统创建⼀个进程后,该进程会⾃动申请⼀个名为主线程或⾸要线程的线程。
主线程将执⾏运⾏时宿主, ⽽运⾏时宿主会负责载⼊CLR。
简单总结:作业是向计算机提交任务的任务实体,⽽进程是执⾏实体,是资源分配的基本单位,线程是处理机调度的基本单位。
2. 进程2.1 进程的概念主要有两点:第⼀,进程是⼀个实体。
每⼀个进程都有它⾃⼰的地址空间,⼀般情况下,包括⽂本区域(text region)、数据区域(data region)和堆栈(stack region)。
⽂本区域存储处理器执⾏的代码;数据区域存储变量和进程执⾏期间使⽤的动态分配的内存;堆栈区域存储着活动过程调⽤的指令和本地变量。
第⼆,进程是⼀个“执⾏中的程序”。
程序是⼀个没有⽣命的实体,只有处理器赋予程序⽣命时,它才能成为⼀个活动的实体,我们称其为进程。
2.2 进程特征 动态性:进程的实质是程序在多道程序系统中的⼀次执⾏过程,进程是动态产⽣,动态消亡的。
并发性:任何进程都可以同其他进程⼀起并发执⾏ 独⽴性:进程是⼀个能独⽴运⾏的基本单位,同时也是系统分配资源和调度的独⽴单位; 异步性:由于进程间的相互制约,使进程具有执⾏的间断性,即进程按各⾃独⽴的、不可预知的速度向前推进 结构特征:进程由程序、数据和进程控制块三部分组成。
操作系统 第二章作业本(含答案)

第二章作业第一次作业:1.进程有哪三种基本状态?进程在三种基本状态之间转换的典型原因是什么?答:三种基本状态:就绪状态、执行状态、阻塞状态。
(1)就绪状态→执行状态:进程分配到CPU资源(进程调度);(2)执行状态→就绪状态:时间片用完(3)执行状态→阻塞状态:I/O请求(4)阻塞状态→就绪状态:I/O完成2.在Linux系统中运行下面程序,最多可产生多少个进程?画出进程家族树。
main(){fork();fork();fork();}答:最多可以产生7个进程。
其家族树为:3.试从动态性、并发性和独立性上比较进程和程序。
答:1)动态性是进程最基本的特性,可表现为由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤销而消亡,因而进程由一定的生命期;而程序只是一组有序指令的集合,并存放于某种介质上,其本身并不具有运动的含义,因而是静态的;2)并发性是进程的重要特征,同时也是OS的重要特征。
引入进程的目的正是为了使其程序能和其它建立了进程的程序并发执行,而程序本身(没有建立PCB)是不能并发执行的;3)独立性是指进程实体是一个能独立运行、独立分配资源和独立接受调度的基本单位。
凡未建立PCB的程序,都不能作为一个独立的单位来运行。
4.分析下列代码的功能:答:sleep_on实现进程的睡眠过程;wake_up实现进程的唤醒过程。
第二次作业:1.同步机制应该遵循哪些基本准则?你认为整型信号量机制遵循了同步机制的哪些基本准则?答:同步机制应遵循四个基本准则:a. 空闲让进:当无进程处于临界区时,应允许一个请求进入临界区的进程立即进入自己的临界区,以有效地利用临界资源。
b. 忙则等待:当已有进程进入临界区时,其它试图进入临界区的进程必须等待,以保证对临界资源的互斥访问。
c. 有限等待:对要求访问临界资源的进程,应保证在有限时间内能进入自己的临界区,以免陷入“死等”状态。
d. 让权等待:当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入“忙等”状态。
二章节进程线程与作业-PPT精品文档

PCB PCB 数据 + 堆栈 系统空间 用户空间
程序
代码
表记1
表记2
软件教研室
2.2.4 进程的组成与上下文
进程上下文:进程的物理实体与支持进程 运行的物理环境,包括: PCB+程序 系统环境:地址空间,系统栈,打开文 件表,… 上下文切换:由一个进程的上下文转到另 一个进程的上下文 系统开销:运行操作系统程序完成系统管 理工作所花费的时间和空间
软件教研室
2.1.1 单道程序设计
t1 CPU 设备1 设备2 t2
运行程序A
t5
t6
运行程序A
t
• 处理机利用率低 • 设备利用率低 • 内存利用率低
软件教研室
2.1.2 多道程序设计的提出
t1
CPU 设备1 设备2
t2
程序A
t3
t4
程序B
t5
程序A
t6
t
• 设计目标:提高系统效率(吞吐量)
作业道数 吞吐量 全部处理时间
软件教研室
进程状态转换图
获得处理机
就绪
剥夺处理机 事件发生
运行
等待事件
等待
软件教研室
进程状态转换图2
获得处理机
就绪
创建
初创
运行
剥夺处理机 结束 等待事件
事件发生
等待
终止
软件教研室
2.2.3 进程控制块(PCB)
• 标志进程存在的数据结构,其中保 存系统管理进程所需的全部信息 • PCB 内容: – 进程标识(pid) 家族联系 – 进程状态 地址信息 – 现场信息 打开文件 – 调度参数 消息指针 – 所属用户(uid) 队列指针
OS-02进程,线程和作业

源分配和调度
异步性:各进程按各自独立不可预知的速度向前推进。从
而导致程序执行不可再现性
其他: 交互性、结构性
§ 2.2 进程的概念
进程和程序既有密切联系又有区别
p34
联系:
程序是构成进程的要素之一,进程执行程序。 一对多关系 • 一个进程可以涉及到一个或几个程序的执行 • 一个程序可以对应一个或多个进程,即同一程序段可
建立模型的系统方法,许多实际的操作系统都是按照这 样的三种状态进行具体构造的
在一个没有使用虚存的系统中,每个被执行的进程必须
完全载入主存,因此,所有队列中的所有进程必须驻留 在主存中
内存的吞噬:
内存被等待队列沾满 导致新进程不能被调入内存,从而使CPU处于空闲状态
进程的挂起状态
解决方法
作业1 t1
I1
作 业
3、1进程的引入
作业2
t2
P1
I2
作业3
t3
O1
P2
I3
t4
O2
P3
t
O3 并行计算的先后次序
§2.1 多道程序设计
并发执行的特点
例:计算交通路口车辆流量的系统中,有这样两个程序段:
A:while(exp1){
A1:N=N+1; }
B: while(exp2){
B1:print(N); B2:N=0;
§2.4 进程的描述
进程控制块队列 实现对进程的统一管理
运行队列
就绪队列 等待队列
每个队列都有一个队列的首指针; 队列末尾的PCB,其队列指针为-1
单一等待队列
就绪队列 允许进入 分派 处理器 超时 等待队列 事件发生
《操作系统》习题集:第2章 进程与线程

)。【***,腾迅面试题】
A. 22.5
B. 23.5
C. 24.5
D. 25.5
43. 关于临界区正确的说法是(
)。【*,自】
A. 访问不同临界资源的两个进程不要求必须互斥地进入临界区
B. 临界区是包含临界资源的一段数据区
C. 临界区一种用于进程同步的机制
D. 临界区是访问临界资源的一个进程或线程
44. 进程和程序的一个本质区别在于(
)。【*,★,自】
A. 前者分时使用 CPU,后者独占 CPU
B. 前者存储在内存,后者存储在在外存
C. 前者具有异步性,后者具有可再现性
)。【*,★,联考】
A. 内核支持线程的切换都需要内核的支持
B. 线程是资源的分配单位,线程都是拥有资源的独立单位
C. 不管系统中是否有线程,线程都是拥有资源的独立单位
D. 在引入线程的系统中,进程仍是资源分配和调度分派的基本单位
20. 在支持多线程的系统中,进程 P 创建的若干线程不能共享的是(
)。【**,★,11 考研】
42. 假定我们有 3 个程序,每个程序花费 80%的时间进行 I/O,20%的时间使用 CPU,每个程序启动时间和其需要使
用进行计算的分钟数 如下,不考虑进程切换时间:
程序编号 启动时间 需要 CPU 时间(分钟)
1
00:00
3.5
2
00:10
2
3
00:15
1.5
请问,在多线程/进程环境下,系统的总响应时间为(
flag[0]=FALSE;flag[1]=FALSE;
进程 P0 和 P1 访问临界资源的类 C 语言代码实现如下:
void P0{
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PCB PCB 数据 + 堆栈 系统空间 用户空间
程序
代码
表记1
表记2
软件教研室
2.2.4 进程的组成与上下文
进程上下文:进程的物理实体与支持进程 运行的物理环境,包括: PCB+程序 系统环境:地址空间,系统栈,打开文 件表,… 上下文切换:由一个进程的上下文转到另 一个进程的上下文 系统开销:运行操作系统程序完成系统管 理工作所花费的时间和空间
2.3.4.3 混合线程(Solaris)
task1 task2 task3
User level thread
Kernel thread Lightweight process
kernel
CPU
软件教研室
2.3.5 线程的应用
• 内在的多控制流 – 生产-消费问题 • 多线程优于多进程 – 快100倍! • 提高处理机与设备的并行性 • 多处理机环境 – 提高处理机利用率,加快进程推 进速度
软件教研室
2.2.9 进程与程序的联系与差别
• 进程与程序的联系 – 进程包括一个程序 – 进程存在的目的就是执行这个程序
• 进程与程序的差别 – 程序静态,进程动态 – 程序可长期保存,进程有生存期 – 一个程序可对应多个进程,一个进程 只能执行一个程序
软件教研室
2.3 线程与轻进程
• • • • • • 2.3.1 线程的引入 2.3.2 线程的概念 2.3.3 线程的结构 2.3.4 线程的实现 2.3.5 线程的应用 2.3.6 Java线程
软件教研室
2.2.5 进程的队列
PCB构成的队列:(不一定FIFO)
head
PCB PCB …… PCB
1. 就绪队列:系统一个或若干个(根 据调度算法确定)
2. 等待队列:每个等待事件一个
3. 运行队列:每个处理机一个
软件教研室
2.2.6 进程的类型与特征
• 进程类型 – 系统进程 运行操作系统程序,完成系统管理 (服务)功能. – 用户进程 •运行用户(应用)程序,为用户服务。
软件教研室
2.4.1 批处理作业
• 作业控制语言(JCL) –描述批处理作业控制意图的语言 • 作业说明书(JCL语句的序列) – 一般以特殊符号起始 • $JOB J1 • $FORTN … • $LINK … • $ENDJOB • 作业控制程序:解释并处理作业说明书的程序 • 作业控制进程:执行作业控制程序的进程 软件教研室
软件教研室
2.3.1 线程的引入
• 进程切换 – 上下文涉及内容多,开销大,“笨重” – 相关进程之间耦合关系差 • 解决方案 – Multi-threading – 同一进程中包含多个线程 – 上下文只涉及寄存器和用户栈,切换 速度快 – 相关线程之间通讯方便、快捷
软件教研室
2.3.2 线程的概念
T
记帐 建立子进程
F
后台命令
T
等子进程结束
输出子进程号
软件教研室
小结:作业、进程、线程
• 作业与进程 – 作业进入内存后变为进程 – 一个作业通常与多个进程相对应 • 进程与线程 – 不支持多线程的系统,可视为单线 程进程 – 一个进程一般包含多个线程,至少 包含一个线程
软件教研室
作业控制进程
读入作业内容 释放输入井空间 顺取作业控制语句
F
是结束语句 执行该作业步 (可能创建子进程)
T
申请输出井空间
输出作业结果
进程自我终止
软件教研室
2.4.2 交互式作业
• 帐户管理:/etc/passwd文件 • 创建与撤销 – 创建: • 用户提供(用户名,口令,资金) • 系统操作员建立(根目录/usr/zhang, 填写passwd文件) – 撤销: • 删除该用户目录及所有文件 • 在passwd文件中清除对应entry
软件教研室
2.2.4 进程的组成与上下文
• 进程的组成 – 进程控制块(process control block) • 建立进程建立PCB • 撤销PCB撤销进程 – 程序 • 代码(code) • 数据(data) • 堆栈(stack+heap)
软件教研室
2.2.4 进程的组成与上下文
软件教研室
2.2.6 进程的类型与特征(Cont.)
• 进程的特征 – 并发性:可以与其它进程一道向前推进; – 动态性:动态产生、消亡,生存期内状态 动态变化; – 独立性:一个进程是可以调度的基本单位; – 交往性:同时运行的进程可能发生相互作 用; – 异步性:进程以各自独立,不可预知的速 度向前推进; – 结构性:每个进程有一个PCB。
软件教研室
2.3.4.1 用户级别线程
线 程 运行 系统
TCB
进 程
用 户 空 间
核心栈
进程表
系 统 空 间
软件教研室
2.3.4.2 核心级别线程
• 实现方法: – 基于系统调用 – 创建、撤销、状态转换由操作系统完成 • 优点: – 同一进程内多线程可以并行执行 – 一线程进入核心等待,其它线程仍可执行 • 缺点: – 系统开销大,同一进程内多线程切换速度慢 – 调度算法不能灵活控制
软件教研室
2.4.2 交互式作业
• 注册与注销 – 注册: • logon: 用户名 • password: ******** – 注销: • 显示注销: –logout • 隐式注销: –(如5分钟无输入命令)
软件教研室
命令解释程序 提示符$ 读入终端命令 分析
F
T 处理 内部命令 Logout F
软件教研室
2.1.3 多道程序设计的问题
• 处理机资源的管理 – 程序个数处理机个数(如何分配?) • 存储资源的管理 – 地址空间的相对独立性、共享性 – 内存、外存的分配与去配 • 设备资源管理 – 分配策略 – IO控制
软件教研室
2.2 进程的引入
• • • • • • • • • 进程的概念 进程状态及状态转换 进程控制块 进程的组成与上下文 进程的队列 进程的类型与特征 进程间相互联系与相互作用 进程的创建与撤销 进程与程序间的联系与差别
第二章 进程、线程与作业
• 多道程序设计 – Multi-programming • 进程的引入 – Process • 线程与轻进程 – Thread and light-weighted process • 作业 – Job
软件教研室
2.1 多道程序设计
• 单道程序设计的缺点 • 多道程序设计的提出 • 多道程序设计的问题
软件教研室
2.3.5 线程的应用
• 例子: – Word字处理(不同代码) • 交互编辑(T1) • 词法检查(T2) • 定时保存(T3) – HTTP server(相同代码) • 对每个http请求,pop up一个线 程
软件教研室
2.4 作业(Job)
• 作业概念 – 用户要求计算机系统为其完成的计算 任务集合。 • 作业步(job step) – 作业处理过程中一个相对独立的步骤 – 一般一个作业步可由一个进程完成 – 某些作业步之间可以并行 • 作业分类 – 批处理作业 – 交互式作业
软件教研室
2.3.4.2 核心级别线程
线 程 用 户 空 间
进 程
核心栈
TCB
进程表
系 统 空 间
软件教研室
2.3.4.3 混合线程
• Solaris例子
• User level thread: – 由Lib程序支持(创建.调度) • Light weighted process(LWP): – 由Lib程序支持 – 每个task至少一个LWP – 用戶级别线程与LWP可以多对多 – 只有与LWP相联系的用户线程向前推进 • Kernel level thread: – 由kernel 支持 – 每个核心线程与唯一一个LWP对应 软件教研室 – 核心线程可与CPU多对多,可对一
软件教研室
2.2.7 进程间相互联系与相互作用
• 相互联系 – 相关进程 • 同一家族的进程 • 可以共享文件,需要相互通讯,协调推 进速度… • 父进程可以监视子进程,子进程完成父 进程交给的任务。 – 无关进程 • 没有逻辑关系、同时执行的进程。 • 有资源竞争关系,互斥、死锁、饿死。
软件教研室
软件教研室
2.2.1 进程的概念
• 定义: – 进程是具有一定独立功能的程序关 于一个数据集合的一次运行活动。 • 定义强调两个方面: – 动态:执行中的程序; – 并发:可与其他进程同时执行。软件Leabharlann 研室2.2.2 进程状态及转换
• 进程状态(基本状态) – 运行态(RUN): 占有CPU正在向前推 进 – 就绪态(READY): 可以运行,但未得 到CPU – 等待态(WAIT): 等待某一事件发生
软件教研室
2.1.1 单道程序设计
t1 CPU 设备1 设备2 t2
运行程序A
t5
t6
运行程序A
t
• 处理机利用率低 • 设备利用率低 • 内存利用率低
软件教研室
2.1.2 多道程序设计的提出
t1
CPU 设备1 设备2
t2
程序A
t3
t4
程序B
t5
程序A
t6
t
• 设计目标:提高系统效率(吞吐量)
作业道数 吞吐量 全部处理时间
• 进程中一个相对独立的执行流。 • 进程 /线程 – 进程是资源分配单位 – 线程是执行单位 • 多线程优点 – 切换速度快(地址空间不变)(light weighted) – 系统开销小 – 通讯容易(共享数据空间)
软件教研室
线程控制块
• TCB(Thread control block) – 标志线程存在的数据结构, 其中包含对 线程管理需要的全部信息. • 内容 – 线程标识、线程状态 – 调度参数、现场(通用寄存器,PC,SP) • 存放位置 – 用户级线程:目态空间(运行系统) – 核心级线程:系统空间