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

企业进行网站建设的方式dw网站模板免费下载

企业进行网站建设的方式,dw网站模板免费下载,英德市建设及城乡管理局网站,浙江省信息港官网Linux内核的同步机制(1)yanqin | 2009-04-16 14:51:09 阅读#xff1a;791发布文章一、 引言%A%A 在现代操作系统里#xff0c;同一时间可能有多个内核执行流在执行#xff0c;因此内核其实象多进程多线程编程一样也需要一些同步机制来同步各执行单元对共享数据的访问。尤…Linux内核的同步机制(1)yanqin | 2009-04-16 14:51:09    阅读791 发布文章一、 引言%A%A 在现代操作系统里同一时间可能有多个内核执行流在执行因此内核其实象多进程多线程编程一样也需要一些同步机制来同步各执行单元对共享数据的访问。尤其是在多处理器系统上更需要一些同步机制来同步不同处理器上的执行单元对共享的数据的访问。在主流的Linux内核中包含了几乎所有现代的操作系统具有的同步机制这些同步机制包括原子操作、信号量(semaphore)、读写信号量(rw_semaphore)、spinlock、BKL(Big Kernel Lock)、rwlock、brlock(只包含在2.4内核中)、RCU(只包含在2.6内核中)和seqlock(只包含在2.6内核中)。%A%A%A%A 二、原子操作%A%A 所谓原子操作就是该操作绝不会在执行完毕前被任何其他任务或事件打断也就说它的最小的执行单位不可能有比它更小的执行单位因此这里的原子实际是使用了物理学里的物质微粒的概念。%A%A 原子操作需要硬件的支持因此是架构相关的其API和原子类型的定义都定义在内核源码树的include/asm/atomic.h文件中它们都使用汇编语言实现因为C语言并不能实现这样的操作。%A%A 原子操作主要用于实现资源计数很多引用计数(refcnt)就是通过原子操作实现的.%A%A%A%A 三、信号量(semaphore)%A%A Linux内核的信号量在概念和原理上与用户态的System V的IPC机制信号量是一样的但是它绝不可能在内核之外使用因此它与System V的IPC机制信号量毫不相干。%A%A 信号量在创建时需要设置一个初始值表示同时可以有几个任务可以访问该信号量保护的共享资源初始值为1就变成互斥锁(Mutex)即同时只能有一个任务可以访问信号量保护的共享资源。一个任务要想访问共享资源首先必须得到信号量获取信号量的操作将把信号量的值减1若当前信号量的值为负数表明无法获得信号量该任务必须挂起在该信号量的等待队列等待该信号量可用若当前信号量的值为非负数表示可以获得信号量因而可以立刻访问被该信号量保护的共享资源。当任务访问完被信号量保护的共享资源后必须释放信号量释放信号量通过把信号量的值加1实现如果信号量的值为非正数表明有任务等待当前信号量因此它也唤醒所有等待该信号量的任务。%A%A%A%A 四、读写信号量(rw_semaphore)%A%A 读写信号量对访问者进行了细分或者为读者或者为写者读者在保持读写信号量期间只能对该读写信号量保护的共享资源进行读访问如果一个任务除了需要读可能还需要写那么它必须被归类为写者它在对共享资源访问之前必须先获得写者身份写者在发现自己不需要写访问的情况下可以降级为读者。读写信号量同时拥有的读者数不受限制也就说可以有任意多个读者同时拥有一个读写信号量。如果一个读写信号量当前没有被写者拥有并且也没有写者等待读者释放信号量那么任何读者都可以成功获得该读写信号量否则读者必须被挂起直到写者释放该信号量。如果一个读写信号量当前没有被读者或写者拥有并且也没有写者等待该信号量那么一个写者可以成功获得该读写信号量否则写者将被挂起直到没有任何访问者。因此写者是排他性的独占性的。%A%A 读写信号量有两种实现一种是通用的不依赖于硬件架构因此增加新的架构不需要重新实现它但缺点是性能低获得和释放读写信号量的开销大另一种是架构相关的因此性能高获取和释放读写信号量的开销小但增加新的架构需要重新实现。在内核配置时可以通过选项去控制使用哪一种实现。%A%A%A%A 五、自旋锁(spinlock)%A%A 自旋锁与互斥锁有点类似只是自旋锁不会引起调用者睡眠如果自旋锁已经被别的执行单元保持调用者就一直循环在那里看是否该自旋锁的保持者已经释放了锁自旋一词就是因此而得名。由于自旋锁使用者一般保持锁时间非常短因此选择自旋而不是睡眠是非常必要的自旋锁的效率远高于互斥锁。%A%A 信号量和读写信号量适合于保持时间较长的情况它们会导致调用者睡眠因此只能在进程上下文使用(_trylock的变种能够在中断上下文使用)而自旋锁适合于保持时间非常短的情况它可以在任何上下文使用。如果被保护的共享资源只在进程上下文访问使用信号量保护该共享资源非常合适如果对共巷资源的访问时间非常短自旋锁也可以。但是如果被保护的共享资源需要在中断上下文访问(包括底半部即中断处理句柄和顶半部即软中断)就必须使用自旋锁。%A%A 自旋锁保持期间是抢占失效的而信号量和读写信号量保持期间是可以被抢占的。自旋锁只有在内核可抢占或SMP的情况下才真正需要在单CPU且不可抢占的内核下自旋锁的所有操作都是空操作。%A%A 跟互斥锁一样一个执行单元要想访问被自旋锁保护的共享资源必须先得到锁在访问完共享资源后必须释放锁。如果在获取自旋锁时没有任何执行单元保持该锁那么将立即得到锁如果在获取自旋锁时锁已经有保持者那么获取锁操作将自旋在那里直到该自旋锁的保持者释放了锁。%A%A 无论是互斥锁还是自旋锁在任何时刻最多只能有一个保持者也就说在任何时刻最多只能有一个执行单元获得锁。%A%A%A%A%A*博客内容为网友个人发布仅代表博主个人观点如有侵权请联系工作人员删除。参与讨论请登录...登录后参与讨论
http://wiki.neutronadmin.com/news/109213/

