Chinaunix首页 | 论坛 | 博客
  • 博客访问: 327025
  • 博文数量: 100
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 665
  • 用 户 组: 普通用户
  • 注册时间: 2015-02-02 12:43
文章分类

全部博文(100)

文章存档

2015年(100)

我的朋友

发布时间:2015-07-02 15:02:00

<span style="font-family:Arial;font-size:14px;line-height:26px;white-space:normal;background-color:#FFFFFF;"><span style="font-family:KaiTi_GB2312;">1. 收集pagefault handler的相关信息,存入vmf结构体,并调用vma-&gt;vm_ops-&gt;fault进行缺页处理(完成页面的调入工作),返回的页存储在vmf.page中</span></spa.........【阅读全文】

阅读(3486) | 评论(0) | 转发(0)

发布时间:2015-06-20 09:36:14

从前面的博文中我们已经知道,把一块存放slab结构的内存区映射到一组连续的物理页是最好的选择,这样会充分利用高速缓存并获得较低的平均访问时间。不过,上面的方式主要是针对那些使用非常频繁的内核数据结构——如task_struct、inode来设计的。如果对内存区的请求不是很频繁,那么,通过连续的线性地址,而不是物理地.........【阅读全文】

阅读(1901) | 评论(0) | 转发(0)

发布时间:2015-06-19 14:43:04

当一个新区域被加到进程的地址空间时,内核会检查它是否可以与一个或多个现存区域合并,vma_merge()函数在可能的情况下,将一个新区域与周边区域进行合并。参数:mm:新区域所属的进程地址空间prev:在地址上紧接着新区域的前面一个vmaaddr:新区域的起始地址end:新区域的结束地址vm_flags:新区域的标识.........【阅读全文】

阅读(4506) | 评论(0) | 转发(0)

发布时间:2015-06-18 22:59:26

开门见山,在arch/arm/kernel/sys_arm.c文件中,有这样三个函数:sys_fork、sys_vfork、sys_clone,它们都是在创建进程,分别对应系统调用fork()、vfork()、clone(),下面是它们在arm中的函数实现:顺便说一下,系统调用是如何对应到内核接口函数的(fork()->sys_fork),在之后会有文章专门研讨,这里重点讨论的是进程.........【阅读全文】

阅读(2071) | 评论(0) | 转发(1)

发布时间:2015-06-18 22:14:02

内核使用内存描述符结构体表示进程的地址空间,该结构体包含了和进程地址空间有关的全部信息。内存描述符由mm_struct结构体表示,定义在文件<linux/sched.h>中。进程地址空间由每个进程的线性地址区(vm_area_struct)组成。通过内核,进程可以给自己的地址空间动态的添加或减少线性区域。如下图是内存描述符mm_struct和.........【阅读全文】

阅读(2010) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册