第7章 进程的并发

合集下载

《操作系统》完整版教案1-6单元全

《操作系统》完整版教案1-6单元全
讲授法
启发式
多媒体
课件演示
思考
交流互动
记录笔记
问题引入
(1)可变分区存储管理;
讲授法
启发式
多媒体
课件演示
教师:提问
学生:讨论
知识讲解
知识点5:可变分区存储管理
讲授法
启发式
多媒体
课件演示
思考
交流互动
记录笔记
课堂
总结
8.存储管理基本功能;
2.连续存储管理方式
教师讲解
多媒体
Hale Waihona Puke 课件演示整理笔记引导创新
课后作业
教学内容
(1)页式存储管理;
重点:
(1)页式存储管理方式;
难点:
(1)页式存储管理方式
课后作业
1.习题一、二
2.习题三8
教学过程设计
存储管理(2)(2学时)
主要步骤
教学内容
教学方法
教学手段
师生活动
问题引入
(1)页式存储管理方式;
讲授法
启发式
多媒体
课件演示
教师:提问
学生:讨论
知识讲解
知识点1:页式存储管理方式;
课件演示
整理笔记
引导创新
课后作业
1.习题一、二
2.习题三2、3、4
教师讲授
多媒体
布置作业
提出要求
《操作系统》课程教学单元设计2
第7章:进程的并发(2)
授课教师:操作系统课程组
授课班级:
学时:2
教学条件
多媒体教室
教学素材
教材、课件、授课录像等
教学目标设计
知识目标:
(1)理解和掌握进程的同步知识;

计算机操作系统复习第二章分析

计算机操作系统复习第二章分析
6
(4)多道程序设计的实现解决的3个问题:存 储保护、程序浮动处理机的管理和调度、 系统资源的管理和调度。 (5)多道程序系统所必须解决的问题: 提出解决各种冲突的策略;协调并发活动的 关系;保证数据的一致性;实现数据的存 取控制。 2、进程 (1)定义与特征
7
3、进程的状态及转换: 4、进程控制块PCB:最重要的记录型数据结构, 记录了操作系统所需要的、用于描述进程情况及 控制进程运行所需要的全部信息。是使用一个在 多道程序环境下不能独立运行的程序,成为一个 能独立运行的基本单位,一个能与其他进程并发 执行的进程。 5、进程队列:就绪队列和等待队列,队列的入队 和出队。
15
一个运行进程必须具有的3种基本状态是(C ) A 就绪状态、挂起状态和执行状态 B 挂起状态、阻塞状态和执行状态 C 就绪状态、执行状态和阻塞状态 D 就绪状态、执行状态和终止状态
16
进程和程序的根本区别在于(A ) A 静态与动态特点 B 是不是被调入到内存中 C 是不是具有就绪、运行和等待三种状态 D 是不是占有处理器
1
(5)前趋图展示了语句间的一种执行顺序关系, 而进程图展示的是进程之间的家族关系。 (6)进程的基本特征是:动态性,并发性,独立 性,异步性和结构特征。
(7)程序的顺序执行通常是在单道程序的工作环 境中,具有运行结果可再现的特点。 (8)进程的基本状态有执行、就绪和阻塞。
(9)进程是动态的概念,而程序是静态的概念。
17
下面所列的进程的3种基本状态之间的转换不 正确的是 ( D) A 就绪状态→执行状态 B 执行状态→就绪状态 C 执行状态→阻塞状态 D 就绪状态→阻塞状态
18
操作系统是根据( B)来对并发执行的进程进行 控制和管理的。 A 进程的基本状态 B 进程控制块 C 多道程序设计 D 进程的优先权

操作系统习题第四章

操作系统习题第四章

第四章互斥、同步与通讯一、单项选择题1.一个正在访问临界资源的进程由于申请等待I/O操作而被中断时,__________.A.可以允许其他进程进入与该进程相关的临界区B.不允许其他进程进入任何临界区C. 可以允许其他就绪进程抢占处理器,继续运行D.不允许任何进程抢占处理器2.两个并发进程之间______A 一定存在互斥关系B 一定存在同步关系C 一定彼此独立无关D 可能存在同步或互斥关系3.为了使两个进程能同步运行,最少需要_______个信号量。

