一、资源: Linux上有硬件资源软件资源之分。程序会受到资源限制的影响,可能在这几方面的资源限制受到影响:1.硬件方面的物理性限制(内存);2.系统策略的限制(允许使用的CPU时间);3.具体实现的限制(整数的长度、文件名中所允许的最大字符数)。
二、临界资源: 临界资源是一次仅允许一个进程使用的共享资源。每次只准许一个进程进入临界区,进入后不允许其他进程进入。不论是硬件临界资源,还是软件临界资源,多个进程必须互斥地对它进行访问。
三、临界区: 临界区指的是一个访问共用资源(例如:共用设备或是共用存储器)的程序片段,而这些共用资源又无法同时被多个线程访问的特性。当有线程进入临界区段时,其他线程或是进程必须等待(例如:bounded waiting 等待法),有一些同步的机制必须在临界区段的进入点与离开点实现,以确保这些共用资源是被互斥获得使用,例如:semaphore。只能被单一线程访问的设备,例如:打印机。
四、信号量: 信号量(Semaphore)有时被称为信号灯,是解决并发问题过程中所使用的一种设施,可以用来保证两个或多个关键代码段不被并发调用。一个进程在进入一个关键代码段之前,进程(或线程)必须获取一个信号量;一旦关键代码段完成了,那么该进程(或线程)必须释放信号量。其它想进入该关键代码段的进程(或线程)必须等待直到第一个进程(或线程)释放信号量。
从并发机制的角度看,信号量是一种并发机制,它用于进程间传递信号的一个整数值。在信号量上只有3中操作可以进行:初始化、递减和增加,这三种都是原子操作。递减操作可以用于阻塞一个进程,增加操作可以用于解除阻塞一个进程。也成为计数信号量或一般信号量。(其它的并行机制还有很多,如二元信号量、互斥量、自旋锁、事件标志等)
简单的理解:信号量:特殊变量,加1(v操作,释放资源),减1(p操作,获取资源),都是一个原子操作,值为0,减1阻塞。信号量用来同步进程。同步:只有一个程序在执行。
五、原子操作: 它在执行过程中不能被打断。
六、P,V操作: 实际上p操作就是-1(获取资源),v操作就是+1(释放资源)。
我的理解也就是信号量用来解决互斥问题的一种方法。设信号量为s,设有n个进程,所有的进程都需要访问共享资源。每个进程中进入临界区前执行semWait(s),如果s的值为负,则进程被阻塞,s的绝对值就是被阻塞进程的数量;如果值为1,则s被减为0,进程立即进入临界区;由于s不再为正,因而其他任何程序都不能进入临界区。信号量一般初始化为1,这样第一个执行semWait的进程可以立即进入临界区,并把s的值置为0。接着任何试图进入临界区的其他(一个)进程,都将发现第一个进程忙,因此被阻塞,把s的值置为-1。可以有任意数目的进程试图进入,每个不成功的尝试都会使s的值减1,当最初进入临界区的进程离开时,s的值增1,一个被阻塞的进程(如果有的话)被移出阻塞队列,置为就绪状态(这里的s的值增1和一个阻塞进程被移出置为就绪状态是一步完成的)。这样,当操作系统下一次调度时,它可以进入临界区,并把信号量的值置为0。
PV操作与信号量的处理相关,P表示通过的意思,V表示释放的意思。p操作和v操作是不可中断的程序段,称为原语。如果将信号量看作共享变量,则pv操作为其临界区,多个进程不能同时执行,一般用硬件方法保证。一个信号量只能置一次初值,以后只能对之进行p操作或v操作。
使用PV操作实现进程互斥时应该注意的是:
⑴每个程序中用户实现互斥的P、V操作必须成对出现,先做P操作,进临界区,后做V操作,出临界区。若有多个分支,要认真检查其成对性。
⑵P、V操作应分别紧靠临界区的头尾部,临界区的代码应尽可能短,不能有死循环。
⑶互斥信号量的初值一般为1。
七、一些其它的知识
1.二值信号量   0   1
2.计数信号量   可能会>1
3.semget 创建信号量
semop  修改信号量的值   实现p v操作
semctl   初始化信号量  删除
4. 信号量的使用
1)创建信号量,初始化值为1
2)提供P V操作
3)使用临界资源之前执行P操作,用完执行V操作
4)销毁信号量
5. ipcs命令
ipcs –q  查看消息队列      ipcs  -s  
ipcrm  -s  +信号量id:手动清楚信号量
ipcs  -m  显示共享内存

