笔记
kernel_trip
这个作者很懒,什么都没留下…
展开
-
《linux内核设计与实现》阅读笔记 第二章 进程
内核将进程存放在叫任务队列的双向循环链表中,每项为task_struct(include/linux/sched.h),该结构比较大,32位的计算机上大概有1.7Ktask_struct 通过slab分配器分配,以达到对象复用和缓存着色的目的。task_struct 可以通过保存在进程的栈底(向下增长,向上增长的则在栈顶)的thread_info(asm/thread_info.h原创 2009-09-01 13:46:00 · 279 阅读 · 0 评论 -
《linux内核设计与实现》阅读笔记 第四章 系统调用
系统调用命名规则:sys_XXX,XXX为提供给应用层的系统调用名,如getpid。已注册的系统调用保存在系统调用表sys_call_table(entry.s)中linux系统调用使用int 0x80软中断来实现,执行128号中断处理程序system_call,eax中为系统调用号,该函数执行:call *sys_call_table(, %eax, 4)自己添加系统原创 2009-09-03 14:13:00 · 308 阅读 · 0 评论 -
《linux内核设计与实现》阅读笔记 第三章 调度
多任务系统主要有两种:非抢占式多任务, 抢占式多任务(linux)linux提供两套独立的优先级范围:NICE值(-20 高 ----------- 19低), 默认为0;(task_struct.static_prio保存) 实时优先级(0 低 -------------- 99高),一般实时进原创 2009-09-02 17:59:00 · 363 阅读 · 0 评论 -
《linux内核设计与实现》阅读笔记 第六章 下半部和推后执行的工作
目前支持的三种下半部机制:软中断(与前面系统调用部分的软中断不是一个概念),tasklet, 工作队列。 软中断:由softirq_action结构表示,定义在linux/interrupt.h中,kernel/softirq.c中定义了32个该结构的数组,目前只使用6个softirq_action结构中有个action字段,和data字段,分别是待执行的函数和传给该函数的参数,但函数的参原创 2009-09-09 17:02:00 · 413 阅读 · 0 评论 -
《linux内核设计与实现》阅读笔记 第五章 中断和中断处理程序
一个设备可以引发多个中断对应多个中断处理程序。中断处理应该尽快完成,但实际情况并不是这么理想,所以分为上半部和下半部上半部只做有严格时限的工作,其他放到下半部做。注册中断处理程序request_irq, 该函数会睡眠 P55释放中断线free_irq编写中断程序 P57中断处理程序通常为static,中断处理程序中尽量将工作推个下半部,中断处理程序无须可重入,因为当原创 2009-09-08 16:55:00 · 445 阅读 · 0 评论