第六章 并发进程

合集下载

操作系统慕课版第六章

操作系统慕课版第六章

操作系统慕课版第六章首先,第六章介绍了进程的概念和特征。

进程是程序在执行过程中的实体,它包括了程序的代码、数据和执行状态等信息。

进程具有独立性、动态性和并发性等特征。

独立性指的是每个进程都拥有独立的地址空间,不会相互干扰;动态性指的是进程的创建、执行和终止都是动态的过程;并发性指的是多个进程可以同时执行,通过时间片轮转等调度算法进行切换。

其次,第六章介绍了进程的状态和状态转换。

进程可以处于就绪、执行和阻塞三种状态之一。

就绪状态表示进程已经具备执行的条件,等待系统调度执行;执行状态表示进程正在执行指令;阻塞状态表示进程由于等待某些事件而暂时无法执行。

进程在不同状态之间的转换是由操作系统进行调度和管理的。

第三,第六章介绍了进程的创建和终止。

进程的创建是通过fork()系统调用来实现的,它会创建一个与父进程相同的子进程,但是子进程有自己独立的地址空间。

进程的终止可以通过exit()系统调用来实现,它会释放进程所占用的资源,并通知父进程。

此外,第六章还介绍了进程的执行顺序和进程控制块等相关内容。

第四,第六章介绍了进程调度的算法和策略。

进程调度是操作系统中非常重要的一项功能,它决定了进程的执行顺序和分配时间片的方式。

常见的进程调度算法有先来先服务(FCFS)、短作业优先(SJF)、最高优先级调度(HPF)、时间片轮转调度(RR)等。

不同的调度算法有不同的优缺点,可以根据实际情况选择合适的调度策略。

第五,第六章还介绍了进程同步和互斥的概念。

在多进程环境中,进程之间可能会共享资源,为了避免竞争条件和死锁等问题,需要进行进程同步和互斥的操作。

常见的同步和互斥机制有信号量、互斥锁、条件变量等。

这些机制可以保证进程之间的有序执行和资源的合理分配。

总结起来,第六章主要介绍了进程管理的相关内容,包括进程的概念和特征、进程的状态和状态转换、进程的创建和终止、进程调度的算法和策略,以及进程同步和互斥的概念。

通过学习这些内容,我们可以更好地理解和掌握操作系统中的进程管理机制,提高系统的性能和资源利用率。

“操作系统概论”习题解答之并发进程

“操作系统概论”习题解答之并发进程

“操作系统概论”习题解答之并发进程第7章习题解答1.什么叫并发进程?答:在多道程序设计系统中,作为单个作业可以同时执行,而每一个作业又需要有多个进程的协作来完成。

因此,系统会同时存在着许多进程,在单处理器的情况下,这些进程轮流的占用处理器,即一个进程的工作没有全部完成之前,另一个进程就开始工作,我们说这些可同时执行的进程具有并发性,并且把可同时执行的进程称为“并发进程”。

2.临界区是怎样定义?对临界区的管理应符合哪些要求?答:并发进程中与共享变量有关的程序段称为“临界区”。

对若干个并发进程共享某一变量的相关临界区得管理有三点要求:①一次至多一个进程能够进入临界区,当有进程在临界区执行时,其他想进入临界区执行的进程必须等待。

②不能让一个进程无限制的在临界区执行,即任何一个进入临界区的进程必须有限的时间内退出临界区。

③不能强迫一个进程无限期等待键入它的临界区,即有进程退出临界区时应让一个等待进入临界区的进程进入它的临界区执行。

3.采用PV操作作为同步机构时,假定与某共享变量相关的信号量S的值可在[-1,l]之间,问S的初值是哪个值?当S=-1,S=0,S=l时它们各自的物理含义是什么?答:S的初值是 1.S=-l,表示有一个进程在等待进入临界区执行。

S=0,表示已有一个进程在临界区执行,这时若有进程想进入临界区则必须等待。

S=l,表示无进程在临界区执行,若有进程想进入临界区则可以立即进入。