A 一B 二C 三D 四4.共享变量是指__________访问的变量。

A. 只能被系统进程B. 只能被多个进程互斥C. 只能被用户进程D. 可被多个进程5.临界区是指并发进程中访问共享变量的__________.A.管理信息 B.数据 C.信息存储 D.程序段6.设有三个进程共享一个资源,如果每次只允许一个进程使用该资源,则用PV操作管理时信号量S的可能取值是___________A.1,0,-1,-2B.2,0,-1,-2C.1,0,-1D.3,2,1,07.进程的并发执行是指若干个进程__________.A. 同时执行B. 在执行的时间上是重叠的C. 在执行的时间上是不可重叠的D. 共享系统资源8.在进程通信中,__________常用信件交换信息。

A.低级通信 B.高级通信 C.消息通信 D.管道通信9.实现进程同步时,每一个消息与一个信号量对应,进程_________可把不同的消息发送出去。

A.在同一信号量上调用P操作B.在不同信号量上调用P操作C.在同一信号量上调用V操作D.在不同信号量上调用V操作10._________是只能有P和V操作所改变的整形变量。

A.共享变量B.锁C.整型信号量D.记录型信号量11.在执行V操作时,当信号量的值_________时,应释放一个等待该信号量的进程。

A.大于0B.小于0C.大于等于0D.小于等于012.进程和程序的主要区别是__________.A.占用处理器和不占用处理器B.占用主存和不占用主存C.动态和静态D.连续执行和非连续执行13.有三个进程P1,P2,P3共享同一个程序段,而每次最多允许两个进程进入该程序段,则信号量S的初值为___________.A. 0B. 1C. 2D. 314.若P、V操作的信号量S初值为2,当前值为-1,则表示有_________等待进程。

第7章进程同步(含答案)

第7章进程同步(含答案)
4、若一个进程已进入临界区,其他欲进入临界区的进程必须(等待)。
5、用P、V操作管理临界区时,任何一个进程在进入临界区之前应调用(P)操作,退出临界区时应调用(V)操作。
6、在多道程序系统中,进程之间存在着的不同制约关系可以划分为两类:(同步)与(互斥)。(同步)指进程间具有一定逻辑关系;(互斥)是指进程间在使用共享资源方面的约束关系。
INT BUFFER-SIZE=N;
INT SF=0;/*BUFFER中是否有可取的信息*/
INT SE=N;/* BUFFER中是否有空位置以存放信息*/
MAIN()
{
GET()
COMPUTE()
}
4、桌上有一空盘,允许存放一只水果,爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。规定当盘空时一次只能放一只水果供吃者取出,请用P、V原语实现爸爸、儿子、女儿三个并发进程的同步。
{ int b2=0:/*表示进程S2是否可以开始执行*/
int b3=0:/*表示进程S3是否可以开始执行*/
int b4=0:/*表示进程S4是否可以开始执行*/
Main()
s1();
s2();
s3()
s4()
}
6、 读者/写者问题。有一数据区为多个进程所共享,假设一些进程只能对该数据区完成读操作(读者),而另一些进程只能对其完成写操作(写者),读者和写者要遵守以下的约束:
Int SF=0;/*信号量SF用于表示缓冲区中有无可供计算的信息。*/
Main()
{
get();
compute();}
3、**在视频通信系统中,由进程PA采集一帧图像信息并存入环形缓冲区buffer,进程PB从buffer中取一帧数据进行处理,假设buffer的大小为n,试用P、V操作实现PA和PB。(类似生产者-消费者)

第7章事务与并发控制

第7章事务与并发控制

