zoukankan      html  css  js  c++  java
  • 整型信号量和PV操作(计算机操作系统)

    在整型信号量机制中,信号量被定义为一个整形变量。除初始化外,仅能通过两个标准的原子操作Wait(S)和Signal(S)来访问。其通常分别被称为P、V操作。

    描述如下:

    P操作:S=S-1;如果S小于0,则进程进入等待状态,否则继续执行。

    V操作:S=S+1;如果S>=0,则唤醒等待队列中的一个等待进程。

    信号量有其自身的物理含义:当S>0时,其值表示要管理的某类资源的数量;当S<0时,它的绝对值表示在相关队列中等待的进程个数。

     

    进程的同步

    一般来说,一个进程相对与另一个进程的运行速度是不确定的,也就是说,进程是在异步环境下运行的,每个进程都以各自独立的、不可预知的速度向前推进。但是,相互合作的进程需要在某些确定的点上协调他们的工作,当一个进程到达了这些点后,除非另一个进程已经完成了某些操作,否则就不得不停下来等待这些操作结束。这就是进程的同步。

     

    进程的互斥

    在多道程序系统中,各进程可以共享各类资源,但有些资源一次只能供一个进程使用,这种资源称为临界资源。

    对临界区的管理原则:有空则进,无空则等,有限等待,让权等待。

     

    进程互斥的情况,信号量初值是1;而同步的情况,信号量初值是0.

    在解决具体问题时,面对各种并发进程,首先应该分析它们之间哪些是互斥关系,哪些是同步关系,由此而确定应该设置哪些信号量及它们的初值。

    如果所设置的信号量,每个相关进程即对它施行P操作,也对它施行V操作,则称其为共用信号量。用于互斥的都是公用信号量。

    若设置的信号量,只有一个进程能对它施行P操作,其他进程只能对它施行V操作,则称其为那一个进程的私用信号量。用于同步或资源分配管理的信号量都是私用信号量。

     

  • 相关阅读:
    gitlab: git clone/pull / push: The project you were looking for could not be found
    转载: MySQL启动出错InnoDB: Check that you do not already have another mysqld process解决方法
    root用户删除文件,提示:Operation not permitted
    使用dockerfile打包新镜像
    kubernets创建Deployment
    代理全家福
    Spring事务传播详解
    [FFmpeg]Centos7 yum安装
    [Redis]存放字典
    [Docker]开放2375端口
  • 原文地址:https://www.cnblogs.com/wsw-tcsygrwfqd/p/5333757.html
Copyright © 2011-2022 走看看