临界资源、临界区、信号量、P,V操作相关推荐

  1. 操作系统信号量与P、V操作 初步认识整理

    初步接触,若有不足之处,请各位不吝赐教.谢谢! 首先介绍:信号量 信号量包括整型信号量.结构型信号量.二值信号量. ① 整型信号量 最初,将信号量定义为一个共享的整型量,它保存可供使用的唤醒数目.如果 ...

  2. linux 内核信号量与用户态信号量(system v,信号量在Linux多线程机制中的应用

    [摘 要]本文以信号量原理为基础,重点阐述信号量在Linux多线程同步机制中的实现特色. [关键词]信号量:Linux:多线程:同步 1 信号量 1965年E. W. Dijkstra首次提出信号量的 ...

  3. 操作系统P/V操作(V操作中的典型理解偏差)

    信号量是操作系统提供的⼀种协调共享资源访问的⽅法. 通常信号量表示资源的数量,对应的变量是⼀个整型( sem )变量. 另外,还有两个原⼦操作的系统调⽤函数来控制信号量的,分别是: P 操作:将 se ...

  4. 信号量——P、V操作、临界资源、临界区、进程同步

    1.信号量 用来同步进程的特殊变量:一个特殊的计数器,大于0时记录资源的数量,小于0时记录等待资源的进程的数量.当信号量的值大于0时,进程总是可以获取到资源并使用,小于0 时,进程必须阻塞等待有其他进 ...

  5. 操作系统中的信号量及P、V操作

    系统中应该有解决进程同步的一种专门机制.实际上,同步是并发进程之间在执行时序 上的一种相互制约的关系.进程互斥的实质也是同步,可把进程互斥看作是一种特殊的进程同步. 同步机制应该满足如下一些基本要求. ...

  6. 面试题:操作系统临界区,临界资源,信号量

    1.临界资源: 一个时间段内只允许一个进程访问的资源称为临界资源 2.临界区: 访问临界资源的代码称为临界区 3.如何实现进程互斥: 空闲让进:当没有进程处于临界区时,可以允许一个请求进入临界区的进程 ...

  7. vp操作 信号量_信号量P,V操作

    2013-07-22 20:20:30 信号量是最早出现的用来解决进程同步与互斥问题的机制(也可实现进程通信),包括一个称为信 号量的变量及对它进行的两个原语操作.信号量为一个整数,我们设这个信号量为 ...

  8. 李白和杜甫共享一个棋盘下象棋。一个叫李白的程序,输出李白走的10步棋。一个杜甫程序,输出杜甫的10步棋,一个裁判程序裁定二者下棋。C++实现信号量及P、V操作。

    one.cpp #include <windows.h> #include <stdio.h>#define PROG_NAME "李白" HANDLE l ...

  9. 一阅览室只能容纳150人,当少于150人时,可以进入,否则,需在外等候,若将每一个读者作为一个进程,请用P、V操作编程(类C、类pascal),并写出信号量的初值。(PV操作伪代码)

    1.第一种情况:现实生活中阅览室的门可以同时进入或出去多个人,题目中也没有其他限定时,可以只设立同步信号量即可. 伪代码如下: int n = 150;semaphore empty = n;/*em ...

最新文章

  1. 如何使用htmlq提取html文件内容
  2. jsonView谷歌插件
  3. php接收flutter,来自Flutter中的PHP的API流(非Firebase)
  4. [转载]让SQL运行得更快
  5. php smarty入门,smarty 快速入门
  6. 体验了一下用word 2007发表博客
  7. linux依据时间过滤文件,详解Linux查找目录下的按时间过滤的文件
  8. 数组、链表、哈希……Qt中丰富的容器类
  9. [论文]Clustering-Based Ensembles as an Alternative to Stacking
  10. 【笔记】《C#高效编程改进C#代码的50个行之有效的办法》第1章C#语言习惯(1)--属性的特性以及索引器(SamWang)...
  11. android卸载弹出窗口,卸载Android app弹出浏览器的一种实现
  12. linux下通过文件句柄恢复误删除的数据文件
  13. 机器学习 深度学习 ai_什么是AI? 从机器学习到决策自动化
  14. 漫谈程序员(八)阿里巴巴集团合伙人花名单
  15. 洛谷试炼场 动态规划TG.lv(2)
  16. 关于奇异值以及奇异值分解SVD的思考
  17. OpenGL 入门 17:立方体贴图
  18. Win11删除资源管理器中的图片、文档等文件夹
  19. 网页加速插件Decentraleyes使用介绍
  20. 前阿里云大数据架构师:想进去阿里云需要掌握什么技能

热门文章

  1. 10万+爆文怎么写?这些软文写作技巧你掌握了吗?
  2. 高性能mysql学习笔记--索引
  3. 外包程序员:软件开发人员派遣进行IT人员驻场开发的好处有哪些?
  4. JavaSE -IO流
  5. source insight 一直 checking for modified files导致卡顿【已解决】
  6. 测试/开发程序员的思考,突破变得更强......
  7. win10可以上网但是网路连接显示小地球(无法连接到Internet)
  8. charles及弱网测试
  9. cdn缓存服务器有网站图片,CDN缓存服务器图片存储一致性hash算法的理解
  10. solo 电路 耳放_SOLO耳放分析,带PCB布线