读书笔记
milaodou
专心做个很二的二货
展开
-
linux kernel source code ABC #2 spinlock与preemption, interrupt
hold住spinlock之后,会置一个状态(进程描述符中的?),导致当前处理器处于不抢占(non-preemptive)状态。如果hold spinlock之后,可以抢占,则可能会被调试到另外的程序,而另外的程序需要获取这个spinlock的时候,就白白浪费处理器了。如果spinlock需要与中断进行同步,则需要在获取spinlock的时候,同时禁止当前处理器中断,这就是spinlock原创 2015-07-14 16:15:07 · 399 阅读 · 0 评论 -
ldd3读书笔记:x86的中断处理顺序
就不说硬件相关的,从CPU调用中断向量处的代码开始:1. 首先entry.S中的代码会把中断号push到堆栈上。2. 调用到irq.c中的do_IRQ. 给中断控制器发送一个ACK信号:对于有中断控制器有意义,对于某些中断控制器则没有意义。do_IRQ然后会spinlock住相应的中断号:这样可以防止相同的中断在多个处理上同时执行。调用handle_IRQ_event原创 2015-07-15 08:35:48 · 349 阅读 · 0 评论 -
angel and demon : Ecstasy of Saint Teresa
看angel and demon的小说,讲到fire的那一章,Bernini的Ecstasy of Saint Teresa,觉得书中的描述很好玩,在网上找了下,发现有下面的文章。"Beside me, on the left, appeared an angel in bodily form.... He was not tall but short, and very beauti原创 2015-07-14 16:19:37 · 616 阅读 · 0 评论 -
ldd3读书笔记#1 驱动程序模型
kobejct, kset与kobj_type及其相应的操作,是sysfs文件系统的底层实现细节:它展现的是sysfs的目录结构。bus是连接CPU与设备的设备,所以一个bus不仅出现在/sys/bus目录下,还要出现在device目录下。bus还维护两人个kset: driver和device,分别对应到总线驱动与设备列表。device对应到bus,device还会出现在原创 2015-07-21 17:01:48 · 425 阅读 · 0 评论