操作系统课堂笔记(4)进程管理之进程同步与互斥

4.3进程同步与互斥

4.3.1进程间的相互作用

1、分类:

1)相关进程和无关进程(即在逻辑上是否相关)

2)与时间有关的错误

2、进程的同步

进程同步是指进程间一种直接的协同工作关系,是一些进程相互合作,共同完成一项任务。进程间的直接相互作用构成进程的同步。

3、进程的互斥

(1)进程互斥

某些资源一次只能为一个进程服务,因此各进程间互斥使用这些资源,进程间的这种关系是进程的互斥。进程间的间接相互作用构成进程互斥。

(2)临界区

系统中一些资源一次只允许一个进程使用。这类资源称为临界区资源或共享变量。而进程中访问临界资源的那一段程序称为临界区。

临界区使用规则:有空让进、无空等待、多中选一、有限等待、让权等待。

进程互斥的实质是同步,可看作是一种特殊的进程同步。

4、同步机制

进程同步机制应满足的基本要求:1)描述能力足够强 ,即解决各种进程间同步互斥问题  2)容易实现且效率高  3)使用方便

已有的同步机制:硬件同步机制;信号量及P、V操作;管程;条件临界域;路径表达式(用于集中式系统中);远程过程调用(适用于分布式系统中)等。

4.3.3进程同步机制-----信号量和P、V操作

P、V分别是荷兰文“等待”和“发信号”的首字母,P操作和V操作都是同步原语。

每执行一次P操作,意味着分配一个资源,每执行一次V操作意味着释放一个资源。

1)、信号量

信号量是个被保护的量,只有P、V操作和信号量初始化操作才能访问和改变它的值。

2)、P、V操作

定义如下:

P(s):

(1)S := S - 1;

(2)若S<0,该进程的状态设置为等待状态,然后将该进程的PCB插入相应的S信号量等待队列末尾直到有其他进程在S上执行V操作为止。

V(s):

(1) S := S + 1;

(2) 若S<=0,释放S信号量队列中等待的一个进程,改变其状态为就绪态,并将其插入就绪队列;然后使本操作的进程继续执行。

 通常信号量的取值可以解释为:S值的大小表示某类资源的数量。当S>0时,表示还有资源可以分配;当S<0时,其绝对值表示S信号量等待队列中进程的数目。

3)、用P、V操作实现进程间的互斥

令S初值为1,进程A、B竞争进入临界区的程序可写成:

进程A                          进程B

P(s);                    P(s);

临界区操作;              临界区操作;

V(s);                    V(s);

4)、信号量及P、V操作小结

P、V操作的弱点:由于P或V操作每次只做加1或减1运算,即每执行一个一次P操作只能请求分配一个单位的资源每执行一次V操作只释放一个单位的资源,因此如果一个进程需要一次使用多个资源,就需要连续执行多次P操作,释放这些资源时也需要多次执行V操作。这不仅增加了程序复杂性也降低了通信效率,致使进程之间需要等待的时间很长,甚至有可能导致死锁的发生。

P、V操作在使用时必须成对出现,有一个P操作就一定有一个V操作。当为互斥操作时,它们同处于同一进程;当为同步操作时,则不在同一进程出现。

5)、死锁

(1)死锁的概念

死锁是两个或两个以上的进程中的每一个都在等待其中另一个进程释放资源而被封锁,它们都无法向前推进,称这种现象为死锁现象。

产生死锁的原因是共享资源有限,多个进程对共享资源的竞争,而且操作不当。

(2)产生死锁的四个必要条件是资源互斥使用、保持和等待、非剥夺性、循环等待。

(3)解决死锁的方法

一般有死锁的预防,即破坏产生死锁的四个必要条件中的一个或多个,使系统绝不会进入死锁状态;

死锁的避免,即在资源动态分配的过程中使用某种办法防止系统进人死锁状态;和允许系统产生死锁,然后使用检测算法及时地发现并解除它。

安全状态、安全系列、银行家算法等

时间: 2024-09-29 07:06:57

操作系统课堂笔记(4)进程管理之进程同步与互斥的相关文章

操作系统课堂笔记(4)进程管理之多道程序设计和进程

4.1多道程序设计 4.1.1程序的顺序执行:一个具有独立功能的程序独占CPU直到得到最终结果的过程 程序的顺序执行的特点: 1) 顺序性:严格按顺序执行,一一对应 2) 封闭性:结果只能取决于程序本身 3)程序执行结果的确定性:与时间无关 4) 可再观性:不同时间执行,输入相同则结果相同 4.1.2多道程序设计中程序执行环境的变化 1.多道程序设计技术的引入 并发:单CPU,按给定的时间片交替的在处理机上运行:多CPU:并发程序在各自处理机上运行. 根本目的:提高整个系统的效率 衡量系统效率的

操作系统概念学习笔记 8 进程

