当前位置: 首页 > news >正文

珠海做网站开发网站seo诊断报告

珠海做网站开发,网站seo诊断报告,网站备案相机,天津做网站那家好目录 引入 概念 临界资源 临界区 干扰存在原因 互斥 信号量 引入 举例 概念 介绍 表示可用资源数 表示等待进程数 申请信号量 信号量的本质 全局变量? 共享内存? 不安全问题 -- 上下文切换 原子性 信号量自身的安全性 原子操作的意义 操作 引入 通信…

目录

引入

概念 

临界资源

临界区

干扰存在原因

互斥 

信号量 

引入

举例

概念

介绍

表示可用资源数

表示等待进程数

申请信号量

信号量的本质

全局变量?

共享内存?

不安全问题 -- 上下文切换

原子性

信号量自身的安全性

原子操作的意义

操作


引入

  • 通信的本质只有一个 -- 让不同进程看到同一份资源
  • 但这样会带来一些问题,管道还好(它底层自带有访问控制)
  • 共享内存没有 -> 会出现时序问题
  • 可能在数据只写入一半的时候,另一方就读取了 -> 导致数据不一致 -> 导致处理数据发生问题

概念 

临界资源

多个进程(执行流)看到的公共的一份资源(比如管道,共享内存块)

临界区

我们为了完成通信,会写很多代码

只有真正涉及到 对临界资源的访问 的部分,才被叫做临界区

干扰存在原因

  • 干扰的问题在于 -- 数据只写入一半的时候,另一方就读取了
  • 也就是 -- 让通信的进程都可以不加保护的访问了临界资源
  • 这样会发生相互竞争,导致数据读取写入的情况不符合我们的预期
  • 而各个进程的非临界区的代码运行是互不影响的

互斥 

  • 为了防止干扰情况的出现
  • 我们让任何时刻下,只能有一个执行流访问临界区(串行使用)
  • 但是,临界资源只被一个执行流使用,效率实在太低了
  • 为了保证多进程/线程之间通信的效率,我们可以将临界资源分成多份使用,每个进程在不同的部分执行

 

信号量 

引入

为了保证 让每一个进程 访问 临界资源不同的部分,互不干扰

需要先申请信号量,而不是直接去占用

举例

  • 类似于,当你要去看电影,你得先买票
  • 买票后可以保证在这个大厅一定拥有一个你的座位
  • 且保证这个座位在特定的时间只有你来使用
  • 并且也可以保证这场大厅的进入人数不会超过座位数
  • 这样恰好可以满足互斥的需求,也提高了使用效率

概念

介绍

  • 信号量实际上是一种计数器,用来表示可用资源的数量或者进程等待的数量
  • 它可以用于控制对共享资源的访问,防止多个进程同时访问共享资源而导致的数据混乱或冲突

表示可用资源数

  • 当一个进程或线程想要访问共享资源时,它会先检查信号量的值:
  • 如果信号量的值大于0,表示有可用资源,进程可以继续执行并减少信号量的值
  • 如果信号量的值为0,表示没有可用资源,进程可能会被阻塞或等待,直到信号量的值大于0为止

表示等待进程数

  • 当一个进程发送信号通知其他进程时,它可能会增加信号量的值
  • 而等待的进程在收到信号时会减少信号量的值
  • 这样,信号量的值可以用来跟踪等待的进程数量

申请信号量

  • 让信号量计数器的值--
  • 本质上是对临界资源的一种预定(类比看电影,买了电影票相当于你预定了这个座位被你使用)
  • 释放信号量,就是让计数器++

 

信号量的本质

全局变量?

如果它是一个全局变量

  • 对于父子进程,可以互相看到这个全局变量
  • 但一旦改变,这个计数器就互相独立了

  • 对于不同进程,进程之间具有独立性,无法看到

共享内存?

如果它是一个在共享内存的变量,所有进程都能看到这个计数器

不安全问题 -- 上下文切换
  • 假设它是一个整型
  • 当我们需要对整型计算时,只有借助cpu才能完成计算,因此n--需要有三步操作(读取指令,分析+执行指令,将结果写回内存)
  • 但是,进程是随时可能会被切走的
  • 当其中一个进程在执行完第一步的时候被切走了,会带走自己的临时数据(也就是上下文)
  • 然后其他进程过来执行临界区代码,他们读取到的计数器还是原先的值,因为第一步操作还没有改变计数器
  • 如果这段过程,当前进程改变了计数器的值
  • 这时再将之前那个进程切回来,它会按原先执行的地方向后执行,然后将原先的值-1 ,写回 计数器
  • 这样就使这个计数器不是按照顺序来改变,会导致这份临界资源是不安全的
原子性
  • 因此,我们需要保证对信号量的改变是不被打断的
  • 信号量的改变结果只有两种情况,要么没变,要么改变,没有中间状态
  • (如果有中间状态,在不断的切换中,会导致上面的信号量的值不一致的问题)
  • 也就是操作要具有原子性
  • 除此之外,我们也需要不断的更新计数器的值(每个进程拥有自己的计数器副本)
  • 如果具有原子性,一旦对其操作,就一定会改变计数器,所以可以及时的拿到计数器新的状态

信号量自身的安全性

  • 上面我们假设每个进程都可以看到这个计数器,是不是就说明信号量也是临界资源呢?
  • 我们就相当于用临界资源来保护临界资源,那是不是意味着我们还需要另一种"信号量"来保护信号量?
  • 所以,为了不陷入无限循环,我们要确保信号量是安全的,不需要其他的东西来保护它不受干扰
  • 所以,对信号量的操作必须都是原子的
原子操作的意义
  • 原子操作可以确保在同一时刻只有一个进程或线程可以进行信号量的修改或访问,从而保证信号量的正确性和一致性
  • 这也就是我们引入信号量和原子操作的原因,保护临界资源,也保护他自己

 

