|
|
发表于 2005-12-5 11:51:32
|
显示全部楼层
说说我的理解,不一定正确啊:
物理地址需要被"格式化"才能被使用,就像硬盘一样,通过格式化建立段页式(现在好像一般都用这种策略)存储机制,然后分配的是这些格式化好了的物理内存.
你说的虚拟空间是指虚拟内存么?如果是的话那么虚拟内存和物理内存是没有映射的,程序在访问某一段内存的时候它并不知道将要在虚存里取还是物理内存里取,它也没必要知道,操作系统在收到这一请求之后回去页表查找,如果查找不到就发生缺页中断,这时候就需要从硬盘(就是虚拟内存)上读取数据.
另外我估计你说的虚拟地址应该是经过段页编码的地址,比如说在1234页表的5678号地址.
Slab,.....不知道 
这些问题基本上不是linux独有的,看看os的内存管理一段应该有所帮助
Post by Freesnake
我正在看老师发给我们的关于Linux内核分析的课件,准备期末考试,但是课件讲的实在是太简单,看的我一头雾水,下面几个问题请大大们帮忙解惑:
1.虚拟空间与物理内存地址空间之间究竟是怎么映射的?
2.CPU是如何转入内核空间,完成从实模式到保护模式的平稳过渡的?我原来上计算机体系结构的时候,书上说程序运行时,还要从虚拟地址空间的虚页转换到实地址空间,而课件中又说在 Linux 中,CPU不能按物理地址来访问存储空间,而必须使用虚拟地址。这是咋回事?
3.Slab分配机制具体是怎么回事?
小弟才疏学浅,望大大们不吝赐教…… |
|