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

好的网站建设价格nba新闻最新消息

好的网站建设价格,nba新闻最新消息,印度网站后缀,万网怎么查看网站日志Linux通信System V:消息队列 & 信号量 一、信号量概念二、信号量意义三、操作系统如何管理ipc资源(2.36版本)四、如何对信号量资源进行管理 一、信号量概念 信号量本质上就是计数器,用来保护共享资源。多个进程在进行通信时&a…

Linux通信System V:消息队列 & 信号量

  • 一、信号量概念
  • 二、信号量意义
  • 三、操作系统如何管理ipc资源(2.36版本)
  • 四、如何对信号量资源进行管理

一、信号量概念

信号量本质上就是计数器,用来保护共享资源。多个进程在进行通信时,前提需要看到同一份共享资源。但多个进程对公共资源并发访问时,通常会伴随着数据不一致问题。我们。一般采用同步和异步机制对公共资源进行保护!!其中被保护的资源被称为临界资源;访问该临界资源的代码称为临界区!!

  1. 同步:任何时候只运行一个执行流(进程)访问公共资源,通过加锁完成!
  2. 异步:多个执行流执行的时候,按照一定的顺序执行。
  3. 原子性:只有2态,要么做,要么不做。
  4. 被保护的公共资源被称为公共资源,访问该公共资源的代码称为临界区。

二、信号量意义

 首先,我们先来想一个问题:当我们买票看电影时,座位是购买票后就属于你,还是只有当你坐在那个位置才属于你?显然,当我们买完票后,票上显示的座位就属于你。电影院是公共资源,而买票的行为本质上是对公共资源(作为)的预定!!

 同理,信号量本质上就是一把表示公共资源数目的计数器。在计算机中,公共资源可以被分为多个部分,而信号量表示资源数目的计数器。当一个执行流想要访问公共资源时,不因该直接让其访问,否则会导致数据不一致问题!(例如:多个进程通过一块公共资源进程通信时,当进程A在向公共资源中写入数据但还未写完时,如果此时其他进程此时读取公共资源中的数据,可能会导致数据被覆盖,最后可能导致所有进程的数据都错误失效!!)

所以当执行流想要访问公共资源时,因该让其先申请信号量资源,也就是让计数器减1。一旦申请成功就完成公共资源的预定,可以访问随时访问公共资源。否则信号量申请失败,执行流就要被挂起阻塞!!

在这里插入图片描述

三、操作系统如何管理ipc资源(2.36版本)

 下面我们先来看看消息队列和共享内存结构体中都维护了哪些信息!

【消息队列】:
在这里插入图片描述
【公共内存】:
在这里插入图片描述

 我们发现两种ipc资源结构体中的首元素都是struct ipc_perm类型,即使ipc种类不同,但是struct ipc_perm类型结构体中保存的数据却全部一样!!而在也是OS管理不同ipc资源的核心!!

 原因在于在系统层面上,系统可以找到一个名为ipc_ids结构体,在该结构体中存在一个指针*entires。该指针指向一个柔性数组。该柔性数组首元素保存ipc资源个数,而1 ~ n-1保存的是每个一ipc资源首元素地址。也就是上面我们所看到的struct ipc_perm结构体,具体如下:

struct ipc_perm {key_t          __key;    /* Key supplied to shmget(2) */uid_t          uid;      /* Effective UID of owner */gid_t          gid;      /* Effective GID of owner */uid_t          cuid;     /* Effective UID of creator */gid_t          cgid;     /* Effective GID of creator */unsigned short mode;     /* Permissions + SHM_DEST andSHM_LOCKED flags */unsigned short __seq;    /* Sequence number */
};

 当操作系统需要访问不同ipc资源时,我们已经在柔性数组中得到了ipc资源的首元素地址,此时我们只需将其强转为特定ipc类型即可!!

在这里插入图片描述

 即使ipc资源类型各异,但我们将所有ipc资源的首元素struct ipc_perm结构体保存到柔性数组。让操作系统以统一的视角看待所有的ipc资源,从而实现对不同ipc资源的统一管理!

四、如何对信号量资源进行管理

 访问共享资源时,首先要申请信号量资源。这也意味访问同一块公共资源的进程需要看到同一份信号量资源,而该资源只能由OS申请,被添加到ipc体系!

 信号量是用来保护公共资源的,但多个进程需要看到同一份信号量资源,即信号量资源本身也是公共资源。那谁来保护信号量资源呢?

 所以在OS中,信号量资源被设计成原子的。即任意时刻,只运行一个执行流访问信号资源。信号量资源的申请和释放本质上是计数器的++和–。其中申请信号量资源被称为P策略,释放信号量资源被称为V策略

 既然信号量资源是一种ipc资源,并且操作系统中存在多个信号量资源。操作系统需要对信号量资源进行管理,先组织,在描述!对于单个信号量资源,OS中会维护下面这样一个结构体进行描述:(暂时简单理解如下)

struct sem
{int count;//信号量资源个数task_struct *wait_queue;//等待访问该公共资源的进程队列
}

在这里插入图片描述

http://www.shuangfujiaoyu.com/news/63577.html

相关文章:

  • 苏州园区两学一做网站seo引擎优化培训
  • 宁波网站建设佳选蓉胜网络好云浮网站设计
  • 东莞网站建设_东莞网页设计百度近日收录查询
  • 最近新闻热点大事件优化游戏性能的软件
  • 禅城网站建设seo优化上首页
  • 简述网站建设基本流程图河南省干部任免最新公示
  • 国家 政府网站建设 指导性文件有哪些企业网站建设的基本流程
  • 网站建设 可行性河南省干部任免最新公示
  • 山东住房建设部官方网站台州网站建设方案推广
  • 3d做号网站做网站公司哪家正规
  • 网站日志太大怎么分析网络推广策划方案怎么写
  • 品牌网站建设公司百度官方网站首页
  • 油金地 做网站网络营销策划模板
  • 京东网站建设项目需求分析报告原创文章代写平台
  • 自由策划网站建设信息推广平台有哪些
  • 小程序网站开发运行合同网站排名优化课程
  • 深圳阿里网站设计公司阿里指数官网最新版本
  • 网站建设采用thinkphp框架的优势郑州网站建设哪家好
  • 帮人做网站推选的公司免费做网站自助建站
  • 电脑做微信推送的网站整合营销推广
  • 怎么自己做网站模板互联网营销推广
  • 全国住房和城乡建设厅证书查询网南宁百度seo软件
  • 安徽网络推广新手seo博客写作
  • 响应式门户网站模板互联网营销方案策划
  • 定西网站建设宁波seo如何做推广平台
  • 网站建设方案模板下载网站开发流程的8个步骤
  • 网站正在建设中视频广告策划方案怎么做
  • 公司网站建设的目标是什么深圳哪里有网络推广渠避
  • 平湖新埭哪里有做网站的中国职业培训在线官方网站
  • 住房和城乡建设部网站 城市绿地分类怎么做电商创业