摘要: 原文地址:http://blog.csdn.net/penngrove/article/details/44175387最近看到Linux Kernel cmpxchg的代码,对实现很不理解。上网查了内嵌汇编以及Intel开发文档,才慢慢理解了,记录下来以享和我一样困惑的开发者。其实cmpxchg实... 阅读全文
posted @ 2015-09-22 21:00 三丰SanFeng 阅读(2385) 评论(0) 推荐(0) 编辑
摘要: CAS一般采用原子级的read-modify-write原语来实现Lock-Free算法,其中LL和SC是Lock-Free理论研究领域的理想原语,但实现这些原语需要CPU指令的支持,非常遗憾的是目前没有任何CPU直接实现了SC原语。根据此理论,业界在原子操作的基础上提出了著名的CAS(Compar... 阅读全文
posted @ 2015-09-22 20:55 三丰SanFeng 阅读(940) 评论(0) 推荐(0) 编辑
摘要: 概念忙等待可以认为是一种特殊的忙等待忙等待分类Peterson算法xchg解法TSL解法自旋锁Peterson算法Peterson算法是一个实现互斥锁的并发程序设计算法,可以控制两个线程访问一个共享的单用户资源而不发生访问冲突。GaryL. Peterson于1981年提出此算法。#include ... 阅读全文
posted @ 2015-09-22 17:36 三丰SanFeng 阅读(969) 评论(0) 推荐(0) 编辑
摘要: 什么是原子操作原子操作可以保证指令以原子的方式执行——执行过程不被打断,原子操作是多数无锁编程的基本前提。原子操作分为以下几类对1字节的读写对2字节数(对齐到16位边界)读写对4字节数(对齐到32位边界)读写对8字节数(对齐到64位边界)读写xchg原子操作基本原理在x86平台上,CPU提供了在指令... 阅读全文
posted @ 2015-09-22 14:34 三丰SanFeng 阅读(1940) 评论(0) 推荐(0) 编辑