进程互斥与同步

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

  并发:你玩手机玩到一半,老师走下来了,你放下手机看书,老师走后你继续玩手机,这就是并发。支持多个任务同时存在,而不要求同时执行。

  并行:你玩手机玩到一半,老师走下来了,你边玩手机边装作看书,这就是并行。支持多个任务同时执行。

  二者区别在于是否同时。

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

  (1)关系:竞争关系(间接制约关系)和协作关系(直接制约关系)

  (2)策略:竞争关系中最简单的策略是FCFS资源发配策略,而协作关系的多使用进程互斥。

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

  当多个进程试图读取同一个资源时,可能因为A进程读取完修改了这个值,而B进程与A进程同时读取了修改前的值,但B进程想要读取的是修改后的值。所有进程间的互斥,在有些时候是一种同步,能够让资源的状态得到及时的更新。

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

  死锁是某些条件造成了进程永远不会向前推进的死循环,而饥饿是有进程在一直正常运行,而有的进程却一直得不到资源。

  这两者情况一般都是由于资源竞争引起的。

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

  临界区是指一个访问共用资源的程序片段,而这些共用资源又无法同时被多个线程访问的特性。

  解决方法:可以让进程一个个进入,执行有序退出。

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

  让临界区同一时间只有一个线程在访问它,也就是说信号量是用来协调进程对共享资源的访问的。

7.理解五个哲学家吃面问题,并能盲写出伪代码。

   没筷子等待()

   拿筷子()

   放筷子()

8.一个超市有n个顾客购物,只有一个收银员,试用信号量P、V操作描述顾客进程和收银员之间的关系。写伪代码。

  S=0,C=0 ,M=N
  收银员P(S)
  收银V(C)
  顾客P(M)
  开始购物
  V(S)
  P(C)
  V(M)

  

posted @ 2019-04-23 19:11  赫赫核  阅读(229)  评论(0编辑  收藏  举报