4.A、B两个火车站之间是单轨连接的,现有许多列车同时到A站,须经A再到达B站,列车出B站后又可分路行驶(如图7-2)为保证行车安全,请你当调度时,你将如何调度列车?请你用PV操作为工具设计一个能实现你的调度方案的自动调度系统。

答:当A、B两站之间无列车停驶时,可让到达A站的一列车进人A、B站之间行驶。

当A石站之间有列车在行驶时,则到达A站者必须在站外等待。

当有列车到达B站后,让等在A站外的一列车进入。

用一个信号量S来控制到达A站的列车能否进入单轨道行驶,S的初始值为l.列车到达A站后,先执行P(S),若无列车在A、B站之间行驶,则执行P(S)后立即进人单轨道行驶,到达B站后,执行V(S),可释放一个等待进入的列车进入行驶。

操作系统6处理机管理习题

操作系统6处理机管理习题

第六章处理器管理练习题(一)单项选择题1.多道程序设计系统中,让多个计算问题同时装入计算机系统的主存储器( )。

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.( )是完成操作系统功能的进程。

A.用户进程B.系统进程C.并发进程D.编译进程7.可再入程序必须是纯代码,在执行中( )。

A.可以随意改变B.计算结果相同C.自身不改变D.要求输入相同的数据8.已经获得除( )以外所有运行所需资源的进程处于就绪状态。

A主存储器B.打印机C.CPU D.磁盘空间9.在一个单处理器系统中,处于运行态的进程( )。

A.可以有多个B.不能被打断C.只有一个D.不能请求系统调用10.对于一个单处理器系统来说,允许若干进程同时执行,轮流占用处理器.称它们为()的。

A.顺序执行B.同时执行C.并行执行D.并发执行11.操作系统根据( )控制和管理进程,它是进程存在的标志。

A.程序状态字B.进程控制块C.中断寄存器D.中断装置12.若干个等待占有CPU并运行的进程按一定次序链接起来的队列为( )。

A.运行队列B.后备队列C.等待队列D.就绪队列13.用户从终端上输入一条命令,即产生了( )。

A.程序性中断事件B.外部中断事件C.输入输出中断事件D.自愿性中断事件14.( )的断点是确定的。

A.硬件故障中断B.自愿性中断C.程序性中断D.外部中断15.自愿性中断事件是由( )引起的。

操作系统第六章练习题

操作系统第六章练习题

操作系统第六章练习题一、选择题1. 在操作系统中,下列关于进程状态的描述,错误的是()。

A. 运行态是指进程正在占用CPUB. 阻塞态是指进程因等待某事件而暂时停止运行C. 就绪态是指进程已经具备运行条件,等待CPU调度D. 空闲态是指进程已经执行完毕,等待被系统回收2. 在操作系统中,下列关于进程调度算法的描述,正确的是()。

A. 先来先服务(FCFS)调度算法可能导致饥饿现象B. 短作业优先(SJF)调度算法是非抢占式的C. 优先级调度算法中,优先级高的进程一定能立即获得CPUD. 时间片轮转调度算法适用于分时系统3. 在操作系统中,下列关于进程同步与互斥的描述,错误的是()。

A. 临界区是指进程中访问共享资源的代码段B. 信号量是一种用于实现进程同步与互斥的机制C. Peterson算法可以保证两个进程互斥进入临界区D. 生产者消费者问题可以通过信号量机制解决二、填空题1. 在操作系统中,进程的五大状态包括:____、____、____、____和____。

2. 在进程同步与互斥中,信号量的值表示了____资源的使用情况。

3. 在操作系统中,死锁产生的四个必要条件是:____、____、____和____。

三、简答题1. 请简述进程与线程的区别。

2. 请说明进程调度的主要目标。

3. 请阐述银行家算法的基本思想及其应用场景。

四、编程题1. 编写一个程序,实现进程的创建、撤销和切换。

2. 编写一个程序,使用信号量机制解决生产者消费者问题。

3. 编写一个程序,模拟进程的优先级调度算法。

