进程互斥与同步

  1. 解释并发与并行,并说明两者关系。
  2. 进程间有哪几种关系?分别要采取什么策略?
  3. 为什么说进程的互斥也是一种同步?
  4. 解释死锁与“饥饿”,并说明两者关系
  5. 什么叫做临界区?如何解决进程对临界资源的访问冲突?
  6. 信号量的物理意义是什么?
  7. 理解五个哲学家吃面问题,并能盲写出伪代码。
  8. 一个超市有n个顾客购物,只有一个收银员,试用信号量P、V操作描述顾客进程和收银员之间的关系。写伪代码。

答:

1、并行性是指两个或多个事件在同一时刻发生。并发性是指两个或多个事件在同一事件间隔内发生。

在多道程序环境下,并发性是指在一段时间内,宏观上有多个程序同时运行,但在单处理器(CPU)系统每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交替执行。倘若在计算机系统中有多个处理器,则这些可以并发执行的程序便被分配到多个处理器上,实现并行执行,即利用每个处理器来处理一个可并发执行的程序。

2、进程间有竞争关系、协作关系。竞争关系会产生死锁、饥饿问题,解决死锁问题,系统规定一种打印机分配策略:总是把打印机分配给所打印文件最短的进程;解决饥饿问题的策略是FCFS资源分配策略。
3、进程互斥是指若干进程因相互争夺独占型资源而产生的竞争制约关系。进程同步是指为完成共同任务的并发进程基于某个条件来协调其活动,因为需要在某些位置上排定执行的先后次序而等待、传递信号或消息所产生的协作制约关系。不难看出进程互斥关系是一种特殊的进程同步关系,即逐次使用互斥共享资源,也是对进程使用资源的次序的一种协调。
4、死锁:一组进程因争夺资源陷入永远等待的状态。饥饿:一个可运行进程由于其他进程总是优先于它,而被调度程序无限期地拖延而不能被执行。死锁是永远在等待资源或者别的信号,饥饿是本身的优先级低于别人的优先级而在等待。
5、临界区:并发进程中与共享变量有关的程序段。

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

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

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

6、信号量是在多线程环境下使用的一种设施, 它负责协调各个线程, 以保证它们能够正确、合理的使用公共资源。号量分为单值和多值两种,前者只能被一个线程获得,后者可以被若干个线程获得。利用信号量和PV操作即可解决并发进程竞争问题,又可解决并发进程协作问题。

7、五位哲学家吃面问题就是思考过后就会出现饥饿,就要吃面,吃面的前提就是要有左右两边的叉子才能吃,吃完把叉子放回左右两边。

semaphore CZ[5];

for(int i=0;i<5;i++)

     CZ[i]=1;

cobegin

  process philosopher_i(){

           while(true) {

                    think();

                   P(CZ[i]);

                   P(CZ[(i+1)%5]);

                          eat();

                   V(CZ[i]);

                   V(CZ[(i+1)%5]);

             }

  }

coend

8、int waiting=0;

     int customer=0;

     int worker=1;

cobegin

          process worker() {

                  while(true){

                          P(customer);

                          waiting--;

                          V(worker);

                    }

          }

          prodess customer() {

                     if(waiting<0) {

                           P(worker);

                           V(worker);

                     }

                     if(waiting>0)

                           waiting++;

          }

coend

posted @ 2019-04-23 16:29  李健国  阅读(1498)  评论(0编辑  收藏  举报