发布时间:2012-12-14 16:53:20
工作队列(work queue):具有延时执行的特点。一、数据结构:struct work_struct { unsigned long pending; struct list_head entry; void (*func)(void *); void *data; void *wq_data; struct timer_list timer;};pending是用来记录工作是......【阅读全文】
发布时间:2012-12-09 20:56:00
在关联规则挖掘领域最经典的算法法是Apriori,其致命的缺点是需要多次扫描事务数据库。于是人们提出了各种裁剪(prune)数据集的方法以减少I/O开支,韩嘉炜老师的FP-Tree算法就是其中非常高效的一种。支持度和置信度严格地说Apriori和FP-Tree都是寻找频繁项集的算法,频繁项集就是所谓的“支持度”比较高的项集,下面解释一下支持度和置信度的概念。设事务数据库为:A E F G A F G A B E F G E F G则{A,F,G}的支持度数为3,支持度为3/4。{F,G}的支持度数为4,支持度为4/4。{A}的支持度数为3,支持度为3/4......【阅读全文】
发布时间:2012-12-09 20:54:35
一.为什么内核需要同步方法并发指的是多个执行单元同时,并行被执行,而并发的执行单元对共享资源(硬件资源和软件上的全局变量,静态变量等)的访问则很容易导致竞态。主要竞态发生如下:1.对称多处理器(SMP)多个CPU SMP是一种紧耦合,共享存储的系统模型,它的特点是多个CPU使用共同的系统总线,因此可访问共同的外设和存储器。 2.单CPU内进程与抢占它的进程Linux2.6内核支持抢占调度,一个进程在内核执行的时候被另一高优先级的进程打断,进程与抢占它的进程访问共享资源的情况类似于SMP3.中断(硬中断,软中断,Tasklet,底半部)与进程之间中断可以打断正在执行的进程,如......【阅读全文】
发布时间:2012-12-09 20:49:20
本文详细的介绍了Linux内核中的同步机制:原子操作、信号量、读写信号量和自旋锁的API,使用要求以及一些典型示例 一、引言 在现代操作系统里,同一时间可能有多个内核执行流在执行,因此内核其实象多进程多线程编程一样也需要一些同步机制来同步各执行单元对共享数据的访问。尤其是在多处理器系统上,更需要一些同步机制来同步不同处理器上的执行单元对共享的数据的访问。 在主流的Linux内核中包含了几乎所有现代的操作系统具有的同步机制,这些同步机制包括:原子操作、信号量(semaphore)、读写信号量(rw_semaphore)、spinlock、BKL(Big Kernel Lock)、rwloc......【阅读全文】
发布时间:2012-12-09 20:47:36
一、 引言众所周知,为了保护共享数据,需要一些同步机制,如自旋锁(spinlock),读写锁(rwlock),它们使用起来非常简单,而且是一种很有效的同步机制,在UNIX系统和Linux系统中得到了广泛的使用。但是随着计算机硬件的快速发展,获得这种锁的开销相对于CPU的速度在成倍地增加,原因很简单,CPU的速度与访问内存的速度差距越来越大,而这种锁使用了原子操作指令,它需要原子地访问内存,也就说获得锁的开销与访存速度相关,另外在大部分非x86架构上获取锁使用了内存栅(Memory Barrier),这会导致处理器流水线停滞或刷新,因此它的开销相对于CPU速度而言就越来越大。表1数据证明了这一点......【阅读全文】