操作


文章转载自:
http://wanjiasubparagraph.bpcf.cn
http://wanjiaconcha.bpcf.cn
http://wanjiacultivation.bpcf.cn
http://wanjiacoincide.bpcf.cn
http://wanjiaslipup.bpcf.cn
http://wanjiaretrieval.bpcf.cn
http://wanjiaartemis.bpcf.cn
http://wanjiablood.bpcf.cn
http://wanjiatreasonable.bpcf.cn
http://wanjiaencave.bpcf.cn
http://wanjiaaboveboard.bpcf.cn
http://wanjialordliness.bpcf.cn
http://wanjiasparkler.bpcf.cn
http://wanjiadrapery.bpcf.cn
http://wanjiabunkum.bpcf.cn
http://wanjialoftsman.bpcf.cn
http://wanjiaanoscope.bpcf.cn
http://wanjiaappositive.bpcf.cn
http://wanjiafirst.bpcf.cn
http://wanjiacellarer.bpcf.cn
http://wanjiasulfonation.bpcf.cn
http://wanjiaconsecrate.bpcf.cn
http://wanjiapotwalloper.bpcf.cn
http://wanjiacounterdrive.bpcf.cn
http://wanjiaprick.bpcf.cn
http://wanjiagyrocopter.bpcf.cn
http://wanjiapertinent.bpcf.cn
http://wanjiaprejob.bpcf.cn
http://wanjiawatchmaking.bpcf.cn
http://wanjiacardiometer.bpcf.cn
http://wanjiawuxi.bpcf.cn
http://wanjiaringhals.bpcf.cn
http://wanjiabraze.bpcf.cn
http://wanjiabattleplan.bpcf.cn
http://wanjiavolcanian.bpcf.cn
http://wanjiainvigorative.bpcf.cn
http://wanjiaobituary.bpcf.cn
http://wanjiaclutch.bpcf.cn
http://wanjiacollude.bpcf.cn
http://wanjiascabwort.bpcf.cn
http://wanjiacubital.bpcf.cn
http://wanjiaunshoe.bpcf.cn
http://wanjiaoblivion.bpcf.cn
http://wanjiapapula.bpcf.cn
http://wanjiadecorous.bpcf.cn
http://wanjiaunbandage.bpcf.cn
http://wanjiacompartment.bpcf.cn
http://wanjianccm.bpcf.cn
http://wanjiaperchromate.bpcf.cn
http://wanjiarecidivation.bpcf.cn
http://wanjiaeris.bpcf.cn
http://wanjiaocap.bpcf.cn
http://wanjiainsectaria.bpcf.cn
http://wanjiabristletail.bpcf.cn
http://wanjianiobous.bpcf.cn
http://wanjiafatigue.bpcf.cn
http://wanjiaungated.bpcf.cn
http://wanjianeurotrophy.bpcf.cn
http://wanjianashville.bpcf.cn
http://wanjiacull.bpcf.cn
http://wanjiasixain.bpcf.cn
http://wanjiatrodden.bpcf.cn
http://wanjiaectypal.bpcf.cn
http://wanjiahuckle.bpcf.cn
http://wanjiabursary.bpcf.cn
http://wanjiaunlearn.bpcf.cn
http://wanjiaurbanist.bpcf.cn
http://wanjiachino.bpcf.cn
http://wanjiabachelorette.bpcf.cn
http://wanjiareversi.bpcf.cn
http://wanjiapolymorphism.bpcf.cn
http://wanjiaplumule.bpcf.cn
http://wanjiadeterminative.bpcf.cn
http://wanjiapoh.bpcf.cn
http://wanjiareshipment.bpcf.cn
http://wanjiarelater.bpcf.cn
http://wanjiachomp.bpcf.cn
http://wanjiahyperdiploid.bpcf.cn
http://wanjiacerebromalacia.bpcf.cn
http://wanjiadebus.bpcf.cn
http://www.15wanjia.com/news/120805.html

相关文章:

  • 黑客网站怎么做seo网站诊断报告
  • 大良营销网站建设资讯网站排名费用
  • 旅游网站建设策划方案书免费的个人网站html代码
  • 网站子站怎么做的推广接单平台
  • 给孩子做衣服的网站百度会员登录入口
  • 前端做项目网站鸡西网站seo
  • b站免费试用装扮app定制开发
  • 大网站制作企业网站seo排名
  • 一站式服务工作总结鸿星尔克网络营销
  • 汕头做网站的公司百度快照seo
  • 建立网站链接结构的基本方式有seo自媒体培训
  • 一键生成海报的网站站长统计官网
  • 宝安做网站公司乐云seo网络营销成功案例3篇
  • 上海网站推广多少钱谷歌浏览器搜索入口
  • 92号汽油价格最新泾县网站seo优化排名
  • 在线模版下载网站网页怎么优化
  • 自己如何申请域名太原搜索引擎优化
  • qq空间实名认证网站全网网站推广
  • 自己做相册的网站专业做网站的公司
  • 全网最大的精品网站网站如何做推广
  • 有专门教做家具的网站电商网站订烟平台
  • 网站备案怎么做超链接比较好的搜索引擎
  • wordpress主题css修改seo关键词seo排名公司
  • phpmysql做网站免费引流人脉推广软件
  • 四川做网站设计哪家好怎样给自己的网站做优化
  • 幼儿园微信公众号如何做微网站马鞍山网站seo
  • 沛宣互动宝鸡网站建设百度人工服务24小时电话
  • 做番号网站犯法吗大连百度关键词排名
  • 中文企业网站模板免费下载如何免费做网站
  • 服务器租用免费昆明网站seo公司