2012年1月7日
摘要:
本帖转载于CSDN博客http://blog.csdn.net/murui/article/details/2318280Linux内核的同步机制:等待队列Linux内核的等待队列是以双循环链表为基础数据结构,与进程调度机制紧密结合,能够用于实现核心的异步事件通知机制。在Linux2.4.21中,等待队列在源代码树include/linux/wait.h中,这是一个通过list_head连接的典型双循环链表,如下图所示。在这个链表中,有两种数据结构:等待队列头(wait_queue_head_t)和等待队列项(wait_queue_t)。等待队列头和等待队列项中都包含一个list_head类型 阅读全文
posted @ 2012-01-07 20:00
陶毛毛
阅读(656)
评论(0)
推荐(0)
摘要:
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yunsongice/archive/2010/05/18/5605264.aspx读/写自旋锁同样是在保护SMP体系下的共享数据结构而引入的,它的引入是为了增加内核的并发能力。只要内核控制路径没有对数据结构进行修改,读/写自旋锁就允许多个内核控制路径同时读同一数据结构。如果一个内核控制路径想对这个结构进行写操作,那么它必须首先获取读/写锁的写锁,写锁授权独占访问这个资源。这样设计的目的,即允许对数据结构并发读可以提高系统性能。每个读/写自旋锁都是一个rwlock_t结构:typedef struct { raw_ 阅读全文
posted @ 2012-01-07 15:19
陶毛毛
阅读(2284)
评论(0)
推荐(0)
摘要:
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yunsongice/archive/2010/05/18/5605264.aspx加锁(locking)是一种广泛应用的同步技术。当内核控制路径必须访问共享数据结构或进入临界区时,就需要为自己获取一把“锁”。由锁机制保护的资源非常类似于限制于房间内的资源,当某人进入房间时,就把门锁上。如果内核控制路径希望访问资源,就试图获取钥匙“打开门”。当且仅当资源空闲时,它才能成功。然后,只要它还想使用这个资源,门就依然锁着。当内核控制路径释放了锁时,门就打开,另一个内核控制路径就可以进入房间。Linux锁的应用之一在多处理 阅读全文
posted @ 2012-01-07 15:05
陶毛毛
阅读(4272)
评论(0)
推荐(0)
浙公网安备 33010602011771号