【Linux系统】信号量(初次理解)

五个概念

  1. 多个执行流(进程),能看到的一份资源:共享资源
  2. 被保护起来的资源可以叫临界资源(同步和互斥) --- 用互斥的方式保护共享资源就叫临界资源
  3. 互斥:任何时刻只能有一个进程在访问共享资源
  4. 资源,要被程序员访问,资源被访问,朴素的认识,就是通过代码访问,所以代码 = 访问共享资源的代码(临界区) + 不访问共享资源的代码(非临界区)
  5. 所谓的对共享资源进行保护就是临界资源,本质是对访问共享资源的代码进行保护!

 

信号量理论理解

引入结论:信号量本质是一个计数器,比如count=16

讲信号量之前先引入一个故事

 我们都喜欢去电影院看电影,但是呢,电影院有vip房间,有普通房间

vip房间只供一人观看,普通房间是很多人在一起看!

看电影我们要买票,我们买一张票:本质不就是对资源的预定机制!

我们最担心的是超过资源个数的卖票!

int count = 16;

if(count>0)count--;else wait;

//购票

count++;

电影院:共享资源(临界资源)买票:申请信号量!票数:信号量的初始值!

申请信号量的本质:就是对公共资源的一种预定机制!

信号量也是共享资源,所以申请信号量流必须经过,申请信号量,访问共享内存,释放信号量

 回过头来再看,电影院的vip房间,不就是对共享资源的整体使用,其实不就是资源只有一个吗?

那里面要么没人,要么就一个人,1 or 0 ,二元信号量,当里面有人时,其他人就不能进入,这其实是互斥!

普通房间:1.先买票 2.让执行流和资源进行一一对应(程序员编码实现)

信号量本质是一个计数器!!!

申请信号量,访问共享内存,释放信号量

int count = 16;

if(count>0)count--;else wait;

//购票

count++;

申请信号量代表对计数器-- 释放信号量代表对计数器++

-- 安全的操作,我们叫P操作 ++ 安全的操作,我们叫V操作

所以就有PV操作  --- 安全的   --- 原子性

我们可以用一个全局变量gcount=25来代表信号量吗?;不能!!!

1.全局变量不能被所有进程看到。

2.gcount++,不是原子的。

怎么可以让其他进程也能看到?

IPC信号量就来了!!!-> 和共享内存,消息队列一样,也必须先让,不同的进程看到同一个“计数器”!!!这意味着信号量也是一个公共资源,保护临界资源的安全,前提是不是,你自己得是安全的!!!

信号量操作接口

semget

 key:与共享内存的key类似

nsems:运行用户一次申请多个信号量  -- 信号量集,用数组来维护

 semctl

 semop

 使用上都与共享内存相仿!!!

信号量指令

ipcs -s

ipcrm -s semid

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/792981.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

就业平台小程序的设计

管理员账户功能包括:系统首页,个人中心,学生管理,企业管理,企业类型管理,留言板管理,系统管理 微信端账号功能包括:系统首页,招聘信息,简历,我的 …

SpringCloud--Eureka集群

Eureka注册中心集群 为什么要集群 如果只有一个注册中心服务器,会存在单点故障,不可以高并发处理所以要集群。 如何集群 准备三个EurekaServer 相互注册,也就是说每个EurekaServer都需要向所有的EureakServer注册,包括自己 &a…

游戏如何应对黑灰产工作室

游戏黑灰产工作室,是指以非法渠道、非法手段通过游戏进行牟利的团伙。使用脚本、外挂是黑灰产工作室的显著特征,其常见的牟利方式有:打金工作室、资源囤积号、初始号、自抽号、代练工作室以及营销欺诈等。 ▲ 常见的游戏黑灰产工作室牟利路径…

PMP证书 怎么报名?

