同步和互斥的区别_

合集下载

操作系统同步和互斥

操作系统同步和互斥

操作系统同步和互斥操作系统中的进程之间的关系只有两种:同步与互斥。

下面由店铺为大家整理了操作系统的同步和互斥的相关知识,希望对大家有帮助!操作系统同步和互斥1.进程同步进程同步也是进程之间直接的制约关系,是为完成某种任务而建立的两个或多个线程,这个线程需要在某些位置上协调他们的工作次序而等待、传递信息所产生的制约关系。

进程间的直接制约关系来源于他们之间的合作。

比如说进程A需要从缓冲区读取进程B产生的信息,当缓冲区为空时,进程B因为读取不到信息而被阻塞。

而当进程A产生信息放入缓冲区时,进程B才会被唤醒。

2.进程互斥进程互斥是进程之间的间接制约关系。

当一个进程进入临界区使用临界资源时,另一个进程必须等待。

只有当使用临界资源的进程退出临界区后,这个进程才会解除阻塞状态。

比如进程B需要访问打印机,但此时进程A占有了打印机,进程B会被阻塞,直到进程A释放了打印机资源,进程B才可以继续执行。

扩展:临界资源在操作系统中,进程是占有资源的最小单位(线程可以访问其所在进程内的所有资源,但线程本身并不占有资源或仅仅占有一点必须资源)。

但对于某些资源来说,其在同一时间只能被一个进程所占用。

这些一次只能被一个进程所占用的资源就是所谓的临界资源。

典型的临界资源比如物理上的打印机,或是存在硬盘或内存中被多个进程所共享的一些变量和数据等(如果这类资源不被看成临界资源加以保护,那么很有可能造成丢数据的问题)。

对于临界资源的访问,必须是互诉进行。

也就是当临界资源被占用时,另一个申请临界资源的进程会被阻塞,直到其所申请的临界资源被释放。

而进程内访问临界资源的代码被成为临界区。

对于临界区的访问过程分为四个部分:1.进入区:查看临界区是否可访问,如果可以访问,则转到步骤二,否则进程会被阻塞2.临界区:在临界区做操作3.退出区:清除临界区被占用的标志4.剩余区:进程与临界区不相关部分的代码临界资源使用规则:忙则等待、优先等待、空闲让进、让权等待(在临界区的进程,不能在临界区内长时间处于事件等待,必须在一定时间退出临界区)。

操作系统第4章答案(上)

操作系统第4章答案(上)

赵盈盈 93 第四章作业上1. 解释名词:程序的顺序执行;程序的并发执行。

答:程序的顺序执行:一个具有独立功能的程序独占cpu直到得到最终结果的进程。

程序的并发执行:两个或两个以上程序在计算机系统中同时处于一开始执行且尚未结束的状态。

2. 什么是进程进程与程序的主要区别是什么答:进程:进程是具有独立功能的程序关于某个数据集合的一次运行活动,进程是系统进行资源分配和调度的独立单元。

进程和程序的区别:●程序是静态的,进程是动态的●进程有程序和数据两部分组成●进程具有生命周期,有诞生和消亡,是短暂的;而程序是相对长久的●进程能更真实的描述并发,而程序不行。

●一个进程可以对应多个程序。

一个程序可以对应多个进程●进程可以创建其他进程,程序不能3. 图1所示,设一誊抄程序,将f中记录序列正确誊抄到g中,这一程序由get、copy、put三个程序段组成,它们分别负责获得记录、复制记录、输出记录。

请指出这三个程序段对f中的m个记录进行处理时各种操作的先后次序,并画出誊抄此记录序列的先后次序图(假设f中有1,2,…,m个记录,s,t为设置在主存中的软件缓冲区,每次只能装一个记录)。

图1 改进后的誊抄过程答:4. 进程有哪几种基本状态试画出进程状态变迁图,并标明发生变迁的可能原因。

答:进程基本状态:运行、就绪、等待就绪到运行:调度程序选择一个新的进程运行 运行到就绪:运行进程用完了时间片或运行进程被中断,因为一个高优先级的进程处于就绪状态 运行到等待:OS 尚未完成服务 或对一资源的访问尚不能进行或初始化I/O 且必须等待结果 或等待某一进程提供输入(IPC ) 等待到就绪:当所有的事件发生时5. 什么是进程控制块它有什么作用答:PCB :为了便于系统控制和描述进程的活动过程,在操作系统核心中为进程定义的一个专门的数据结构。