7.2.1 并发控制需解决的问题
多个事务并发执行时,数据的不一致主要表现为:数据丢失更新、读“脏”数据、 不可重复读。
1.数据丢失更新 所谓丢失更新(Lost Update),是指两个或多个事务在并发执行的情况下,都对同 一数据项更新(即先读后改,再写入),从而导致后面的更新覆盖前面的更新。例如, 对于联网售票系统,设有两个事务T1,T2都要求访问数据项A,设事务T1,T2执行前A 的值为20,T1,T2的执行顺序如图7.2所示,当事务T1读得的值为20,T2读得的值也是 20;T1写入A的值为19,T2写入A的值也是19,显然这与事实不符,这是由于两个事务 并发地对同一数据写入而引起的,因此这种情况又称为写-写冲突。 2.读“脏”数据 读“脏”数据是由于一个事务正在读另一个更新事务尚未提交的数据引起的,这种 数据不一致的情况又称为读-写冲突。例如,对于如图7.3所示的两个并发执行的事务T1, T2,T2先读得A的值,T1读得A的值,修改并写入,然后T2读得T1修改后的A的值,T1 执行回滚操作,显然T2第二次读到的A的值是一个不存在的值,这是一个“脏”数据。 读“脏”数据是由读-写冲突引起的。
7.2.2 封锁
(4)意向锁 对于数据库中的数据对象,可用如图7.5所示的层次树表示。 意向锁表示一个事务为了访问数据库对象层次结构中的某些底层资源(如表中的元 组)而加共享锁或排他锁的意向。意向锁可以提高系统性能,因为DBMS仅在表级检查 意向锁就可确定事务是否可以安全地获取该表上的锁,而无须检查表中每个元组的锁来 确定事务是否可以锁定整个表。意向锁包括意向共享(IS)、意向排他(IX)及意向排 他共享(SIX)。
SIX 相容 不相容 不相容 不相容 不相容 不相容
X 不相容 不相容 不相容 不相容务T申请对数据对象A加锁时,若该数据对象上已加了锁,新加的锁必须 满足表7.2中锁的相容性。

各章课堂练习题

各章课堂练习题

一、填空题(每空1分,共18分)1、多道程序技术的引入能提高CPU的使用效率,这是因为发挥了与之间的并行工作的能力。

2、操作系统的特征包括并发性、、、。

3、Windows 95是一种类型的操作系统,UNIX是一种类型的操作系统。

4、从结构上讲,任一进程均由三部分组成,这三部分分别是、、。

5、现代操作系统中一般已有线程管理,此时,申请资源的基本单位是,CPU得到执行的基本单位是。

6、在一个单处理机的系统中,若有6个用户进程,在用户进程执行的某一时刻,处于就绪状态的用户进程最多有个,最少有个。

7、对信号量S值的改变只能通过操作进行,其物理意义:一个相当于申请资源,另一个相当于释放资源。

8、并发进程之间的基本关系式或。

其中是指进程之间的一种间接制约关系。

二、选择题(每小题2分,共28分)1、操作系统是管理(C )的软件。

A、计算机硬件B、计算机软件C、计算机资源D、用户信息2、操作系统提供了处理机管理、( A )管理、设备管理以及信息管理的软件。

A、存储器B、用户C、软件D、数据3、从用户的角度看,操作系统是(C )。

A、计算机资源的管理者B、计算机工程流程的组织者C、用户与计算机之间的接口D、由按层次结构组成的软件模块的集合4、该类操作系统管理的是一个由多台计算机组成的系统,互相之间无主次之分,相互协调,平衡系统的负载,且共享系统资源;程序由系统中的全部或者部分计算机协同执行。

( D )A、分时系统B、批处理系统C、分布式操作系统D、网络操作系统5、操作系统负责为用户和用户程序完成所有(C )的工作。

A、硬件无关和应用无关B、硬件相关和应用无关C、硬件无关和应用相关D、硬件相关和应用相关6、配置了操作系统的机器是一台比原来的物理机器功能更强的计算机,这样的计算机只是一台逻辑上的计算机,称为()计算机。

A、并行B、真实C、虚拟D、共享7、对进程的管理和控制使用()。

A、指令B、原语C、信号量D、信箱通信8、操作系统中引入进程的概念后并不能够()。

操作系统一至三章练习题目(student)

操作系统一至三章练习题目(student)

一、填空题1、操作系统通过来管理和控制进程。

2、代表进程生命周期的三种状态是、、。

3、操作系统把用户作业的空间划分成若干个大小相等的块,称为。

4、操作系统向用户提供了两类接口,一类是,另一类是。

5、多道程序设计的特点是多道、和。

6、进程调度的算法主要有四种:、、、。

7、目前认为逻辑文件有两种类型,即有结构的与无结构的。

8、把内存空间划分成与页大小相同的若干块,称为。

9、死锁的原因主要是、、。

