首页 > 其他分享 >信号量、临界资源、临界区

信号量、临界资源、临界区

时间:2023-02-20 20:33:05浏览次数:31  
标签:计数器 信号量 访问 临界 进程 资源

 

信号量的基本概念:

一、首先:我们要知道信号量是什么?

       信号量的本质是数据操作锁,它本身不具有数据交换的功能,而是通过控制其他的通信资源(文件,外部设备)来实现进程间通信,它本身只是一种外部资源的标识。信号量在此过程中负责数据操作的互斥、同步等功能。

这是书本上介绍的信号量的概念,自己的理解比较简单:

     信号量就是具有原子性的计数器,就相当于一把锁,在每个进程要访问临界资源时,必须要向信号量拿个锁”,它才能进去临界资源这个“房间”,并锁上门,不让其他进程进来,此时信号量执行P()操作,锁的数目减少了一个,所以计数器减1,;当它访问完成时,它出来,将锁还给信号量,执行V()操作,计数器加1;然后是下面的进程继续。这也体现了各个进程访问临时资源是互斥的。

“原子性”:表示的是一件事情的两种状态,做了这件事和没做这件事;

“计数器”:信号量通常描述的是临界资源的数目;同时信号量本身就是临界资源,它的目的也是保护临界资源,解决数                 据不一致问题;

“临界资源”:不同进程可以看到的那份共同的资源;

“临界区”:多个进程访问临界资源的代码;

“互斥”:任何时刻,只允许一个临时区访问临时资源,并且属性是原子的。

 

二、我们为什么要使用信号量

     为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行线程访问代码的临界区域。临界区域是指执行数据更新的代码需独占式地执行。而信号量就可以提供这样的一种访问机制,让一个临界区同一时间只有一个线程在访问它,也就是说信号量是用来调协进程对共享资源的访问的。其中共享内存的使用就要用到信号量。

 

标签:计数器,信号量,访问,临界,进程,资源
From: https://www.cnblogs.com/softidea/p/17138827.html

相关文章

  • 容器资源隔离与资源限制
    我们知道,Docker是使用Linux的Namespace技术实现各种资源隔离的。那么究竟什么是Namespace,各种Namespace都有什么作用,为什么Docker需要Namespace呢?下面我带你一......
  • 项目一众筹网02_4_SpringMVC访问静态资源:/*,/,和*.do和*.html的区别
    系列文章目录文章目录​​系列文章目录​​​​项目答疑​​​​这样做必有它的理由,但是却不是十全十美的,得必有舍​​项目答疑我们这里为什么@RequestMapping(“admin/do/......
  • Vue3开箱即用中后台管理资源推荐
    Vue3-admin-element-template基于Vue3、Vite2、Element-Plus、Vue-i18n、Vue-router4.x、Vuex4.x、Echarts5等最新技术开发的中后台管理模板官方文档:文档地址Gin-vue-a......
  • ORA-00054:资源正忙,但指定以 OWAIT 方式获取资源,或者超时失效
    向某表执行大概100MB的insert脚本,执行了近15个小时还未执行完成,准备truncate掉,改用dmp文件导入。truncate时:  解决方案:执行以下SQL查看有没有对象被锁SELECTl.se......
  • 微信小程序主包和分包的资源可以相互引用吗
    了解主包、分包整个小程序所有分包大小不超过20M;单个分包/主包大小不能超过2M主包:a.放置默认启动页面&&tabBar页面,以及一些分包需要用到的公共资源(如wxss、......
  • 夸克网盘资源分享大全
    夸克网盘是夸克浏览器改名为【夸克】后推出的网盘,主打快速和搜索功能,可以添加磁力链接下载,缓存功能也十分强大无比。相比天翼云盘、阿里云盘和百度网盘,虽然在资源数量上来......
  • Jmeter监控服务器资源
    在性能测试阶段,一般最难做的阶段就是性能分析和性能调优,当前若是我们对需求的理解、场景的设计、用例的编写出现了差错,那就直接影响到后面的所有,前面方向都不对,那后面肯定......
  • Linux 获取设置资源API
    getrlimit()/setrlimit()函数获取或设置资源使用限制,linux下每种资源都有相关的软硬限制,软限制是内核强加给相应资源的限制值,硬限制是软限制的最大值。非授权调用的进程......
  • nginx(二) の 配置静态资源网站
    首先在开始配置前,要想明白,nginx配置静态资源服务时基本逻辑,其实就是要将路由地址与服务器中文件真实的存储地址进行映射。配置静态资源样例配置前,首先要将当前配置......
  • 资源--博客
    (182条消息)【7】QT_大黑山修道的博客-CSDN博客 Qt相关(182条消息)Qt_GreenArrowMan的博客-CSDN博客 Qt相关......