加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux操作系统内存管理的源码实现

发布时间:2016-01-25 15:11:36 所属栏目:Linux 来源:网络整理
导读:最近一段时间在阅读Linux的源代码,想把看到的东西写出来,觉得内存这一部分最简单,就先写了出 来。请指正! 内存最低4K的地址是一张页目录(page_dir),页目录

程序运行了,问题又来了。终于读到了“写时复制”和请求调页的部分。当程序访问的线性地址没有 被映射到一个物理页面,或欲写操作的线性地址映射的物理页面仅是只读,都会产生一个页异常,然后就 会转去页异常中断处理程序(int 14)执行,页异常中断处理程序(page.s)如下:

14 _page_fault:
15     xchgl %eax,(%esp)
16     pushl %ecx
17     pushl %edx
18     push %ds
19     push %es
20     push %fs
21     movl x10,%edx
22     mov %dx,%ds
23     mov %dx,%es
24     mov %dx,%fs
25     movl %cr2,%edx
26     pushl %edx
27     pushl %eax
28     testl ,%eax
29     jne 1f
30     call _do_no_page
31     jmp 2f
32 1:   call _do_wp_page
33 2:   addl ,%esp
34     pop %fs
35     pop %es
36     pop %ds
37     popl %edx
38     popl %ecx
39     popl %eax
40     iret

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读