10、一个进程要等待其合作伙伴发来消息,或者建立某个条件后再向前执行,这种制约合作关系称为进程的。

11、程序的顺序执行有两个重要的特点,即程序的和。

12、进程具有和两个重要属性。

13、为了实现多道程序设计,计算机系统在硬件方面必须提供两种支持,它们是和。

14、响应比高者优先算法综合考虑了作业的和。

15、虚拟存储器通常由和两级存储系统组成。

为了在一台特定的机器上执行程序,必须把映射到这台机器主存储器的空间上,这个过程称为。

16、进程的最基本的特征是和。

在UNIX系统中,可通过系统调用来创建进程,系统调用来实现进程的自我终止。

17、使用共享文件进行进程通信的方式被称为;而发送进程利用OS提供的发送命令,直接将格式化的信息发送给目标进程的通信方式则称为。

18、在用信号量实现对临界资源的互斥访问时,若信号量的初值为2,当前值为-1,表示有个进程等待使用该资源。

19、在段页式系统中,作业的地址空间是维的;如果没有快表,则每次从内存中获取数据都需要三次访问内存。

第一次从内存中取得,第二次从内存中取得,第三次从内存中取得。

20、、、,这三个部分组成了进程的实体。

21、可变分区管理的分配策略通常有、和。

22、多道程序设计是利用了和的并行工作能力来提高系统效率的。

23、批处理系统的基本特征是“批量”,它把提高作业的作为主要设计目标,同时也兼顾作业的。

24、在P,V操作中,信号量S的物理意义是当信号量S值大于零时表示;当信号量S值小于零时,其绝对值为。

操作系统一至三章练习题目(student)

操作系统一至三章练习题目(student)

一、填空题1、操作系统通过来管理和控制进程。

2、代表进程生命周期的三种状态是、、。

3、操作系统把用户作业的空间划分成若干个大小相等的块,称为。

4、操作系统向用户提供了两类接口,一类是,另一类是。

5、多道程序设计的特点是多道、和。

6、进程调度的算法主要有四种:、、、。

7、目前认为逻辑文件有两种类型,即有结构的与无结构的。

8、把内存空间划分成与页大小相同的若干块,称为。

9、死锁的原因主要是、、。

10、一个进程要等待其合作伙伴发来消息,或者建立某个条件后再向前执行,这种制约合作关系称为进程的。

11、程序的顺序执行有两个重要的特点,即程序的和。

12、进程具有和两个重要属性。

13、为了实现多道程序设计,计算机系统在硬件方面必须提供两种支持,它们是和。

14、响应比高者优先算法综合考虑了作业的和。

15、虚拟存储器通常由和两级存储系统组成。

为了在一台特定的机器上执行程序,必须把映射到这台机器主存储器的空间上,这个过程称为。

16、进程的最基本的特征是和。

在UNIX系统中,可通过系统调用来创建进程,系统调用来实现进程的自我终止。

17、使用共享文件进行进程通信的方式被称为;而发送进程利用OS提供的发送命令,直接将格式化的信息发送给目标进程的通信方式则称为。

18、在用信号量实现对临界资源的互斥访问时,若信号量的初值为2,当前值为-1,表示有个进程等待使用该资源。

19、在段页式系统中,作业的地址空间是维的;如果没有快表,则每次从内存中获取数据都需要三次访问内存。

第一次从内存中取得,第二次从内存中取得,第三次从内存中取得。

20、、、,这三个部分组成了进程的实体。

21、可变分区管理的分配策略通常有、和。

22、多道程序设计是利用了和的并行工作能力来提高系统效率的。

23、批处理系统的基本特征是“批量”,它把提高作业的作为主要设计目标,同时也兼顾作业的。

24、在P,V操作中,信号量S的物理意义是当信号量S值大于零时表示;当信号量S值小于零时,其绝对值为。

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



