导图社区 高永嘉第二章进程的描述与控制
可作为操作系统期末复习资料,适合人群:1)课堂基础知识掌握不佳、想要夯实基础的同学2)或基础较好、想要领先预习的同学课程收获。
编辑于2021-06-17 14:17:53第二章、进程的描述与控制
2.1前驱图和程序的执行
2.2 进程的描述
2.6 进程通信
进程通信——进程之间的信息交换。 进程之间的互斥和同步,交换的信息量少——低级通信。 信号量机制作为通信工具不够理想,表现在: .效率低; ·通信对用户不透明。 进程高级通信——是指用户可直接利用0S所提供的一组通信命令,高效地传送大量数据的一种通信方式。 .高级通信过程对用户是透明;。 .大大减少了通信程序编制的复杂性。 2.6.1进程通信的类型 高级通信机制可归结为三类: 1.共享存储器通信 .基于共享数据结构的通信方式 .基于共享存储区的通信方式 2.管道通信(共享文件) 3.消息传递系统 .直接通信方式 ·间接通信方式——信箱通信 4.客户机-服务器系统 管道通信系统: 1.定义 也称共享文件方式,是连接读、写进程的一个特殊文件,它允许进程按先进先出方式传递数据,是单向的字符流式文件。  2.分类 有名管道:永久性,具有文件名、访问权限 无名管道:由进程临时创建,常用于家族内的信息传递 2.6.2消息传递通信的实现方式 1. 直接通信方式:发送进程利用OS所提供的命令,直接把消息发送给目标进程。 2. 间接通信方式—信箱
2.3 进程控制
2.4 进程同步
2.5经典进程同步问题
2.7线程(Threads)的基本概念
2.7.3线程的状态和线程控制块
1. 线程运行的三个状态 如同传统的进程一样,在各线程之间也存在着共享资源和相互合作的制约关系,致使线程在运行时也具有间断性。相应地,线程在运行时,也具有下述三种基本状态: ①执行状态:表示线程正获得处理机而运行。 ②就绪状态:指线程已具备了各种执行条件,一旦获得CPU便可 执行的状态。 ③阻塞状态:指线程在执行中因某事件而受阻,处于暂停执行时 的状态。 说明:①线程一般无挂起状态 ②线程阻塞会引起整个进程的阻塞吗? 并不会 引入线程的好处 ①创建一个新线程花费时间少(结束亦如此) ②两个线程的切换花费时间少 ③同一进程内线程间通信简便、快速:共享内存和文件,无须调用内核 ④细化了系统并发的粒度
2.7.2线程与进程的比较

2.7.1线程的引入

2.5.3读者—写者问题
Q:有一本书 有多个读者读书 有多个写者写书 R:允许多个读者同时读书 不允许读者,写者同时操作 不允许写者同时操作 
2.5.2哲学家进餐问题
哲学家进餐问题 Dijkstra 提出并解决的哲学家就餐问题是经典的进程同步问题。哲学家就餐问题描述如下: 有5个哲学家共用一张圆桌,分别坐在周围的5张椅子上,在圆桌上有5个碗和5只筷子,他们的生活方式是交替地进行思考和进餐。平时,每个哲学家进行思考,饥饿时便试图拿起其左右最靠近他的筷子,只有在他拿到两只筷子时才能进餐。进餐完毕,放下筷子继续思考。 利用信号量解决哲学家进餐问题 桌子上的筷子是临界信号,应互斥使用,可用一个信号表示一只筷子,5只筷子的5个信号构成 信号量数组,所有信号量的初值均为1。 Semaphore chopstick[5]={1,1,1,1,};  对上述哲学家就餐问题算法的死锁问题,可采取下面几种 解决方法之 1. 至多允许4个哲学家同时取左边的筷子,这样至少保证一个哲学家能就餐,并在用完后释放他使用过的两只筷子,从而使更多的哲学家能够进餐。并在用毕后释放他用过的两只筷子,从而使更多的哲学家能够进餐。 2. 仅当哲学家左右两只筷子均可用时,才允许他拿起筷子进餐。 3. 规定奇数号哲学家先拿左边筷子,然后再拿右边筷子;而偶数号哲学家先拿右边筷子,然后再拿左边筷子。
2.5.1生产者-消费者问题

2.4.4信号量的应用
1.利用信号量实现进程互斥
实质是实现对临界区的互斥访问 允许最多一个进程处于临界区 应用过程 进入临界区之前进行wait操作 离开临界区之后进行signal操作 
2.利用信号量实现前趋关系
  
2.4.3信号量机制
分析总结: >信号量值大于等于0时代表可供并发进程使用的资源实体数目 小于0时,则值表示正等待使用该临界姿源的进程数。 每个信号量都有一个等待队列与之相关,队列的初始状态为空。 wait(S)操作(即P原语)的含义:申请一个资源 signal(S)操作(即V原语)的含义:释放一个资源
(1)可以记录资源个数
(2)可以记录等待进程个数
(3)每个信号量都有一个等待队列与之相关,队列的初始状态为空。
2.4.1 进程同步的基本概念
1.两种形式的制约关系
(1)间接相互制约关系。所谓间接相互制约源于资源共享
(2)直接相互制约关系。 这种制约主要源于进程间的合作
2.临界资源
系统中某些资源一次只允许一个进程使用,这样的资源称为临界资源或互斥资源或共享变量。 Q:如何使用临界资源? 将变量counter作为临界资源处理,即让生产者进程和消费者进程互斥的使用counter进程。
3.临界区(互斥区)
每个进程中访问临界资源的程序段叫临界区。
4.同步机制应遵循的规则
基本原则: 1. 忙则等待:如果一个进程在临界区中执行,则其他进程不允许进入。 这些进程间的约束关系称为互斥。 好的临界区保护原则: 2.空闲让进:有效利用资源。 3.有限等待:从进程发出进入请求到允许进入,不能无限等待。 4.让权等待:进程不能进入临界区,应该立即释放处理机,以免陷入“忙等”状态。
2.3.5进程的挂起和激活
1.进程的挂起
系统将利用挂起原语suspend()将指定进程或处于阻塞状态的进程挂起。
2.进程的激活
系统将利用激活原语active()将指定进程激活。
2.3.4进程阻塞和唤醒
1.引起进程阻塞和唤醒的事件
2.进程阻塞原语

