zoukankan      html  css  js  c++  java
  • 进程-PV操作

    在多道程序系统中,进程是并发执行的,这些进程间存在不同的相互制约关系。

    一、临界资源

      进程在运行过程中,一般会与其他的进程共享资源,而有些资源具有排他性。一次只能为一个进程所使用,通常把这种一次仅允许一个进程使用的资源称为临界资源(如:打印机、绘图机、一些进程间共享的变量、缓存区)。进程访问临界资源的那段代码称为临界区,也叫临界段。

      访问临界资源应遵循如下原则:

    1、空闲让进(或有空即进):当进程处于临界区时,可以允许一个请求进出临界区的进程立即进出自己的临界区。

    2、忙则等待(或无空则等):当已有进程进入临界区时,其他试图进入临界区的进程必须等待。

    3、有限等待:对要求访问临界资源的进程,应保证能在有限的时间内进入自己的临界区。

    4、让权等待:当进程不能进入自己的临界区时,应释放处理机。

    二、同步互斥

    1、同步

         同步是合作进程间的直接制约问题。

         进程间的同步是指进程间完成一项任务时直接发生相互作用的关系。

    2、互斥

          互斥是申请临界资源进程间的间接制约问题。

          进程互斥是指系统中各进程互斥使用临界资源。

    三、信号量

          1、定义:一个整型变量,根据控制对象的不同被赋予不同的值。

          2、分类:公用信号量和私用信号量。

            公用信号量——实现进程间的互斥,初值为1或资源的数目。

            私用信号量——实现进程间的同步,初值为0或某个正整数。

          3、 信号量的物理意义:

            S>=0,表示某资源的可用数;

            S<0,则其绝对值表示阻塞队列中等待该资源的进程数。

    四、P操作

         1、定义:

           S:=S-1

      若S>=0,则执行P操作的进程继续执行;

      若S<0,则置该进程为阻塞状态(因为无可以用资源),并将其插入阻塞队列。

         2、操作过程:

      Procedure P(Var S:Semaphore)

      {

        S--;

        if(S<0)

        {

                阻塞该进程;

          将该进程插入信号量S的等待队列;

           }

      }

       Semphore表示所定义的变量是信号量。

    五、V操作

         1、定义:

            S:=S+1

            若S>0,则执行V操作的进程继续执行;

            若S<=0,则从阻塞状态唤醒一个进程,并将其插入就绪队列,然后执行V操作的进程继续执行。

         2、操作过程:

           Procedure V(Var S:Semaphore)

       {

        S++;

        if(S <= 0)

        {

           从信号量的等待队列中取出队首进程;

          将其插入就绪队列;

          }

       }


    海阔凭鱼跃,天高任鸟飞。
  • 相关阅读:
    sql server 笔记(数据类型/新建、修改、删除数据表/)
    在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: Nam
    jquery 操作 checkbox select
    layui常见问题
    Sublime Text 3下载-汉化-插件配置
    CSS前端开发学习总结、一
    如何用 JavaScript 下载文件
    腾讯大王卡、天王卡代申请
    新人报道~cnblogs
    Node.js
  • 原文地址:https://www.cnblogs.com/chenshikun/p/7600518.html
Copyright © 2011-2022 走看看