进程互斥与同步

走远了吗. 提交于 2020-01-19 12:40:38

1、解释并发与并行,并说明两者关系。

并发:当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间 段分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起状。这种方式我们称之为并发。

并行:当系统有一个以上CPU时,则线程的操作有可能非并发。当一个CPU执行一个线程时,另一个CPU可以执行另一个线程,两个线程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行。

并发与并行区别:并发和并行是即相似又有区别的两个概念,并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔内发生。在多道程序环境下,并发性是指在一段时间内宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交替执行。倘若在计算机系统中有多个处理机,则这些可以并发执行的程序便可被分配到多个处理机上,实现并行执行,即利用每个处理机来处理一个可并发执行的程序,这样,多个程序便可以同时执行。

2、进程间有哪几种关系?分别要采取什么策略?

进程间存在竞争和协作关系。

3、为什么说进程的互斥也是一种同步?

进程同步是指为了完成共同的任务的并发进程基于某个条件来协调其活动,因为需要某些位 置上排定执行的先后次序而等待、传递信号或消息所产生的协作制约关系。进程互斥是指若干进程因相互争夺独占型资源而产生的竞争制约关系。所以,进程互斥也是一种特殊的进程同步关系,即逐次使用互斥共享资源,也是对进程使用资源的次序的一种协调。

4、解释死锁与“饥饿”,并说明两者关系。

资源竞争会引发两个控制问题,一是死锁,一组进程因资源争夺陷入永远等待的状态;二是饥饿,一个可运行进程由于其他进程总是优先于它,而被调度程序无限期地拖延而不能被执行。

5、什么叫做临界区?如何解决进程对临界资源的访问冲突?

并发进程中与共享变量有关的程序段称为临界区。

 解决进程对临界资源的访问冲突需要遵守三个原则:(1)一次至多只有一个进程进入临界区内执行;(2)如果已有进程在临界区中,试图进入此临界区的其他进程应等待; (3)进入临界区内的进程应在有限时间内退出,以便让等待队列中的一个进程进入。

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!