<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[蜗窝科技]]></title> 
<description><![CDATA[慢下来，享受技术。]]></description>
<link>http://www.wowotech.net/</link>
<language>zh-cn</language>
<generator>www.emlog.net</generator>
<item>
	<title>Linux读写锁逻辑解析</title>
	<link>http://www.wowotech.net/kernel_synchronization/rwsem.html</link>
	<description><![CDATA[<p style="white-space:normal;">
	除了mutex，在linux内核中，还有一个经常用到的睡眠锁就是rw semaphore（后文简称为rwsem），它到底和mutex有什么不同呢？为何会有rw semaphore？无他，仅仅是为了增加内核的并发，从而增加性能而已。Mutex严格的限制只有一个thread可以进入临界区，但是实际应用中，有些场景对共享资源的访问可以严格区分读和写的，并且是读多写少，这时候，其实多个读的thread同时进入临界区是OK的，使用mutex则限制一个线程进入临界区，从而导致性能的下降。
</p>
<p style="white-space:normal;">
	本文会描述linux5.15.81中读写锁的数据结构和逻辑过程。
</p> <a href="http://www.wowotech.net/kernel_synchronization/rwsem.html">阅读全文&gt;&gt;</a>]]></description>
	<pubDate>Mon, 29 May 2023 12:57:49 +0000</pubDate>
	<author>OPPO内核团队</author>
	<guid>http://www.wowotech.net/kernel_synchronization/rwsem.html</guid>

</item>
<item>
	<title>futex基础问答</title>
	<link>http://www.wowotech.net/kernel_synchronization/futex.html</link>
	<description><![CDATA[<span style="white-space:normal;">futex是Fast Userspace muTEX的缩写，该机制是由Rusty Russell、Hubertus Franke和Mathew Kirkwood在2.5.7版本的内核中引入，虽然名字中有互斥锁（mutex）的含义，但实际它是一种用于用户空间应用程序的通用同步工具（基于futex可以在userspace实现互斥锁、读写锁、condition variable等同步机制）。</span> <a href="http://www.wowotech.net/kernel_synchronization/futex.html">阅读全文&gt;&gt;</a>]]></description>
	<pubDate>Sat, 08 Oct 2022 23:20:48 +0000</pubDate>
	<author>OPPO内核团队</author>
	<guid>http://www.wowotech.net/kernel_synchronization/futex.html</guid>

</item>
<item>
	<title>Linux内核同步机制之（九）：Queued spinlock</title>
	<link>http://www.wowotech.net/kernel_synchronization/queued_spinlock.html</link>
	<description><![CDATA[<p style="white-space:normal;">
	本站之前已经有了一篇关于<a href="http://http://www.wowotech.net/kernel_synchronization/spinlock.html" target="_blank">spinlock</a>的文档，在之前的文章中有对自旋锁进行简单的介绍，同时给出了API汇整和应用场景。不过该文章中的自旋锁描述是基于比较老的内核版本，那时候的自旋锁还是ticket base锁，而目前最新内核中的自旋锁已经进化成queued spinlock，因此需要一篇新的自旋锁文档来跟上时代。此外，本文将不再描述基本的API和应用场景，主要的篇幅将集中在具体的自旋锁实现上。顺便说一句，同时准备一份linux5.10源码是打开本文的正确方式。
</p>
<p style="white-space:normal;">
	由于自旋锁可以在各种上下文中使用，因此本文中的thread是执行线索的意思，表示进程上下文、hardirq上下文、softirq上下文等多种执行线索，而不是调度器中线程的意思。
</p> <a href="http://www.wowotech.net/kernel_synchronization/queued_spinlock.html">阅读全文&gt;&gt;</a>]]></description>
	<pubDate>Tue, 28 Jun 2022 22:33:40 +0000</pubDate>
	<author>OPPO内核团队</author>
	<guid>http://www.wowotech.net/kernel_synchronization/queued_spinlock.html</guid>

</item>
<item>
	<title>Linux内核同步机制之（八）：mutex</title>
	<link>http://www.wowotech.net/kernel_synchronization/504.html</link>
	<description><![CDATA[<span style="white-space:normal;">在linux内核中，互斥量（mutex，即mutual exclusion）是一种保证串行化的睡眠锁机制。和spinlock的语义类似，都是允许一个执行线索进入临界区，不同的是当无法获得锁的时候，spinlock原地自旋，而mutex则是选择挂起当前线程，进入阻塞状态。本文代码来自Linux 5.10.61，文章中的代码片段有删减，阅读本文时可以参考源代码。</span> <a href="http://www.wowotech.net/kernel_synchronization/504.html">阅读全文&gt;&gt;</a>]]></description>
	<pubDate>Mon, 09 May 2022 21:55:31 +0000</pubDate>
	<author>OPPO内核团队</author>
	<guid>http://www.wowotech.net/kernel_synchronization/504.html</guid>

</item>
<item>
	<title>RCU（2）- 使用方法</title>
	<link>http://www.wowotech.net/kernel_synchronization/462.html</link>
	<description><![CDATA[本文介绍RCU的使用方法。 <a href="http://www.wowotech.net/kernel_synchronization/462.html">阅读全文&gt;&gt;</a>]]></description>
	<pubDate>Fri, 24 May 2019 11:36:15 +0000</pubDate>
	<author>沙漠之狐</author>
	<guid>http://www.wowotech.net/kernel_synchronization/462.html</guid>

</item></channel>
</rss>