3.进程唤醒原语

2.3.3进程的终止
1.引起进程终止的事件
(1)正常结束
(2)异常结束
① 越界错误 ② 保护错 ③ 非法指令 ④ 特权指令错 ⑤ 运行超时 ⑥ 等待超时 ⑦ 算术运算错误 ⑧ I/O故障
(3)外界干预
2.进程的终止原语

2.3.2进程的创建
1.流程图

2.引起创建进程的事件
(1)用户登录。
(2)作业调度
(3)提供服务
(4)应用请求
3.进程的创建
(1)申请空白PCB。
(2)为新进程分配资源
(3)初始化进程控制块
(4)将新进程插入就绪队列
2.3.1操作系统内核
1.支撑功能
(1)中断处理
(2)时钟管理
(3)原语操作
2.资源管理功能
(1)进程管理
(2)存储器管理
(3)设备管理
2.2.4进程管理中的数据结构
1.操作系统中 用于管理控制的数据结构
在计算机系统中,对于每个资源和每个进程都设置了一个数据结构,用于表征其实体,我们称之为资源信息表或信息进程表。
2.进程控制块的作用
PCB作为进程实体的一部分,记录了操作系统所需的,用于描述进程的当前情况以及管理进程运行的全部信息,是操作系统中最重要的记录型数据结构。 PCB的作用是使一个在多道程序环境下不能独立运行的程序(含数据)成为一个能独立运行的基本单位,一个能与其他进程并发执行的程序。
(1)作为独立运行基本单位的标志。
(2)能实现间断性运行的方式。
(3)提供进程管理所需要的信息。
(4)提供进程调度所需要的信息。
(5)实现与其他进程的同步与通信。
3.进程控制块的信息
(1)进程描述信息: 进程标识符: 内部标识符:为了方便系统对进程的使用,在OS中又为进程设置了内部标识符,即赋予每一个进程一个唯一的数字标识符,它通常是一个进程的序号。 外部标识符:它是由创建者提供的,通常由字母,数字组成,往往是由用户(进程)在访问该进程时使用。 进程家族关系:父进程标识、子进程标识。 用户:指示拥有该进程的用户。 (2)处理机状态(CPU现场保护结构、进程上下文) 由处理机的各种寄存器中的内容组成的。包括: ① 通用寄存器 ② 指令计数器 ③ 程序状态字PSW ④ 用户栈指针 (3)进程调度信息 ① 进程状态 ② 进程优先级 ③ 进程调度所需的其他信息 ④ 事件 (4)进程控制信息 ① 程序和数据的地址 ② 进程同步和通信机制 ③ 资源清单 ④ 链接指针
4.进程控制块的组织方式
(1)线性方式,即将PCB都组织在一张线性表中。
(2)链接方式——将具有相同状态的PCB组成相应队列

(3)索引方式

2.2.3挂起操作和进程的状态转换
在系统资源不足的情况下,操作系统会对在内存中的进程进行合理的安排,其中的进程会被暂时调离出内存,及处于“挂起”状态。 
2.2.2进程的基本概念及转换

就绪状态:一个进程已经具备运行条件,单由于没有CPU暂时不能运行。
执行状态:进程占有CPU,并在CPU上运行。
阻塞状态:也称为等待态,封锁态。指进程因为等待某种事情的发生而暂时不能运行的状态。
2.2.1进程的定义和特征
(1)进程的定义
① 进程是程序的一次执行
② 进程是一个程序及其数据在处理机上顺序执行时所发生的活动。
③ 进程是具有独立功能的程序在一个数据集合上运行的过程,他是系统进行资源分配和调度的一个独立单位
(2)进程的特性
① 结构特性:程序段+相关数据+PCB=进程实体
② 动态性:进程的实质是进程实体的一次执行过程
③ 并发性:多个进程实体同存于内存中,且能在一段时间内同时运行。
④ 独立性:进程实体是一个能独立运行,独立分配资源和独立接受调度的基本单位。
⑤ 异步性:进程按各自独立的,不可预知的速度向前推进
2.1.3程序的并发执行及其特征
1. 并发性:两个或多个事件在同一时间间隔发生,交替进行。

2.特征
(1)间断性
(2)失去封闭性
(3)不可再现性 执行结果与其执行的相对速度有关,是不确定的。
2.1.2程序的顺序执行及其特征
1.仅当操作执行完后,才能执行后续操作。
2.特征:(1)顺序性 (2)封闭性(3)可再现性
2.1.1前驱图
用结点代表各程序段的操作,用箭头代表操作的先后次序。