PV操作

来源:互联网 发布:touch炫舞捏脸数据女 编辑:程序博客网 时间:2024/05/16 06:50

什么是PV操作?

        P操作是不可中断的原语,主要用于占用资源。

       V操作时不可中断的原语,主要用于释放资源。

优点:

        解耦合,把两个事情通过PV操作分开处理。

应用:

        同步

            

        代码:

          begin

                buffer:integer;

               SP,SG:semaphore;

               SP:1;SG:=0;

               cobegin

                        process producer

                          L1:produce a product;

                              P(sp)

                              Buffer:=product;

                             V(sg);

                             go to L1

                       end;

 

                     

                        process  Consumer

                      

                          L2:   P(sg)

                               take a product;

                              V(sp);

                             consume;

                             go to L2

                       end;

              coend;

          end;

      互斥

当进程P1P2P3…Pn都要使用某个资源A时,各进程都需要考虑还剩多少资源可以使用。

代码:

Begin

     S:semaphore;

    S:=1;

    …

    cobegin

         …

       proccess Pi

           ….

        P(s);

       临界区

      V(s)

        …….

     end;

       ….

   coend;

End;

       同步+互斥

      基本代码同上,不过需要注意,这种情况需要先用P操作测试同步信号,再用P操作测试互斥信号。

3 0
原创粉丝点击