今天看啥  ›  专栏  ›  是小猪童鞋啦

操作系统之 进程的互斥和同步

是小猪童鞋啦  · 简书  ·  · 2020-03-29 07:33
1.解释并发与并行,并说明两者关系。

答:并发指的是一个处理器在同一时间段内执行多个进程,但注意不是同一时刻同时执行,只是以极快的速度进行进程的切换执行,从而形成并行的效果。

并行指的是多个处理器同时处理多个进程,即同一时刻同时执行多个进程。并发和并行在处理速度上基本相当,但在本质上有所区别。

例如吃饭的时候电话响了,并发指的是先停止吃饭,然后迅速去接听电话,两者是交替进行的;而并行则是在边吃饭的同时边接听电话,两者是同时进行的。

解释一:并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔发生。

解释二:并行是在不同实体上的多个事件,并发是在同一实体上的多个事件。

解释三:并行在多台处理器上同时处理多个任务,并发的是在一台处理器上“同时”处理多个任务。

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

答:进程间存在竞争与和协作两种基本关系。

当出现竞争关系时会引发两个控制问题:死锁与饥饿。解决方法:向并发进程提供锁机制,在使用共享资源之前表达互斥要求,系统需要保证诸进程能互斥访问共享资源,既要解决死锁问题,又要解决饥饿问题。

当出现协作关系时,解决方法为:在未输入完一块数据之前不能加工处理,未加工处理完一块数据之前不能打印输出,每个进程都要接收到协作进程完成一次数据处理的消息之后,才能进行下一步工作。如双方不知道对方名字的间接协作,可以通过访问共享资源进行松散式协作;如知道对方名字,可以通过通信机制进行的紧密协作。

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

答:进程的互斥指的是在一个进程执行时,要求另一个进程需要进行等待,即需要两个进程相互协调合作,这在一定程度上也是一种同步。

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

答:死锁:即一组进程因为争夺资源而陷入永远等待的状态。

“饥饿”:即一个可运行的进程由于其他进程总是优先于它,而被调度程序无限期地拖延而导致不能被执行。

两者的关系:死锁和饥饿都最终都是导致进程因为进程之间的竞争而无法执行,但前者是由于竞争双方的资源争夺而导致双方都无法继续进行,后者则是个别进程因为优先级过低,而一直处于等待状态无法进行。

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

答:并发进程中与共享变量有关的程序段称为临界区;共享变量所代表的资源称为临界资源。

遵循临界区调度的三个原则:

(1)一次至多只有一个进程进入临界区内执行。

(2)如果已有进程在临界区中,试图进入临界区的其他进程应等待。

(3)进入临界区内的进程应在有限时间内退出,以便让等待队列中的一个进程进入。

即总结为:互斥使用,有空让进;忙则要等,有限等待;择一而入,算法可行。

6.信号量的物理意义是什么?

信号量表示物理资源的实体,是一个与队列有关的整型变量。主要用于封锁临界区、进程同步即维护资源计数。




原文地址:访问原文地址
快照地址: 访问文章快照