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

网站开发合同怎么写重庆建设工程安全网

网站开发合同怎么写,重庆建设工程安全网,微信登陆入口官网,wordpress 加载进度条1. 并发编程概念铺垫> 多个执行流【进程】看到同一份资源:共享资源。> 被保护起来的资源叫做临界资源。> 在进程中,涉及临界资源的程序段叫做临界区。【说人话就是程序中访问共享资源的代码】> 什么是互斥:任何时刻,只…

1. 并发编程概念铺垫

> 多个执行流【进程】看到同一份资源:共享资源

> 被保护起来的资源叫做临界资源

> 在进程中,涉及临界资源的程序段叫做临界区。【说人话就是程序中访问共享资源的代码】

> 什么是互斥:任何时刻,只允许一个执行流访问资源叫叫作互斥。【比如,一个进程在访问临界资源的时候,另一个进程无法访问,直到前者访问结束解锁,将锁交给后者,后者才能访问临界区!】

> 什么是同步:多个执行流,访问临界资源的时候,具有一定的顺序性,叫做同步。

> 所谓对共享资源的保护,本质上是对共享资源代码的保护【即对临界区的保护】。

2. 认识并理解信号量

什么是信号量呢?信号量本质就是计数器,用来描述临界资源中资源的多少。

我们的进程在访问临界资源时,并不是说,你想访问就访问。其实,临界资源也是分一块一块的,每个进程如果成功访问临界资源,那么这块临界资源就势必会被占用。一旦临界资源被占满了,后来的进程就无法再访问临界资源了。系统又是如何做到这一点的呢?所有进程在访问临界资源之前,都必须要先申请信号量【我们现在可以简单把它理解为一个整形变量的计数器,用来描述临界资源的多少】,一旦申请成功,计数器减减。至此,该进程就可以随时访问系统为其分配的临界资源。但是,如果资源不够,那么该进程就会被阻塞挂起。所以,信号量的本质是对资源的预定机制

细节一:信号量需要被所有进程访问,那么信号量本身就是共享资源。信号量需要被保护起来,那么对于信号量的操作必须是要原子性的。我们把申请信号量,计数器++叫做p操作,进程结束访问临界资源,计数器--叫做v操作。所以,信号量通过PV操作来完成资源的预定机制。【而这两个操作都必须是要原子性的,至于如何保证原子性后面再说】

细节二:只有1和0两态的信号量叫做二元信号量【也就是互斥】

细节三:信号量和通信有什么关系呢?为什么信号量会被归为进程间通信的范畴呢

首先,进程对资源的访问,都必须要先申请信号量,所以进程看到了同一份资源。其次,不只是传递数据才是进程间通信,同步互斥通知也是进程间通信。比如:在进程a申请信号量时,计数器为0,那么进程a申请信号量失败,进程a则阻塞挂起到等待队列中。有朝一日,进程b访问临界资源结束,释放资源,计数器++,进程a看到后被唤醒申请临界资源。在上面这个例子中,进程b通过信号量完成了对进程a的控制

3. 系统如何管理组织ipc

我们前面一直说,系统内部有描述共享内存|消息队列|信号量的结构体对象,我们也可以理解。但是,系统内部是如何管理组织这些结构体对象呢???

不急,我们先来看看一些有关消息队列和信号量的接口:

信号量创建接口:

信号量控制接口:

消息队列创建接口:

 消息队列控制接口:

通过观察以上的接口,我们发现描述这些ipc的结构体对象都有一个共性:就是它们都命名为struct xxxid_ds,并且第一个成员类型都是struct ipc_perm,而且ipc_perm中的第一个成员都是key

因此,我们可以得出一个结论:在Linux内核中,共享内存,消息队列,信号量都用key来唯一区分!并且它们被系统当做了同一种资源。 

事实上,在Linux内核中,有一种全局的数据结构来管理组织ipc,就是struct ipc_ids。其中,entries指针指向ipc_id_ary,ipc_id_ary中有一个结构叫柔性数组

 而该柔性数组中则管理了内核中的所有ipc,无论是共享内存,消息队列还是信号量。但是,系统又是如何区分不同的结构体呢【毕竟柔性数组若是没有相应的类型,我们就这能获得它指向元素的第一个成员】??我们可以这样理解,在创建控制不同类型的ipc时,我们使用的系统调用是不同的,内核中对柔性数组可以因此来区分不同类型的结构体,到时用得到的类型进行强转即可。至此,我们也终于明白了,xxxid为什么在不断的增长,因为他就是柔性数组的下标,我们也不用担心数组下标越界。当下标到达最大值时,管理柔性数组的结构体会对其下标进行回绕。

下面是部分内核图帮我们理解:

http://www.dtcms.com/wzjs/814413.html

相关文章:

  • 查公司备案网站备案两个域名指向一个网站
  • 铁岭网站制作wordpress 目录函数
  • 2017如何做企业网站做网站需要哪些方面的支出
  • 常德论坛市民留言嘉定区整站seo十大排名
  • 微信电影网站建设教程广州网站制作功能
  • 深圳网站建设有限公司 2019网站建设工作动态
  • 国内最大的网站制作公司网站上传视频教程
  • 企业网站优化公司有哪些商丘做手机做网站
  • 手机网站报价表合肥网站建设哪家好
  • 做网站的背景怎么调整大小除了淘宝还有哪些购物网站
  • 温州网站建设备案建立网站目录结构时正确的建议是
  • 豆瓣网站是怎么建设的做网站去什么公司
  • 网站建设公司的方案wordpress绿竹主题
  • 军人运动会官方网站建设目标打电话做网站的话术
  • 易网拓做网站多少钱有限责任公司破产法人承担的责任
  • 建设机械网站机构营销型网站建设iop
  • 免费商城网站模板下载江苏省建是国企吗
  • 长沙网站推广¥做下拉去118cr电子商城网站模板
  • wordpress双语站wordpress不用邮箱
  • 做俄罗斯外贸网站推广门户设计模板
  • 都是些什么企业需要建设网站滨江区高端网站建设
  • 从事建站业务还有前景吗网站建设简介联系方式
  • 青岛网站建设服务网页游戏传奇霸主
  • 手机怎样做刷赞网站惠州seo博客报价
  • 山西省经济建设投资公司网站店铺logo图片免费
  • 设置网站的黑名单怎么做服务类网站怎么做
  • 个人网站设计论文前言嘉兴建站模板系统
  • 建立企业网站要多少钱wordpress好插件
  • 杭州哪家网站建设好shein跨境电商平台
  • 免费数据源网站python做网站吗