
内存管理
文章平均质量分 77
Tynew
Linux basic concept
展开
-
系统寄存器和数据结构
以下这张图包含了内存管理,进程调度和中断精髓,如果完全理解好了这张图,那么对你来说,操作系统无任何神秘感。在以后的文章,我会经常引用此图。PS: 这张图是来自Intel Volume 3A: System Programming Guide, Part 12-3 fiugre 2-1, 按照我的理解我做了一些颜色的添加,便于理解原创 2012-04-15 15:32:35 · 538 阅读 · 0 评论 -
JMP指令
在读代码的时候,Jump指令用的特别多, 在中断/异常, 虚实地址转换, 任务切换等等等等,都用到了Jump指令,今天我们来讨论一下究竟Jump都做了什么事情.下面用伪指令来描述Jump做了什么事情, 又是怎么区分这些事件的JMP(SelectorType Selector, int Offset){ SegAttributes Attributes; Selecto原创 2012-05-20 15:59:40 · 1446 阅读 · 0 评论 -
Linux内核内存分配函数
i. 分配函数的选择kmalloc():如果需要连续的物理页,可以使用此函数,这是内核中内存分配的常用方式,也是大多数情况下应该使用的内存分配方式。传递给函数的最常用的标志是GTP_ATOMIC和GTP_KERNEL。前面的标志表示进行不睡眠的高优先级分配。在中断处理程序和其他不能睡眠的代码段中需要。后面的标志可以睡眠,在没有持自旋锁的进程上下文中使用。此函数返回内核逻辑地址。get_原创 2012-11-23 09:58:53 · 4251 阅读 · 0 评论 -
Linux用户空间与内核空间
1. Linux内核地址空间划分通常32位Linux内核地址空间划分0~3G为用户空间,3~4G为内核空间。注意这里是32位内核地址空间划分,64位内核地址空间划分是不同的。2. Linux内核高端内存a) 由来当内核模块代码或线程访问内存时,代码中的内存地址都为逻辑地址,而对应到真正的物理内存地址,需要地址一对一的映射,如转载 2012-11-21 15:30:39 · 1536 阅读 · 0 评论