五、案例分析题进程最大需求量已分配资源量P1 R1=3, R2=2 R1=1, R2=0P2 R2=2, R3=2 R2=1, R3=1P3 R3=2, R4=2 R3=1, R4=0P4 R1=4, R4=3 R1=2, R4=2(1)系统当前可用资源为:R1=1, R2=1, R3=1, R4=1(2)系统当前可用资源为:R1=0, R2=1, R3=1, R4=12. 假设有一个系统采用时间片轮转调度算法,时间片长度为50ms。

[教材]第6章并发进程练习题

[教材]第6章并发进程练习题

第6章并发进程1.并发进程中与共享变量有关的程序段称为( B )A.共享子程序B.临界区C.管理区D.公共数据区2.临界区是指( A )A.与共享变量有关的程序段B.公共数据区C.系统管理区D.临时的工作区3.用PV操作管理互斥使用的资源时,信号量的初值应定义为( B )A.任意整数B.1 C.O D.-14.对具有相关临界区的n个并发进程采用PV操作实现进程互斥时,信号量初值应定义为( B )A. 0B. 1C. nD.n-15.用PV操作来管理可供n个进程共享的资源时,若信号量S的初值定义为m,则信号量S可能出现的最小值为( B )A. n-mB. m-nC. 0D. –m6.进程从等待状态进入就绪状态可能是由于( C )A.现运行进程运行结束B.现运行进程执行了P操作C.现运行进程执行了V操作D.现运行进程时间片用完7.用V操作唤醒一个等待进程时,被唤醒进程的状态应变成( B )A.执行态B.就绪态C.运行态D.收容态8.正在执行的进程由于其时间片用完而被暂停运行,此时其进程应从运行态变为( A )A. 就绪态B. 等待态C. 运行态D. 后备态9.资源的静态分配算法在解决死锁问题中是用于( A )A.防止死锁B.避免死锁C.检测死锁D.解除死锁10.为了避免系统可能出现死锁,分配资源可以采用的算法是( B )A. 静态分配B. 银行家C. 按序分配D. 抢夺式11.系统出现死锁时一定同时保持了四个必要条件,对资源采用按序分配算法后可破坏的条件是( D )A.互斥B.占有且等待C.可抢占资源D.循环等待12.任何两个并发进程之间( D )A.一定存在互斥关系B.一定存在同步关系C.一定彼此独立无关D.可能存在同步或互斥关系13.多个进程间可通过 P 、 V 操作交换信息实现同步和互斥,因此信号量机制是进程间的一种( B )A. 高级通信方式B. 低级通信方式C. 消息缓冲通信方式D. 管道通信方式14.并发进程指的是一组( A )A.各自独立执行的进程B.必须依次执行的进程C.可同时执行的进程D.不能中断的进程15.设某类资源有5个,由3个进程共享,要使系统不会死锁则每个进程最多可申请的资源数是( B )A.1 B.2 C.3 D.416.进程间采用信箱通信方式时, send原语把发送者的信件存放到( A )A. 信箱B.消息缓冲区C.接收者的PCB D.指定的工作区17.产生系统死锁的原因可能是由于( C )A. 进程释放资源B. 一个进程进入死循环C. 多个进程竞争资源出现了循环等待D. 多个进程竞争共享型设备18.进程之间的同步是指进程间在逻辑上的相互( A )A. 制约关系B. 排斥关系C. 调用关系D. 转移关系19.用PV操作管理临界区时把信号量的初值定义为1,现已有一个进程在临界区,但有n个进程在等待进入临界区,这时信号量的值为( C )A.-1 B.1 C.-n D.n20.临界区是指并发进程中访问共享变量的( D )A. 管理信息段B. 信息存储段C. 数据段D. 程序段21.在多进程的并发系统中,不会因竞争下列资源而产生死锁的是( C )A. 打印机B. 磁带机C. 磁盘D. CPU22.并发进程指的是一组( C )A.各自独立执行的进程B.必须依次执行的进程C.可同时执行的进程D.不能中断的进程1.对独占设备往往采用分配方式。

操作系统概论 第6章 并发进程 课件

操作系统概论 第6章 并发进程 课件