作用:系统用PCB 来控制和管理进程的调用,PCB 也是系统感知进程存在的唯一标志GCGPCP G…CP6. n 个并发进程共用一个公共变量Q ,写出用信号灯的p 、v 操作实现n 个进程互斥时的程序描述,并说明信号灯值的取值范围。

进程之间同步和互斥的区别和联系

进程之间同步和互斥的区别和联系

进程之间同步和互斥的区别和联系
1.同步是指多个进程之间按照一定的顺序执行,互斥是指多个进程之间不能同时访问共享资源。

2. 同步是为了保证进程之间执行顺序的正确性,互斥是为了避免多个进程同时访问共享资源导致数据不一致。

3. 同步机制可以通过信号量、事件、条件变量等方式实现,互斥机制通常使用互斥锁来实现。

联系:
1. 在多进程环境中,同步和互斥是相辅相成的,两者都是为了保证程序的正确性和安全性。

2. 互斥是同步的一种特殊形式,它是为了保证同步进行而采取的措施。

3. 同步和互斥都需要协调多个进程之间的关系,从而达到正确、高效地完成任务的目的。

总之,同步和互斥是操作系统中两个重要的概念,它们的区别在于同步是为了保证执行顺序的正确性,互斥是为了避免多个进程同时访问共享资源导致数据不一致,但是它们在多进程环境中都是相辅相成的。

- 1 -。

详解进程同步与互斥机制

详解进程同步与互斥机制

详解进程同步与互斥机制⽬录⼀、什么是进程同步⼆、什么是进程互斥三、常见的进程同步与互斥机制⼀、什么是进程同步在多道批处理系统中,多个进程是可以并发执⾏的,但由于系统的资源有限,进程的执⾏不是⼀贯到底的,⽽是⾛⾛停停,以不可预知的速度向前推进,这就是进程的异步性。

那么,进程的异步性会带来什么问题呢?举个例⼦,如果有 A、B 两个进程分别负责读和写数据的操作,这两个线程是相互合作、相互依赖的。

那么写数据应该发⽣在读数据之前。

⽽实际上,由于异步性的存在,可能会发⽣先读后写的情况,⽽此时由于缓冲区还没有被写⼊数据,读进程 A 没有数据可读,因此读进程 A 被阻塞。

进程同步(synchronization)就是⽤来解决这个问题的。

从上⾯的例⼦我们能看出,⼀个进程的执⾏可能影响到另⼀个进程的执⾏,所谓进程同步就是指协调这些完成某个共同任务的并发线程,在某些位置上指定线程的先后执⾏次序、传递信号或消息。

再举个⽣活中的进程同步的例⼦,你想要喝热⽔,于是你打了⼀壶⽔开始烧,在这壶⽔烧开之前,你只能⼀直等着,⽔烧开之后⽔壶⾃然会发⽣响声提醒你来喝⽔,于是你就可以喝⽔了。

就是说⽔烧开这个事情必须发⽣在你喝⽔之前。

注意不要把进程同步和进程调度搞混了:进程调度是为了最⼤程度的利⽤ CPU 资源,选⽤合适的算法调度就绪队列中的进程。

进程同步是为了协调⼀些进程以完成某个任务,⽐如读和写,你肯定先写后读,不能先读后写吧,这就是进程同步做的事情了,指定这些进程的先后执⾏次序使得某个任务能够顺利完成。

⼆、什么是进程互斥同样的,也是因为进程的并发性,并发执⾏的线程不可避免地需要共享⼀些系统资源,⽐如内存、打印机、摄像头等。

举个例⼦:我们去学校打印店打印论⽂,你按下了 WPS 的 “打印” 选项,于是打印机开始⼯作。

你的论⽂打印到⼀半时,另⼀位同学按下了 Word 的 “打印” 按钮,开始打印他⾃⼰的论⽂。

想象⼀下如果两个进程可以随意的、并发的共享打印机资源,会发⽣什么情况?显然,两个进程并发运⾏,导致打印机设备交替的收到 WPS 和 Word 两个进程发来的打印请求,结果两篇论⽂的内容混杂在⼀起了。

