Linux 内核原理
chenjin_zhong
工程师
展开
-
Linux 内核同步机制
1.概述对于共享资源,要防止多个线程并发访问。如果多个线程并发的访问共享资源,那么可能出现覆盖共享数据的情况,造成共享数据状态不一致的现象。临界区是指访问和操作共享数据的代码段,当多个执行线程并发的访问同一个资源通常是不安全的,为了为了避免并发访问,必须保证这些代码原子的执行。内核有可能造成并发执行的原因:中断:中断可以随时发生,打断当前执行的代码。软中断或tasklet:内核在执行软中断的时候,也有可能打断当前正在执行的代码。内核抢占:因为内核具有抢占性,所以内核中的任务可能会被另一个任务抢占。睡眠与用户原创 2011-03-29 11:05:00 · 848 阅读 · 0 评论 -
Linux内存管理
1. 页内核把物理页作为内存管理的最小单位,尽管处理器的最小寻址单位通常为字,但是,内存管理单元(MMU)通常以页为单位进行处理。必须理解一点page结构与物理页相关,而非与虚拟页相关,物理页中存放的数据由于交换等原因,可能被交换出去,它们可能并不再和同一个page结构相关联,内核仅仅用这个数据结构来描述当前时刻物理页中存放的东西。这种数据结构的目的在于描述物理内存本身,而不是描述其中的数据。一般情况下32位体系结构,页的大小为4KB。而64位体系结构一般会支持8KB的页。2.区由于硬件的限制,内核并不能一原创 2011-04-10 21:22:00 · 689 阅读 · 0 评论 -
Linux进程地址空间
1.概述进程地址空间由每个进程中的线性地址区组成,而且更为重要的特点是内核允许进程使用该空间的地址。进程地址空间中的任何有效地址只能位于惟一的区域,这些内存区域不能相互覆盖,可以看到,在执行进程中,每个不同的内存片段都对应一个独立的内存区域: 栈,对象代码,全局变量,被映射的文件等等。2. 内存描述符内核使用内存描述符结构体来表示进程的地址空间。该结构包含了和进程地址空间有关的全部信息。内存描述符由mm_struct 结构体表示,定义在.struct mm_struct{struct vm_area_str原创 2011-04-10 21:49:00 · 1280 阅读 · 0 评论