进程的交互:竞争与协作

并发进程之间的竞争关系
共享资源
进程的互斥

并发进程之间的协作关系
进程的相互合作
进程的同步
进程的交互:竞争与协作
第一种是竞争关系
资源竞争的两个控制问题:
一个是死锁(Deadlock)问题
一个是饥饿(Starvation) 问题
既要解决饥饿问题,又要解决死锁问题
CPU利用率= 40/80 = 50%
DEV1利用率=18.75%
DEV2利用率= 31.25%
程序并发执行

在并发环境下
CPU利用率=89% DEV1并发环境下利用=33% DEV2并发环境下利用=66%
并行和并发



在单CPU系统中,系统调度在某一时刻只能让一个 线程(进程)运行,虽然这种调度机制有多种形式(大 多数是时间片轮巡为主),但无论如何,要通过不断 切换需要运行的线程让其运行的方式就叫并发 (concurrent)。 而在多CPU系统中,可以让两个以上的线程(进程) 同时运行,这种可以同时让两个以上线程同时运行 的方式叫做并行(parallel) 多道程序设计和并发的关系
程被置成等待信号量s的状态 */
end; procedure V(var s:semaphore); begin s := s + 1; /* 把信号量加1 */ if s <= 0 then R(s); /* 若信号量小于等于0,则释放
一个等待信号量s的进程 */
end;
p、v操作
(1) p操作 对信号量s的 p操作记为 p(s)。p(s)是一个不可分割的原语 操作,即取信号灯值减1,若相减结果为负,则调用p(s)的进程 被阻,并插入到该信号量的等待队列中,否则可以继续执行

操作系统 题库 判断题

操作系统 题库 判断题

第一章计算机系统概论1.操作系统类似于计算机硬件和人类用户之间的接口。

答案:T。

2.处理器的一个主要功能是与内存交换数据。

答案:T。

3.一般用户对系统程序无障碍,对应用程序有障碍。

答案:F4.数据寄存器一般是通用的,但可能局限于像浮点数运算这样的特定任务。

T5.程序状态字(PSW)通常包含条件码等状态信息。

条件码是由程序员为操作结果设置的位。

答案:F6.一个单一的指令需要的处理称为执行周期。

答案:F(称为指令周期)7.取到的指令通常被存放在指令寄存器中(IR)。

答案:T8.中断是系统模块暂停处理器正常处理过程所采用的一种机制。

答案:T9.为适应中断产生的情况,必须在指令周期中增加一个额外的读取阶段。

F10.在处理器控制控制例行的中断处理器之前,需要储存的最少信息有程序状态字和当前指令地址。

答案:F11.多中断的一个处理方法是在处理一个中断时禁止再发生中断。

答案:T12.多道程序设计允许处理器使用长时间等待的中断处理的空闲时间。

答案:T13.在两级存取优先级中,命中率定义为对较慢存储器的访问次数与对所有存储器访问次数的比值。

答案:F14.高速缓冲存储器的开发利用了局部性原理,即在处理器与主存储器之间提供一个容量小而快速的存储器。

T15.在高速缓冲存储器的设计中,块大小与高速缓冲存储器和主存储器间的数据交换单位有关。

答案:T16.可编程I/O的一个主要问题是,处理器必须等到I/O模块准备完毕,并且在等待的过程中必须反复不停的检查I/O模块的状态。

答案:T第二章操作系统概述1.操作系统是控制应用程序执行的程序,并充当应用程序和计算机硬件之间的接口。

(对)2.在多用户系统中,操作系统管理那些用作重要目的的资源。

(对)3.操作系统通常在它的专用O/S处理器上并行应用程序。

(错)4.操作系统演化的动力之一就是基本硬件技术的进步。

(对)5. 早期的计算机中没有操作系统,用户直接与硬件打交道。

(对)6 在一个批处理系统,“control is passed to a job”意味着处理器正在取指令和执行用户程序。

操作系统的进程调度与并发

操作系统的进程调度与并发

操作系统的进程调度与并发在计算机科学领域,操作系统起到了管理和控制计算机硬件资源的关键作用。

