Chinaunix首页 | 论坛 | 博客
  • 博客访问: 505462
  • 博文数量: 102
  • 博客积分: 4001
  • 博客等级: 上校
  • 技术积分: 756
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-21 16:01
文章分类

全部博文(102)

文章存档

2011年(1)

2010年(1)

2009年(56)

2008年(44)

我的朋友

分类:

2009-03-22 11:03:45

由于Linux/i386和L4/x86对于地址空间的划分都是下列方案:

1、用户空间:[0,0xC0000000),即[0,3G);
2、内核空间:[0xC0000000, 0xFFFFFFFF],即[3G, 4G)。

L4的物理内存管理相对于Linux至少有如下优势:

1、L4的物理内存管理放置于用户线程,Linux则将其放置于内核;所以L4可以自由定制物理内存管理算法而不必重新编译内核。

2、L4的单个物理内存管理器可直接管理[0,3G)物理内存;而Linux只能直接管理1G内存,因为可以直接映射到L4内存管理器的物理内存有3G,而直接映射到内核的物理内存最多只能有1G;

3、 由于[3G,4G)的空间属于内核空间,单个L4地址空间无法管理所有物理内存,但Sigma0可以将[3G,4G)范围的物理内存Grant到另外一个 地址空间的3G以内范围,由另外一个地址空间的线程来管理这些高端内存;Linux则不得不通过实现一个蹩脚的算法(预留一小段1G以内的虚拟空间,通过 将超过1G的物理页面映射到这段空间来操作它们)来管理高端内存。

阅读(1030) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~