静态分配。对资源采用静态分配策略可防止死锁.所谓静 态分配是指进程必须在开始执行前就申请它所要的全部资 源,当得到了所需要的全部资源后才开始执行。显然,采 用静态分配资源后,进程在执行中不再申请资源,因而不 可能出现等待资源的情况,这种分配策略使四个必要条件 中的(2)和(4)不成立,也就不可能发生死锁。 按序分配。把系统所有的资源排一个顺序,规定任何一个 进程申请两个以上的资源时,总是先申请编号小的资源, 再申请编号大的资源。按这种策略分配资源时也不会发生 死锁,因为这种分配策略使四个必要条件中的(4)不成立。 剥夺式分配。这种分配策略是当一个进程申请资源得不到 满足时则可从另一个进程那里去抢夺。这种分配策略目前 只适用于对处理器和生存资源的分配,这种分配策略破坏 了四个必要条件中的(3),可防止死锁的发生。
semaphore S,SO,SE; S=1; SO=SE=0; void R() { int x; while(true) { 从输人设备读一个数; X=读入的数; P(S); B=X; if (B==奇数) { V(SO); } else V(SE); } }
void W1() { int y; while(true) { P(SO); y=B; V(S); 打印Y中数; } } void W2() { int Z; while(true) { P(SE); Z=B; V(S); 打印Z中数, } }

P操作和V操作可表示成 如下两个过程: semaphore S=1; void P() { S=S-1; if(s<0) W(S); };(P) void V() { S=S+1; if(S<=0) R(S); };(V)