其中,进程调度和并发是操作系统中两个重要的概念。

进程调度是指操作系统在多个进程之间分配CPU时间片,使得它们能够以合理的顺序执行,从而提高整个系统的吞吐量和响应时间。

而并发则指在同一时间可以执行多个独立的任务,进一步提高系统的效率。

一、进程调度进程调度是操作系统的核心功能之一,它决定了程序的执行顺序和优先级。

进程调度算法的设计影响着系统的性能和资源利用率。

常用的进程调度算法有以下几种:1. 先来先服务(FCFS)调度算法:按照进程到达的顺序进行调度,即先到先服务。

该算法的优点是简单易懂,但当有长作业阻塞短作业等待时,会导致平均等待时间较长。

2. 最短作业优先(SJF)调度算法:选择估计需要的CPU时间最短的作业来先执行。

该算法能够保证平均等待时间最小,但需要准确估计作业的执行时间。

3. 优先级调度算法:为每个进程赋予优先级,并按照优先级的高低进行调度。

该算法可以灵活调整各个进程的优先级,但会导致低优先级进程长时间等待。

4. 时间片轮转调度算法:设置固定的时间片,每个进程按照时间片的大小进行调度。

当一个进程的时间片用完后,会被放入就绪队列的尾部,等待下一轮调度。

该算法公平地分配CPU资源,但可能会导致上下文切换频繁。

二、并发并发是指系统同时处理多个任务的能力。

在操作系统中,实现并发的方式有多种。

1. 多道程序设计:允许多个进程同时驻留在内存中,并在进程之间切换。

通过利用中断机制和进程调度算法,操作系统能够在较短的时间内切换多个进程的执行。

2. 多线程:线程是一个独立的执行流,一个进程可以拥有多个线程。

多线程使得程序能够并行执行多个任务,提高了系统的响应速度和资源利用率。

3. 并行处理:通过利用多个处理器同时执行多个任务,实现真正的并行处理。

多核处理器的出现使得并行处理得到了更好的支持。

三、进程调度与并发的关系进程调度和并发是紧密相关的,两者相互影响、相互促进。

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

“操作系统概论”习题解答之并发进程第6章习题解答1、什么叫并发进程?答:在多道程序设计系统中,作为单个作业可以同时执行,而每一个作业又需要有多个进程的协作来完成。

因此,系统会同时存在着许多进程,在单处理器的情况下,这些进程轮流的占用处理器,即一个进程的工作没有全部完成之前,另一个进程就开始工作,我们说这些可同时执行的进程具有并发性,并且把可同时执行的进程称为“并发进程”。

2、临界区是怎样定义?对临界区的管理应符合哪些要求?答:并发进程中与共享变量有关的程序段称为“临界区”。

对若干个并发进程共享某一变量的相关临界区的管理有三点要求:①、一次至多一个进程能够进入临界区,当有进程在临界区执行时,其它想进入临界区执行的进程必须等待。

②、不能让一个进程无限制的在临界区执行,即任何一个进入临界区的进程必须有限的时间内退出临界区。

③、不能强迫一个进程无限期等待进入它的临界区,即有进程退出临界区时应让一个等待进入临界区的进程进入它的临界区执行。

3、采用PV操作作为同步机制时,假定与某共享变量相关的信号量S的值可在[-1,1]之间,问S的初值是哪个值?当S=-1,S=0,S=l时它们各自的物理含义是什么?答:S的初值是 1.S=-l,表示有一个进程在等待进入临界区执行。

S=0,表示已有一个进程在临界区执行,这时若有进程想进入临界区则必须等待。

S=l,表示无进程在临界区执行,若有进程想进入临界区则可以立即进入。

4、A、B两个火车站之间是单轨连接的,现有许多列车同时到A站,需经A站到达B站,列车出B站后又可分路行驶(如图6-6)。

为保证行车安全,请问应如何调度列车?请用PV 操作作为工具设计一个能实现你的调度方案的自动调度系统。

答:当A、B两站之间无列车停驶时,可让到达A站的一列车进人A、B站之间行驶。

