• <div id="0yoao"><tr id="0yoao"></tr></div>
    <dl id="0yoao"></dl>
  • <sup id="0yoao"></sup>
    <div id="0yoao"><tr id="0yoao"></tr></div>
  • <div id="0yoao"><tr id="0yoao"></tr></div>
  • RCU(2)- 使用方法

    作者:沙漠之狐 发布于:2019-5-24 19:36 分类:内核同步机制

    本文介绍RCU的使用方法。

    阅读全文>>

    标签: 无锁编程

    评论(0) 浏览(906)

    RCU(1)- 概述

    作者:沙漠之狐 发布于:2019-5-24 19:30 分类:内核同步机制

    本文介绍RCU。

    阅读全文>>

    标签: 无锁编程

    评论(0) 浏览(1051)

    Linux内核的自旋锁

    作者:沙漠之狐 发布于:2019-5-17 19:11 分类:内核同步机制

    自旋锁用于处理器之间的互斥,适合保护很短的临界区,并且不允许在临界区睡眠。申请自旋锁的时候,如果自旋锁被其他处理器占有,本处理器自旋等待(也称为忙等待)。

    进程、软中断和硬中断都可以使用自旋锁。

    自旋锁的实现经历了3个阶段:

    (1)     最早的自旋锁是无序竞争的,不保证先申请的进程先获得锁。

    (2)     2个阶段是入场券自旋锁,进程按照申请锁的顺序排队,先申请的进程先获得锁。

    (3)     3个阶段是MCS自旋锁。入场券自旋锁存在?#38405;?#38382;题?#26680;?#26377;申请锁的处理器在同一个变?#21487;?#33258;旋等待,缓存同步?#30446;?#38144;大,不适合处理器很多的系?#22330;?span>MCS自旋锁的策?#20801;?#20026;每个处理器创建一个变量副本,每个处理器在自己的本地变?#21487;?#33258;旋等待,解决了?#38405;?#38382;题。

    阅读全文>>

    标签: Linux 自旋锁

    评论(0) 浏览(1513)

    编译乱序(Compiler Reordering)

    作者:smcdef 发布于:2019-1-23 22:59 分类:内核同步机制

    编译乱序(Compiler Reordering)

    编译器(compiler)的工作就是优化我们的代码以提高?#38405;堋?#36825;包括在不改变程序行为的情况下重新排列指令。因为compiler不知道什么样的代码需要线程安全(thread-safe),所以compiler假设我们的代码都是单线?#35752;?#34892;(single-threaded),并且进行指令重排优化并保证是单线程安全的。因此,当你不需要compiler重新排序指令的时候,你需要显式告诉compiler,我不需要重排。否则,它可不会听你的。本篇文章中,我们一起探究compiler关于指令重排的优化规则。

    阅读全文>>

    标签: barrier

    评论(8) 浏览(3118)

    Linux中常见同步机制设计原理

    作者:smcdef 发布于:2018-6-9 16:19 分类:内核同步机制

    引言

    今天谈谈linux中常见并发访问的保护机制设计原理。为什么要写这篇文章呢?#31185;?#23454;想帮助自己及读者更深入的了解背后的原理(据可靠消息,锁的实现经常出现在?#36866;曰方凇?#26082;可以考察面试者对锁的原理的理解,又可以考察面试者编程技能)。我们抛开linux中汇编代码。用C语言为大家呈现背后实现的原理。同?#20445;?#25991;章中的代码都没有考虑并发情况(例如某些操作需要原?#26377;裕?#25110;者数据需要保护等)。

    阅读全文>>

    标签: spin lock mutex rw_lock

    评论(20) 浏览(8852)

    Perf book 9.3章节翻译(下)

    作者:linuxer 发布于:2016-2-26 19:36 分类:内核同步机制

    本文主要?#23884;詐erfbook 9.3章节的翻译的下半部分,督促自己学习,也顺便分享给大家。

    本文的英文原文来自perfbook-1c.2015.01.31a.pdf ,为了读者方便,我也嵌入到了文档中,任何问题,?#38431;?#25506;讨。

    阅读全文>>

    标签: RCU perfbook

    评论(1) 浏览(3841)

    Perf book 9.3章节翻译(上)

    作者:linuxer 发布于:2016-2-18 19:07 分类:内核同步机制

    本文主要?#23884;詐erfbook 9.3章节的翻译,督促自己学习,也顺便分享给大家。

    本文的英文原文来自perfbook-1c.2015.01.31a.pdf ,为了读者方便,我也嵌入到了文档中,任何问题,?#38431;?#25506;讨。

    阅读全文>>

    标签: RCU perfbook

    评论(6) 浏览(4916)

    Linux2.6.23 :sleepable RCU的实现

    作者:linuxer 发布于:2016-2-4 18:38 分类:内核同步机制

    由于曾经在Linux2.6.23上工作了多年,我对这个版本还是非常有感情的(抛开感情因素,本来应该选择longterm的2.6.32版本来分析 的,^_^),本文主要就是描述Linux2.6.23内核版本中对RCU有哪些修正。所谓修正主要包括两个部分,一部分是bug fixed,一部分是?#30053;?#30340;特性。

    阅读全文>>

    标签: SRCU

    评论(0) 浏览(4207)

    Linux2.6.11版本:classic RCU的实现

    作者:linuxer 发布于:2016-1-27 18:31 分类:内核同步机制

    无论你愿意或者不愿意,linux kernel的版本总是不?#31995;?#21521;前推进,做为一个热衷于专研内核的工程师,最大的痛苦莫过于此:当你熟悉了一个版本的内核之后,内核已经推进到一个新的版 本,你曾经熟悉的内容可能会变得陌生(这里主要说的是该模块的内部实现,实际上,内核中的每一个子系统都是会尽量保持接口API的不变)。怎么应对这种变 化呢?一方面,具体的实现可能千差万别,但是基本的概念?#19988;?#26679;的,无论哪一个版本的内核,总是能够理解一个内核子系统的基本概念和运作机理。另外一方面, 不同版本之间的实现不同往往是有原因的,新版本中具体实现的不同往往是针对旧版本的问题而改进的,如果你能够理清不同版本之间的差异以及背后的原因,那么 你其实也在不?#31995;?#21152;深对计算机系统的理解(不?#31995;?#36845;代?#19988;?#20010;不错的学习linux内核的方法)。

    因此,在进入具体的Linux2.6.11版本内核RCU实现之前,我们首先描述why,也就是说为何修改RCU算法实现?旧内核有哪里不足,新的内核优点是什么?随后需要描述的是如何改进,最后,我们描述的是Linux2.6.11版本内核RCU模块的具体实现。

    阅读全文>>

    标签: Read-Copy-Update

    评论(3) 浏览(4076)

    Linux 2.5.43版本的RCU实现(废弃)

    作者:linuxer 发布于:2016-1-19 12:13 分类:内核同步机制

    RCU的工作原理虽然简单,但是实现产品级别的RCU同步机制并不?#19988;?#20010;简单的事情,看看目前kernel中庞大的RCU数据结构,这让我望而却 步。蜗窝科技在撰写其他文档的时候,往往?#19981;?#20351;用最新的内核,本文和其他文章不一样,本文选择了第一个引入RCU的内核版本,即2.5.43。

    本文主要介绍了linux2.5.43版本?#31995;腞CU实现。

    阅读全文>>

    标签: RCU

    评论(4) 浏览(4000)

    Copyright @ 2013-2015 蜗窝科技 All rights reserved. Powered by emlog
    连码三全中是什么
  • <div id="0yoao"><tr id="0yoao"></tr></div>
    <dl id="0yoao"></dl>
  • <sup id="0yoao"></sup>
    <div id="0yoao"><tr id="0yoao"></tr></div>
  • <div id="0yoao"><tr id="0yoao"></tr></div>
  • <div id="0yoao"><tr id="0yoao"></tr></div>
    <dl id="0yoao"></dl>
  • <sup id="0yoao"></sup>
    <div id="0yoao"><tr id="0yoao"></tr></div>
  • <div id="0yoao"><tr id="0yoao"></tr></div>
  • 360老时时彩开奖冷热号统计 广东时时彩 浙江十一选五预测号码 88网极速时时彩走势图 吉林快3遗漏分析 新疆十一选五专家预测号码 六合彩今晚sx 北京单场胜负规则 江苏11选5遗漏表 福建快三查询结果 人民网收购了澳客网 六合图库管家婆 极速快乐十分是啥意思 好运彩3网址软件 腾讯欢乐斗地主免费下载