操作系统原理课后习题答案

操作系统原理课后习题答案

操作系统原理作业第1章1-2 批处理系统和分时系统各有什么特点?为什么分时系统的响应比较快?答:在批处理系统中操作人员将作业成批装入计算机并由计算机管理运行,在程序的运行期间用户不能干预,因此批处理系统的特点是:用户脱机使用计算机,作业成批处理,系统内多道程序并发执行以及交互能力差。

在分时系统中不同用户通过各自的终端以交互方式共同使用一台计算机,计算机以“分时”的方法轮流为每个用户服务。

分时系统的主要特点是:多个用户同时使用计算机的同时性,人机问答方式的交互性,每个用户独立使用计算机的独占性以及系统响应的及时性。

分时系统一般采用时间片轮转的方法使一台计算机同时为多个终端用户服务,因此分时系统的响应比较快。

1-4什么是多道程序设计技术?试述多道程序运行的特征。

答:多道程序设计技术是指同时把多个作业(程序)放入内存并允许它们交替执行和共享系统中的各类资源;当一道程序因某种原因(如I/O 请求)而暂停执行时,CPU 立即转去执行另一道程序。

多道程序运行具有如下特征:多道计算机内存中同时存放几道相互独立的程序。

宏观上并行:同时进入系统的几道程序都处于运行过程中,它们先后开始了各自的运行但都未运行完毕。

微观上串行:从微观上看内存中的多道程序轮流或分时地占有处理机,交替执行。

1-6操作系统的主要特性是什么?为什么会有这样的特性?答:并发性,共享性,异步性,虚拟性,这些特性保证了计算机能准确的运行,得出想要的结果。

1-7(1)工作情况如图。

(2)CPU有空闲等待,它发生在100 ms150 ms时间段内,此时间段内程序A 与程序B都在进行I/O操作。

(3)程序A无等待现象,程序B在0 ms50 ms时间段与180 ms200 ms时间段内有等待现象。

第2章2-1 什么是操作系统虚拟机?答:在裸机上配置了操作系统程序后就构成了操作系统虚拟机2-3 什么是处理机的态?为什么要区分处理机的态?答:处理机的态,就是处理机当前处于何种状态,正在执行哪类程序。

05进程管理三互斥和同步一

05进程管理三互斥和同步一

23
记录型信号量和wait、signal原语
• 信号量是一个确定的二元组(value, L), value 是一个具有非负初值的整型变量,L 是 一个初始状态为空的队列。 • value代表资源的实体。在实际应用中应准确地说
明s的意义和初值,每个信号量都有一个队列,其初 始状态为空。 – 初始化指定一个非负整数值,表示空闲资源总数 (又称为"资源信号量")--若为非负值表示当前 的空闲资源数,若为负值其绝对值表示当前等待 临界区的进程数
17
2.3.2 信号量(semaphore)
二、利用整型信号量实现互斥
Begin Repeat … wait(mutex); Critical section Signal(mutex) Remainder section Until false; end
while mutex≤0 do no-op mutex:=mutex-1. mutex:=mutex+1
20
a S2
d S4 S5
S1 b S3
c
g f e S6
21
利用信号量来描述前趋关系---例2 var a,b,c,d,e,f,g:semaphore:=0,0,0,0,0,0; begin prabegin begim s1;signal(a);signal(b);end; begin wait(a);s2;signal(c);signal(d);end; begin wait(b);s3;signal(g);end; begin wait(c);s4;signal(e);end; begin wait(d);s5;signal(f);end; begin wait(e); wait(f); wait(g);s6;end. parend end.

第二章_进程管理习题修改

第二章_进程管理习题修改

一、选择题1.在进程管理中,当 C 时,进程从阻塞状态变为就绪状态。

A.进程被进程调度程序选中B.等待某一事件C.等待的事件发生D.时间片用完2.分配到必要的资源并获得处理机时的进程状态是 B 。

A.就绪状态B.执行状态C.阻塞状态D.撤消状态3.进程的三个基本状态在一定条件下可以相互转化,进程由就绪状态变为运行状态的条件是 D 。

A.时间片用完B.等待某事件发生C.等待的某事件已发生D.被进程调度程序选中4.进程的三个基本状态在一定条件下可以相互转化,进程由运行状态变为阻塞状态的条件是 B 。

