自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

转载 Configure,Makefile.am, Makefile.in, Makefile文件之间关系

Configure,Makefile.am, Makefile.in, Makefile文件之间关系2009-08-12 12:141.autoscan (autoconf): 扫描源代码以搜寻普通的可移植性问题,比如检查编译器,库,头文件等,生成文件configure.scan,它是configure.ac的一个雏形。    your sour

2015-06-15 10:48:20 213

转载 浅谈Linux PCI设备驱动(一)

要弄清楚Linux PCI设备驱动,首先要明白,所谓的Linux PCI设备驱动实际包括Linux PCI设备驱动和设备本身驱动两部分。不知道读者理不理解这句话,本人觉得这句话很重要,对于PCI、USB这样的驱动来说,必须要理解这个概念,才能明白该如何看待Linux下的PCI和USB以及类似的总线型的驱动。理由也很简单,就是Linux PCI驱动是内核自带的,或者说内核帮你写好了!而我们需要完成的

2014-10-16 20:30:06 325

转载 linux并发控制之完成量

完成量:表示一个执行单元需要等待另一个执行单元完成某事后方可执行。1.它是一种轻量级机制,为了完成进程间的同步而设计2.使用完成量等待时,调用进程是以独占睡眠方式进行等待的3.不是忙等待理解:定义于#include其结构体为struct completion {unsigned int done;wait_queue_he

2014-09-23 13:55:51 256

转载 linux并发控制之读写信号量

读写信号量与信号量之间的关系类似于自旋锁与读写自旋锁。读写信号量可能会引起进程阻塞,但是它允许N个读执行单元同时访问共享资源,而最多只允许有一个写执行单元访问共享资源;因此,读写信号量是一种相对放宽条件的、粒度稍大于信号量的互斥机制。注意:信号量不允许任何操作之间有并发。理解:定义于#include 实际上在arch/X86/include/as

2014-09-23 13:55:17 450

转载 linux并发控制之互斥体

互斥体提供了两种机制:经典互斥体和实时互斥体分别定义于#include #include经典互斥体结构体:  (会导致无限制优先级反转问题)struct mutex {/* 1: unlocked, 0: locked, negative: locked, possible waiters */atomic_t  count;spinlock_t

2014-09-23 13:54:34 288

转载 linux并发控制之信号量

信号量(semaphore)是用于保护临界区的一种常用方法,它的使用方式与自旋锁类似与自旋锁相同的是,只有得到信号量的进程才能执行临界区的代码与自旋锁不同的是,当获取不到信号量的时候,进程不会在原地打转,而是进入休眠等待状态;理解:定义于#includestruct semaphore {spinlock_tlock;unsi

2014-09-23 11:55:00 258

转载 linux并发控制之读写自旋锁

读写自旋锁(rwlock)是一种比自旋锁粒度更小的自旋锁机制,它保留了“自旋”的概念。但是在写操作方面,只能最多有一个写进程,在读方面,同时可拥有多个执行单元,当然读和写也不能同时进行。一句话:防写不防读 理解推荐: http://blog.sina.com.cn/s/blog_6d7fa49b01014q86.html操作:定义于#includ

2014-09-23 11:52:29 1500

转载 linux并发控制之RCU

RCU:读-拷贝-更新众所周知,为了保护共享数据,需要一些同步机制,如自旋锁(spinlock),读写锁(rwlock),它们使用起来非常简单,而且是一种很有效的同步机制,在UNIX系统和Linux系统中得到了广泛的使用,但是它存在两个问题。1.它的开销相对于CPU速度而言就越来越大随着计算机硬件的快速发展,获得这种锁的开销相对于CPU的速度在成倍地增加,原因很简单,CPU

2014-09-23 11:52:20 266

转载 linux并发控制之自旋锁

自旋锁是一种对临界资源进行互斥访问的典型手段,其名来源于它的工作方式。通俗的讲,自旋锁就是一个变量,该变量把一个临界区标记为“我当前在运行,请等待”或者标记为“我当前不在运行,可以被使用”, 如果A执行单元首先获得锁,那么当B进入同一个例程时将获知自旋锁已被持有,需等待A释放后才能进入,所以B只好原地打转(自旋)。特点:    1.自旋锁主要针对SMP或单CPU

2014-09-23 11:51:42 307

转载 linux并发控制之顺序锁

顺序锁是对读写锁的一种优化。    1.读执行单元绝对不会被写执行单元阻塞。即读执行单元可以在写执行单元对被顺序锁保护的共享资源进行写操作的同时仍然可以继续读,而不必等待写执行单元完成之后再去读,同样,写执行单元也不必等待所有的读执行单元读完之后才去进行写操作    2.写执行单元与写执行单元之间仍然是互斥的。    3.如果读执行单元在读操作期间,写执行单元已经发生了写操

2014-09-23 11:51:33 444

转载 linux并发控制之中断屏蔽

在单CPU范围内避免竞态的一个简单方法。注意:    中断对系统正常运行很重要,长时间屏蔽很危险,所以中断屏蔽后应尽可能快的执行完毕。    宜与自旋锁联合使用。使用    local_irq_disable()    local_irq_enable()只能禁止和使能本地CPU的中断,所以不能解决多CPU引发的竞态

2014-09-23 11:49:35 266

转载 linux并发控制

一.概念1.并发(concurrency)指多个执行单元同时,并行被执行。2.并发的执行单元对共享资源,(比如说,硬件资源,全局变量,静态变量等)访问很容易导致竞态(race conditions)。举个简单事例,古代皇帝有很多妃子,皇帝第一个时辰是宜妃的,第二个时辰是萱妃,最后时间是皇后的,这是原来正常的顺序。假如宜妃让皇帝赖床了,萱妃不爽了,然后萱妃时间冲突了,皇后也不爽了,竞争就

2014-09-23 11:48:42 374

转载 linux并发控制之原子操作

原子操作指的是在执行过程中不会被别的代码路径所中断的操作。分为两类:整型原子操作 和 位原子操作。特点:1.任何情况下操作都是原子的。2.都依赖底层的CPU的原子操作来实现,所以和CPU架构密切相关。注意:    1.原子操作在不同体系架构实现的方法不同,基本采用汇编实现    2.上述的整数原子函数集仅针对32位,内核中关于64位有另一套函数    3

2014-09-23 11:48:26 240

转载 Linux 互斥锁

锁机制,可以说是linux整个系统的精髓所在,linux内核都是围绕着同步在运转。在多进程和多线程编程中,锁起着极其重要的作用。我这里说的是互斥锁,其实是泛指linux中所有的锁机制。我在这里不讲如果创建锁,关于锁的创建,网上代码很多,我在这里就不多说了。我要谈一谈一个让所有刚刚接触锁机制的程序员都很困惑的问题:如何使用以及锁机制在程序中是如何运作的。  为什么要使用锁

2014-09-23 10:06:47 365

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除