首先,PMP证书相当于某些行业的敲门砖,身处项目管理相关行业的人应该清楚,这个证书,可能是你升职的不可或缺的一把钥匙。首先,我们先来了解一下什么是pmp。 1充分了解PMP PMP(项目管理专业人士资格认证&am…

idm站点抓取可以用来做什么 idm站点抓取能抓取本地网页吗 idm站点抓取怎么用 网络下载加速器

在下载工具众多且竞争激烈的市场中,Internet Download Manager(简称IDM)作为一款专业的下载加速软件,仍然能够赢得众多用户的青睐,这都要得益于它的强大的下载功能。我们在开始使用IDM的时候总是有很多疑问&#xff0c…

「iOS」暑假第一周 —— ZARA的仿写

暑假第一周 ZARA的仿写 文章目录 暑假第一周 ZARA的仿写写在前面viewDidLoad 之中的优先级添加自定义字体下载想要的字体添加至info之中找到字体名字并应用 添加应用图标和启动页面 写在前面 暑假第一周留校学习,对于ZARA进行了仿写,在仿写的过程之中&a…

探索创意无限:独特的平面设计趋势与案例分享

随着平面设计领域的不断发展,平面设计趋势也在不断变化。在一个信息爆炸的时代,设计不仅仅是视觉的表达,更是思想和情感的交流。到了 2024 年,一些新的平面设计趋势已经开始显现,同时一些旧的趋势得到了新的发展和再度…

Jenkins安装部署与配置

目录 前言 Jenkins 的主要功能 Jenkins 的工作流程 一. 环境准备 二. 安装JDK 三. 安装Tomcat 四. 部署Jenkins 五. 浏览器访问 六. 修改超级管理员默认密码 七. 系统配置 八. 安装插件 九. 手动部署插件 前言 Jenkins 是一个开源的自动化服务器,用于…

C# 串口数据转网口实现空气风速风向检测

1.窗体搭建 添加time(定时器) 因为需要风速和风向自动刷新 2.进行网口空气检测 ①服务器连接按钮 // 连接按钮private void button1_Click(object sender, EventArgs e){if (button1.Text "连接"){ConnectSocke();// 连接服务器}else{CloseSocket(); // 关闭服务器…

苹果提出RLAIF:轻量级语言模型编写代码

获取本文论文原文PDF,请在公众号【AI论文解读】留言:论文解读 代码生成一直是一个充满挑战的领域。随着大型语言模型(LLM)的出现,我们见证了在自然语言理解和生成方面的显著进步。然而,当涉及到代码生成&a…

XD文件打开神器:这个在线工具你一定要试试!

你有没有遇到过对设计师发来的XD文件没有头绪?不知道XD文件深层含义?如何打开XD文件最省时省力?这篇文章告诉你答案。 https://ad.js.design/online/xd/?sourcecsdn&planxy711 XD文件是什么? 事实上,XD文件就是…

C++入门基础篇(1)

欢迎大家来到海盗猫鸥的博客—— 断更许久,让我们继续好好学习吧! 目录 1.namespace命名空间 命名空间的存在价值: 命名空间的定义: 命名空间的使用: 2.C输入输出函数 使用: 3.缺省参数 4.函数重载…

界面组件Kendo UI for React 2024 Q2亮点 - 生成式AI集成、设计系统增强

随着最新的2024年第二季度发布,Kendo UI for React为应用程序开发设定了标准,包括生成式AI集成、增强的设计系统功能和可访问的数据可视化。新的2024年第二季度版本为应用程序界面提供了人工智能(AI)提示,从设计到代码的生产力增强、可访问性…

linux-5.10.110内核源码分析 - Freescale ls1012a pcie msi中断

1、dts msi控制器描述 1.1、dts描述 msi: msi-controller11572000 {compatible "fsl,ls1012a-msi";reg <0x0 0x1572000 0x0 0x8>;msi-controller;interrupts <0 126 IRQ_TYPE_LEVEL_HIGH>; };ls1012a msi控制器具体介绍可以参考官网手册”25.1.1 PC…

【cocos creator】2.x,伪3d拖拽,45度视角,60度视角,房屋装扮

伪3d拖拽,45度视角,60度视角 工程下载:(待审核) https://download.csdn.net/download/K86338236/89530812 dragItem2.t s import mapCreat2 from "./mapCreat2";const {ccclass, property } = cc._decorator; /*** 拖拽类,挂在要拖拽的节点上*/ @ccclass export…

电影购票小程序论文(设计)开题报告

一、课题的背景和意义 随着互联网技术的不断发展&#xff0c;人们对于购票的需求也越来越高。传统的购票方式存在着排队时间长、购票流程繁琐等问题&#xff0c;而网上购票则能够有效地解决这些问题。电影购票小程序是网上购票的一种新型应用&#xff0c;它能够让用户随时随地…

MacOS可以玩什么游戏 苹果笔记本电脑能打游戏吗 macbook能打什么游戏

长期以来&#xff0c;Mac电脑在游戏方面的局限性一直是用户关注的问题。在最新的 macOS Sonoma 14 系统中&#xff0c;苹果首次引入了全新的 Game mode&#xff08;游戏模式&#xff09;&#xff0c;将 M 系列芯片的超强能力在游戏中进一步释放&#xff01; Mac 不能玩游戏的难…

Fragment(未完结)

什么是Fragment? 1:具备生命周期,小Activity 2:必须委托在activity中才能运行 Fragment初体验 1、创建fragment_blank.xml <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://schemas.android.com/tools&qu…

一进四出学生公寓电表功能对比

一进四出学生公寓对比石家庄光大远通电气有限公司产品使用功能&#xff1a;预收费功能&#xff1a;用户应先到学校购电处购电,售电计算机将在十秒钟内自动将数据发送到控电柜各个用电单元,然后系统会给用户供电,当用户剩余电量为零时,系统可自动切断该单元供电,只有当用户重新购…

MYSQL审批流程判断同一层级审批人是否全部通过审批

在做流程审批的时候&#xff0c;通常会出现某一层有多个审批人的情况&#xff0c;这个时候需要所有人都通过才会进入到下一步 数据结构如下图表格所示 每一个审批申请对应一个apply_id serial_no相同的代表是同一层级审批人 approval_status是审核状态 下面我们可以用一个SQL来…