摘要:
spinlock的数据结构spinlock_t定义在头文件linux/spinlock_types.h里面: 20 typedef struct { 21 raw_spinlock_t raw_lock; 22 #ifdef CONFIG_GENERIC_LOCKBREAK 23 unsigned int break_lock; 24 #endif 25 #ifdef CONFIG_DEBUG_SPINLOCK 26 unsigned int magic, owner_cpu; 27 void *owner; 28 #e... 阅读全文
摘要:
Linux对于内存的管理涉及到非常多的方面,这篇文章首先从对进程虚拟地址空间的管理说起。(所依据的代码是2.6.32.60)无论是内核线程还是用户进程,对于内核来说,无非都是task_struct这个数据结构的一个实例而已,task_struct被称为进程描述符(process descriptor),因为它记录了这个进程所有的context。其中有一个被称为'内存描述符‘(memory descriptor)的数据结构mm_struct,抽象并描述了Linux视角下管理进程地址空间的所有信息。mm_struct定义在include/linux/mm_types.h中,其中的域抽象了进 阅读全文