A.时间片用完B.等待某事件发生C.等待的某事件已发生D.被进程调度程序选中5.下列的进程状态变化中, C 变化是不可能发生的。

A.运行(就绪B.就绪(运行C.等待(运行D.等待(就绪6.一个运行的进程用完了分配给它的时间片后,它的状态变为 A 。

A.就绪B.等待C.运行D.由用户自己确定7.操作系统通过 B 对进程进行管理。

A. JCBB. PCBC. DCTD. CHCT8.一个进程被唤醒意味着 D 。

A. 该进程重新占有了CPUB. 它的优先权变为最大C. 其PCB移至等待队列队首D. 进程变为就绪状态9.多道程序环境下,操作系统分配资源以C 为基本单位。

A. 程序B. 指令C. 进程D. 作业10. 从下面的叙述中选出一条正确的叙述:(1)操作系统的一个重要概念是进程,不同的进程所执行的代码也不同。

(2)操作系统通过PCB来控制和管理进程,用户进程可从PCB中读出与本身运行状态相关的信息。

(3)当进程由执行状态变为就绪状态时,CPU现场信息必须被保存在PCB中。

(4)当进程申请CPU得不到满足时,它将处于阻塞状态。

(5)进程是可与其他程序并发执行的程序在一个数据集合上的运行过程,所以程序段是进程存在的唯一标志。

11. 从下面的叙述中选出4条正确的叙述:(1)一个进程的状态发生变化总会引起其它一些进程的状态发生变化。

(完整版)操作系统第4章答案(上)

(完整版)操作系统第4章答案(上)

赵盈盈2011210593 第四章作业上1.解释名词:程序的顺序执行;程序的并发执行。

答:程序的顺序执行:一个具有独立功能的程序独占 cpu 直到得到最终结果的进程。

程序的并发执行:两个或两个以上程序在计算机系统中同时处于一开始执行且尚未结束的状态。

2.什么是进程?进程与程序的主要区别是什么?答:进程:进程是具有独立功能的程序关于某个数据集合的一次运行活动,进程是系统进行资源分配和调度的独立单元。

进程和程序的区别:●程序是静态的,进程是动态的●进程有程序和数据两部分组成●进程具有生命周期,有诞生和消亡,是短暂的;而程序是相对长久的●进程能更真实的描述并发,而程序不行。

●一个进程可以对应多个程序。

一个程序可以对应多个进程●进程可以创建其他进程,程序不能3.图1 所示,设一誊抄程序,将 f 中记录序列正确誊抄到 g 中,这一程序由get、copy、put 三个程序段组成,它们分别负责获得记录、复制记录、输出记录。

请指出这三个程序段对 f 中的m 个记录进行处理时各种操作的先后次序,并画出誊抄此记录序列的先后次序图(假设f 中有1,2,…,m 个记录,s,t 为设置在主存中的软件缓冲区,每次只能装一个记录)。

图1 改进后的誊抄过程答:PPG4.进程有哪几种基本状态?试画出进程状态变迁图,并标明发生变迁的可能原因。

答:进程基本状态:运行、就绪、等待就绪到运行:调度程序选择一个新的进程运行运行到就绪:运行进程用完了时间片或运行进程被中断,因为一个高优先级的进程处于就绪状态运行到等待:OS 尚未完成服务或对一资源的访问尚不能进行或初始化 I/O 且必须等待结果或等待某一进程提供输入(IPC)等待到就绪:当所有的事件发生时5.什么是进程控制块?它有什么作用?答:PCB:为了便于系统控制和描述进程的活动过程,在操作系统核心中为进程定义的一个专门的数据结构。

作用:系统用 PCB 来控制和管理进程的调用,PCB 也是系统感知进程存在的唯一标志S36. n 个并发进程共用一个公共变量 Q ,写出用信号灯的 p 、v 操作实现 n 个进程互斥时的程序描述,并说明信号灯值的取值范围。

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

同步和互斥的区别
信号量互斥量条件变量
同步和互斥
一、信号量:用于进程间通信(linux中用于线程)
独立于进程在两个进程中都要初始化,若一个已创建,则另一个获取可以执行多次v操作,然后再执行p操作
信号量的一些概念:
以下是信号灯(量)的一些概念:
信号灯与互斥锁和条件变量的主要不同在于”灯”的概念,灯亮则意味着资源可用,灯灭则意味着不可用。

如果说后两中同步方式侧重于”等待”操作,即资源不可用的话,信号灯机制则侧重于点灯,即告知资源可用;没有等待线程的解锁或激发条件都是没有意义的,而没有等待灯亮的线程的点灯操作则有效,且能保持灯亮状态。

当然,这样的操作原语也意味着更多的开销。

信号灯的应用除了灯亮/灯灭这种二元灯以外,也可以采用大于1的灯数,以表示资源数大于1,这时可以称之为多元灯。

二、互斥量:(用于在线程间的通信)
1、在一个进程中创建
三、信号量与互斥量的区别
1. 互斥量用于线程的互斥,信号量用于线程的同步。

这是互斥量和信号量的根本区别,也就是互斥和同步之间的区别。

互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。

但互斥无法限制访问者对资源的访问顺序,即访问是无序的。

同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。

在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。

少数情况是指可以允许多个访问者同时访问资源
以上区别是主要想记住的。

note:信号量可以用来实现互斥量的功能
2. 互斥量值只能为0/1,信号量值可以为非负整数。

也就是说,一个互斥量只能用于一个资源的互斥访问,它不能实现多个资源的多线程互斥问题。

信号量可以实现多个同类资源的多线程互斥和同步。

当信号量为单值信号量是,也可以完成一个资源的互斥访问。

3、互斥量的加锁和解锁必须由同一线程分别对应使用,信号量可以由一个线程释放,另一个线程得到。

4、作用域
信号量: 进程间或线程间(linux仅线程间)
互斥锁: 线程间
5、上锁时
信号量: 只要信号量的value大于0,其他线程就可以sem_wait(p操作-1)成功,成功后信号量的value减一。

若value值不大于0,则
sem_wait阻塞,直到sem_post(v操作+1)释放后value值加一
互斥锁: 只要被锁住,其他任何线程都不可以访问被保护的资源
成功后否则就阻塞
四、条件变量:(常与互斥锁一起使用)
互斥锁的一个明显缺点是它只有两种状态:锁定和非锁定.而条件变量通过允许线程阻塞和等待另一个线程发送信号的方法解决了互斥锁的不足,它常与互斥锁一起使用.使用时,条件变量被用来阻塞一个线程,当条件不满足时,线程往往解开相应的互斥锁并等待条件发生变化.一旦其他的某个线程改变了条件变量,它将通知相应的条件变量唤醒一个或多个正被此条件变量阻塞的线程.这些线程将重新锁定互斥锁并重新测试条件是否满足.条件变量的基本操作有以下两个:
触发条件:当条件变为true时;
等待条件:挂起线程直到其他线程触发条件.
注意:条件变量应该和互斥量配合使用,以避免出现条件竞争,一个线程预备等待一个条件变量,当它在真正进入等待之前,另一个线程恰好触发了该条件.
五、互斥量与条件变量之间的关系
1、互斥锁:保护临界资源同一时刻一个线程访问
只有一把锁,可用于锁多种临界资源
但同一时刻只能锁住一个临界资源(同一时刻只能一个进程访问)2、信号量:只是为了进程通信间保持同步
3、条件变量:不满足条件时,用wait函数阻塞其所在的线程,
满足某条件时,用wait函数唤醒阻塞的线程(因为防止wait函数操作中条件竞争,==》易产生死锁,所以经常与互斥锁一起使用)可以辅助互斥锁,弥补其不足
例子:kless0416 cond.c
Count 初始化为0 使AB中满足以下效果
A 线程count= count-1 = 0
B 线程count = count+1 =1
此时要用互斥锁防止同一时刻临界资源被两个线程访问,但是打印的结果可能是:A0 B1 ;A-1 B0
所以,要让两个线程在其中进行通信
A 检测到count == 0 则阻塞释放互斥锁,此时B(加锁)就可以运行,将count+1 = 1;然后通知A count!=0 了,你可以运行了,现在A可以运行了(前提是B已经释放了互斥锁,若没有,则等待B运行结束后释放了互斥锁之后,A就果断的运行了)。

相关文档
最新文档