操作系统概念学习笔记 8 进程 概念 进程 进程是执行中的程序,这只是非正式的说法.进程不只是程序代码,程序代码称为文本段(代码段),还包括当前活动,通过程序计数器的值和处理器寄存器的内容来表示.此外,进程还包括进程堆栈段(临时数据.函数参数.局部变量.地址)和数据段(包括全全局变量.还可能包括堆(leap),是在进程运行期间动态分配内存. 程序是被动实体,如存储在磁盘上包含一系列指令的文件内容(可执行文件),而进程是一个活动实体,他有一个程序计数器来表示下一个要执行的命令和相关资源集合. 虽然

操作系统概念学习笔记 16 内存管理(二) 段页

操作系统概念学习笔记 16 内存管理 (二) 分页(paging) 分页(paging)内存管理方案允许进程的物理地址空间可以使非连续的.分页避免了将不同大小的内存块匹配到交换空间上(前面叙述的内存管理方案都有这个问题,当位于内存中的代码和数据需要换出时,必须现在备份存储上找到空间,这是问题就产生了.备份存储也有前面所述的与内存相关的碎片问题,只不过访问更慢). 传统上,分页支持一直是由硬件来处理的.最近的设计是通过将硬件和操作系统相配合来实现分页. 基本方法 实现分页的基本方法设计将物理内存分

操作系统概念学习笔记 15 内存管理(一)

操作系统概念学习笔记 15 内存管理(一) 背景 内存是现代计算机运行的中心.内存有很大一组字或字节组成,每个字或字节都有它们自己的地址.CPU根据程序计数器(PC)的值从内存中提取指令,这些指令可能会引起进一步对特定内存地址的读取和写入. 一个典型指令执行周期,首先从内存中读取指令.接着该指令被解码,且可能需要从内存中读取操作数.在指令对操作数执行后,其结果可能被存回到内存.内存单元只看到地址流,而并不直到这些地址是如何产生的(由指令计数器.索引.间接寻址.实地址等)或它们是什么地址(指令或数

操作系统课堂笔记(1)概述

1 . 计算机系统的概观 (1)手动.机械和电动计算机 中国:算筹.算珠. 1617年 苏格兰:计算尺. 1624年 海德堡大学:第一台具有四则运算功能的计算器. 1673年 莱布尼茨 建造了一台具有四则运算功能的机械计算机器. 1884年 美国工程师 赫尔曼·霍勒雷斯 制造了第一台电动计算机. ... (2)数字电子计算机       第一代:电子管计算机 第二代:晶体管计算机 第三代:集成电路计算机 第四代:大规模集成电路计算机(1971年以后) (3)电子计算机分类: 模拟计算机: 优点:

【操作系统】2、进程管理与死锁

1.进程 所谓进程,可以认为是一个程序及其正在运行的过程.相对来说,程序是一个静态的概念,而进程是一个动态的概念,更加强调程序运行的过程和状态.一般一个进程至少要包含几个内容,即程序代码.程序处理的数据.CPU寄存器的值.堆和栈以及进程所占用的系统资源. 进程的概念所以和程序相区分,关键在于进程具有三个特性,即动态性.独立性和并发性.所谓动态性,指的是进程表示动态执行的程序,每时每刻进程的状态都是在变化的,例如CPU寄存器的值.堆栈中的数据等.所谓独立性,指的是进程和进程之间一般不会相互影响,每

操作系统课堂笔记(2)操作系统的硬件环境之存储系统

支持OS运行硬件环境的一个重要方面: 作业必须把它的程序和数据存放在内存中才能运行 操作系统本身也要存放在内存中并运行 多道程系统中,若干个程序和相关的数据要放入内存 →→操作系统要管理.保护程序和数据,使它们不至于受到破坏 1.存储器的层次结构 存储系统设计三个问题:          容量.速度和成本 存储访问局部性原理 提高存储系统性能的关键:     程序存储访问局部性原理 程序执行时,有很多循环和子程序调用,一旦进入这样的程序段,就会重复存取相同的指令集合 对数据存取也有局部性,在较短

操作系统课堂笔记(7)设备管理

1.设备管理的任务和功能 设备管理的任务 (1)按用户需求提出的要求接入外部设备,系统按一定算法分配和管理控制,而用户不必关心设备的实际地址和控制指令: (2)尽量提高输入输出设备的利用率,例如发挥主机与外设以及外设与外设之间的真正并行工作能力. 设备管理的功能 (1)分配设备 (2)控制和实现真正的输入输出操作 (3)对输入输出缓冲区进行管理 (4)在一些较大系统中实现虚拟设备技术 2.外部设备分类 (1)按系统和用户分:系统设备.用户设备 (2)按输入输出传送方式分(UNIX或Linux操作

操作系统课堂笔记(3)SPOOLing系统工作原理与系统调用

SPOOLing系统工作原理 含义: 同时的外围设备联机操作(假脱机技术) 包括: –输入程序模块(预输入进程) –作业调度程序(作业调度进程) –作业控制程序(作业控制进程) –输出程序模块(缓输出进程) •作业执行前用慢速设备将作业预先输入到后援存储器(如磁盘.磁鼓,称为输入井)中,称为预输入 •作业运行中,当要使用数据时,直接从输入井中取出 •作业运行中,需要输出数据时,不必直接启动外部设备输出数据,只需将这些数据写入输出井中 •作业全部运行完毕,再从外部设备输出全部数据和信息,称为缓输出