当A、B站之间有列车在行驶时,则到达A站者必须在站外等待。

当有列车到达B站后,让等在A站外的一列车进入。

用一个信号量S来控制到达A站的列车能否进入A、B站之间的单轨道行驶,S的初始值为l。

列车到达A站后,先执行P(S),若无列车在A、B站之间行驶,则执行P(S)后立即进人单轨道行驶,到达B站后,执行V(S),可释放一个等待进入的列车进入行驶。

若A、B站之间已有列车在行驶,则执行P(S)后就等待,直到行驶者到了B站执行V(S)后释放一个欲进入者。

5、今有三个进程R、M、P,它们共享一个缓冲区。

R负责从输入设备读信息,每次读出一个记录,并把它存放在缓冲区中。

M对缓冲区中的记录加工。

P把加工后的记录打印输出。

读入的记录经加工并取走后,缓冲区中又可存放下一个记录。

请用PV操作作为同步机制写出它们并发执行时能正确工作的程序。

答:三个进程共用一个缓冲区,他们必须同步工作,可定义三个信号量:S1:表示是否可把读人的记录放到缓冲区,初始值为1。

S2:表示是否可对缓冲区中的记录加工,初始值为0。

S3:表示记录是否加工好,可以输出,初始值也为0。

三个进程可如下设计:beginS1,S2,S3:semaphore;S1:=l;S2:=S3:=0;cobeginprocess RbeginL1:读记录;P(S1);记录存入缓冲区;V(S2);goto L1;end;process MbeginL2:P(S2);加工记录;V(S3);goto L2;end;process PbeginL3:P(S3);输出加工后的记录;V(S1);goto L3;end;coend;end.6、现有4个进程R1,R2,W1,W2,它们共享可以存放一个数的缓冲器B。

进程R1每次把从磁盘上读入的一个数存到缓冲器B中,供进程W1打印输出。

进程R2每次把从键盘上读一个数存到缓冲器B中,供进程W2打印输出。

当一个进程把数存放到缓冲器后,在该数还没有被打印输出之前不准任何进程再向缓冲器中存数。

当一个进程已把缓冲器中的数打印输出后,在缓冲器中还没有存入一个新数之前不准任何进程加快从缓冲区中取数打印。

怎样用PV操作使这四个进程在并发执行时能协调地工作?答:这四个进程实际上是两个生产者 R1,R2和两个消费者 W1,W2。

各自生成不同的产品供各自的消费对象去消费,他们共享一个的缓冲器。

由于缓冲器只能存放一个数,所以,R1和R2在存放数时必须互斥。

而R1和W1、R2和W2之间存在同步。

为了协调它们的工作可定义三个信号量:S:表示能否把数存人缓冲器B,初始值为1.S1:表示R1是否已向缓冲器存入从磁盘上读入的一个数,初始值为0.S2:表示R2是否已向缓冲器存入从键盘上读入的一个数,初始值为0.beginS,S1,S2:semaphore;S:=1;S1:=S2:=0;cobeginprocess R1xl :integerbeginL1:从磁盘读一个数;x1:=读入的数;P(S);B:=xl;V(S1);goto L1;end;process R2x2:integer;beginL2:从键盘盘读一个数;x2:=读入的数;P(S);B:=x2;V(S2);goto L2;end;process W1y:integer;beginL3:P(S1);y:=B;V(S);打印y中的数;goto L3;end;process W2z:integerbeginL4:P(S2);z:=B;V(S);打印z中的数;goto L4;end;coend;end.7.两个并发进程的程序如下:beginN:integer;N:=3;cobeginprocess AbeginL1:N:=N+5;goto L1;end;process BbeginL2:print(N);N:=0;goto L2;end;coend;end.若process A先执行了三个循环,然后process A和 process B又并发执行了一个循环,写出可能出现的打印值。

什么情况下会出现与时间有关的错误?请用PV操作实现同步,使两并发进程能正确执行。

答:可能的值是 18或 23。