相关文章:

  • 站群cms源码网站域名查询注册
  • 青岛网站设计模板建材在哪些网站做
  • 淄博网站网站建设东莞最大的网络公司
  • 龙华住房和建设局网站怎么无法登陆现货做网站
  • 普陀区网站建设公司钢筋网片规格型号
  • 网站天天做收录有效果吗wordpress 缓存用什么
  • 网站建设公司资质设计wordpress页面模板下载地址
  • 徐州网站开发如何在线教育
  • jsp网站开发如何把自横批排动漫设计属于什么大类
  • 最好的网站建设免费的server 2008 网站部署
  • 给你一个网站如何做推广广州市网络预约出租汽车综合业务管理平台
  • 教育网站设计岚皋网站建设
  • 如何选择模板网站建设网站用什么做关键词
  • 东城免费做网站做网站用什么虚拟服务器
  • 12380网站建设网站开发的岗位及职责
  • 厦门网站建设费用wordpress通知公告
  • 盐城市网站建设公司竞拍网站建设
  • 医疗行业网站备案制作网页的思路
  • 广州seo技术培训搜索引擎seo关键词优化效果
  • 岳阳网站建设哪里有广州市建设和水务局网站
  • 网站整合营销建设哈密建设集团有限责任公司网站
  • 做网站智能工具交换友情链接的注意事项
  • 品牌网站建设小i蝌蚪网站建设上海
  • 怎么创建图片网站做网站里面的内容
  • 成都哪里可以做网站做网站的开发软件是什么
  • 成都百度seo主要做什么工作内容
  • 个人做网站 用什么语言重庆建设厂招聘信息网站
  • 做影视网站版权问题seo整站优化的思路及步骤
  • 北京网站建设手机app电子商务wordpress页面立体效果
  • 电子商务与网站建设做网站的抬头怎么做