(1)信息号S是一个特殊的 整型变量,信量号S的值描 述了可用资源的数量或等待 该资源的进程个数,当S≥0 时表示可用资源数;当S<0 时其绝对值|S|表示等待该资 源的进程数。 (2)W(S)表示将调用过 程的进程置成等待信号量S 的状态。 (3)R(S)表示释放一个 等待信号量S的进程。信号 量S的初值为0或1或其它整 数,它应在系统初始化时确 定。
int count; semaphore S; void P2() S=1; { void P1() int R2; { while(true) while(true) { { int R1; P(S); P(S); R2=count; R1=count; R2=R2-1; R1=R1+1; count=R2; count=R1; V(S); V(S); } } }
第7章 进程的并发
进程的PV操作 7.2 进程的互斥 7.3 进程的同步 7.4 死锁 7.5 进程通信
7.1
本章目标
理解与掌握进程的临界区、PV操作的基本 知识。 理解与掌握进程的互斥与同步的基本知识。 理解与掌握进程通信的信箱的基本知识。

7.1 进程的PV操作
7.1.1 进程的并发性 7.1.2 临界区和临界资源 7.1.3 PV操作
void consumer (int j)(j=1,2,…,r) { while(true) { P(SG); P(S); take a product from B[t]; t=(t+1)mod n; V(SP); V(S); consume; } }
例4:假定有三个进程R、W1、W2共享一个缓冲器B,而B中 每次只能存放一个数。当缓冲器中无数时,进程R可以从输 入设备上读入数存放到缓冲器B中。若存放到缓冲器中的是 奇数,则允许进程W1将其取出打印;若存放到缓冲器中的 是偶数,则允许进程W2将其取出打印。同时规定:进程R必 须等缓冲器中的数被取出打印后才能再存放一个数;进程 W1或W2对每次存入缓冲器中的数只能打印一次;W1和W2 都不能从空的缓冲器中取数。写出这三个并发进程能正确工 作的程序。 分析进程间制约关系,定义信号量: S:表示是否可以把数存入缓冲器,由于缓冲器中每次只 能放一个数,所以它的初值取为1。 SO:表示缓冲器中是否有奇数,初值为0,表示无奇数。 SE:表示缓冲器中是否有偶数,初值为0,表示无偶数。
7.2 进程的互斥
进程的互斥是指:当有若干个进程都要使用某一共享资源 时,任何时刻最多只允许一个进程去使用,其它要使用该 资源的进程必须等待,直到占用资源者释放了该资源。 利用P-V操作实现互斥: A进程 ……. p(s) 临界区 v(s) …….
B进程 …….. p(s) 临界区 v(s) …….
7.1.3 PV操作
PV操作是由两个操作P操作和V操作组成。这两个操作是 两个不可中断的过程,它们在屏蔽中断的情况下连续执 行。把不可中断的过程称作原语,于是P操作和V操作也 可称为P操作原语和V操作原语简称PV操作。PV操作是 对信号量进行操作,它们的定义如下: P操作P(S)将信号量S减去1,若S<0则调用P(S) 的进程被置成等待信号量S的状态。 V操作V(S):将信号量S加1,若S≤0,则释放一个 等待信号量S的进程。

定义两个信号量: SP:表示是否可以把物品存入缓冲器,由于缓冲器中只 能放一件物品,所以SP的初值取为1。 SG;表示缓冲器中是否存有物品,显然,它的初值应该 为0,表示还没有物品。 integer Buffer; void consumer() semaphore SP,SG; { SP=1;SG=0; while(true) void producer() { { P(SG); while(true) take a product; { produce a product; V(SP); P(SP); consume; Buffer=product; } V(SG); } } }
例3:再进一步讨论m个生产者和r个消费者怎样共享容量为n的 缓冲器。
int B[n]; int k,t; Semphore S,SP,SG;k=0;t=0; SP=n;SG=0;S=1; void produceri(int i)(i=1,2,……m) { while(true) { produce a product; P(SP); P(S); B[k]=product; k:=(k+1) mod n; V(SG); V(S); } }
7.1.2 临界区和临界资源
1.临界资源 一次仅允许一个进程使用的资源称为临界资源。 2.临界区 每个进程中访问临界资源的那段程序称为临界区。 3.与时间有关的错误 4. 临界区的管理要求: ① 一次至多一个进程能够进人临界区,当有进程在临界区 执行时,其它想进人临界区执行的进程必须等待; ② 不能让一个进程无限制地在临界区执行,即任何一个进 人临界区的进程必须在有限的时间内退出临界区; ③ 不能强迫一个进程无限地等待进入它的临界区,即有进 程退出临界区时应让一个等待进入临界区的进程进入它的 临界区执行。 空则让进、忙则等待、等则有限、等则让权。
在7.1的第一个例子中的 两个并发进程都要使用共 享的计数器count,从分 析中看到,只有当一个进 程不在使用count时另一 个进程再去使用,才不会 出错.如果它们交叉地使 用count则会现与时间有 关的错误。为了保证两个 进程互斥地使用计数器 count,可以用PV操作来 管理。定义一个信号量S 的初值为1,把两个并发 进程的程序改写成如下:

7.1.1 进程的并发性
在多道程序设计的系统中,若干个作业可以同时执行, 而每一个作业又需要有多个进程的协作来完成。因此,系统 中会同时存在许多进程,在单处理器的情况下,这些进程轮 流地占用处理器.即一个进程的工作没有全部完成之前,另 一个进程就可开始工作,我们说这些可同时执行的进程具有 并发性,并且把可同时执行的进程称为并发进程。 I1 I2 C1 I3 C2 P1 I4 C3 P2 C4 P3 P4
例如,某游乐场设置了一个自动计数系统,用一个计数器 count指示在场的人数,。当有1人进人时,进程P1实现计数 加1,当退出1人时,进程P2实现计数减1。假定某时刻 的计数值count=n,这时有一个人要进入,正好另一个人要 退出,于是进程P1和P2都要执行。那么各自完成了 count+1和count-1的工作后,计数器的值为多少?
7.4.2 死锁的防止
1.出现死锁的四个必要条件: ① 互斥使用资源:每一个资源每次只能给一个进程使用。
② 占有且等待资源:一个进程申请资源得不到满足时处于
等待资源的状态,且不释放已占资源。 ③ 非抢夺式分配:任何一个进程不能抢夺另一个进程所占 的资源,即已被占用的资源只能由占用进程自己来释放。 ④ 循环等待资源:存在一组进程,其中每一个进程分别等 待另一个进程所占用的资源。 2.采用一定的资源分配策略破坏这四个必要条件中的一个条 件,则死锁就可防止。
count值 n
占用CPU的进程
执行的操 作
count值
P2
p2被打断,由P1 占用CPU并 运行到结束
R2=count R2=R2-1
R1=count R1=R1+1 count=R1
n
n+1
n-1 n+1
P2继续运行
count=R2
n-1
这两个进程的执行次序对结果是有影响的,关键是它们涉及到共享变量 count,且两者交替访问了count,在不同的时间里访问count,就可能 使count的值不同。所以,造成计数值不正确的因素是与进程被打断的 时间和能占用处理的时间有关,由于这种原因造成的错误称为“与时间 有关的错误”。
相关文档
最新文档