这是因为 process A执行三个循环后,N=18,之后 A和 B 并发执行,可能先执行A中的N:=N+5,再执行B中的print(N);这样就会得到23,也可能先执行B中的pint(N);这就会得到18.可以利用P、V操作实现同步:beginN:integer;S:semphore;S:=l;N:=3;cobeginprocess AbeginL1:P(S);N:=N+5;V(S);gotO L1;end;process BbeginL2:P(S);print(N);N:=0;V(S);goto L2;end;coend;end.8、利用信箱进行通信的通信机制中,应设置哪些基本通信原语?它们的功能是什么?答:利用信箱实现通信的机制,应该有:send原语(发送)和 receive原语(接收)。

发送原语send(N,M)功能:把信件M送到指定的信箱N中。

接收原语receive(N,Z)功能:从指定信箱N中取出一封信,存放到指定的地址Z中。

9、什么叫死锁?什么原因会引起死锁?答:若系统中存在一组进程(二个或多个进程),他们中的每一个进程都占用某种资源而又都在等待其中另一个进程所占用的资源,这种等待永远不能结束,就说系统出现“死锁”。

进程死锁的起因是系统提供的资源数比要求使用资源的进程数少,或者是若干个个进程要求资源的总数大于系统能提供的资源数。

这时,进程间就会出现竞争资源的现象,如果对进程竞争的资源管理和分配不当就会引起死锁。

死锁的出现是与资源分配策略和并发进程的执行速度有关。

10、有哪些策略可防止和避兔死锁?答:根据必要条件中的后面三个,有一下三种防止死锁的资源分配策略:(1)、静态分配。

进程必须在开始执行前申请它所要的全部资源,直到得到了全部资源后才可执行。

这一方案显然破坏了死锁必要条件中的2和4两个条件。

(2)、剥夺式分配。

当一个进程申请资源得不到满足就会从另一个进程那里去抢夺。

这种办法显然破坏了死锁的第3个必要条件。

但是这种方法只适用于对处理器和主存资源的分配。

(3)、按序分配。

将系统中所有的资源排一个顺序,规定任一个进程申请两个以上的资源的时候,必须按照资源编号的递增顺序申请资源。

银行家算法可以避免死锁。

11、某系统有输入机和打印机各一台,今有两个进程都要同时使用它们。

请写出采用PV操作实现请求使用和归还释放的程序。

检查所写的程序会产生死锁吗?若否,说明理由;若会产生死锁,则请适当修改程序以防止死锁。

答:如果 PV操作设计不当,仍会产生死锁。

假如用 S1和 S2分别代表输入机和打印机能否被使用的信号量,由于资源是共享的,所以必须互斥使用,因而它们的初始值都为l.如果用如下方式实现请求使用和归还释放:process Q1beginP(S1);使用输入机;P(S2);使用打印机;V(S2);V(S1);end;process Q2beginP(S2);使用打印机;P(S1);使用输入机;V(S2);V(S1);end;那么就会出现Q1得到输入机而 Q2得到打印机,双方在不释放已经有的资源的情况下又去申请新的资源,就会造成死锁。

可以采用为资源编序号的方法,要求按序申请,如下:process Q1beginP(S1);使用输入机;P(S2);使用打印机;V(S2);V(S1);end;process Q2beginP(S1);使用输入机;P(S2);使用打印机;V(S2);V(S1);end.12、设有12个同类资源可供4个进程共享,进程对资源的需求量及资源分配情况如下:试问:(1)、目前系统是否处于安全状态?为什么?(2)、如果这4个进程又都要求系统再分配一个资源时,在什么情况下会引起系统的死锁?为什么?答:(1)、目前系统处于安全状态。

系统已经有10个资源被占用,系统可以把剩余两个资源先分配给P1,执行完毕回收资源,在分配给其他进程,便可在有限时间内使所有进程都得到所需要的资源。

(2)、如果系统在P1完成之前,把一个资源分配给其它三个进程,则系统进入不安全状态。

因为这样做,使系统中只剩余一个资源,而所有进程需要的总资源都在两个以上,因此,有可能造成死锁。

相关文档
最新文档