阅读<<情景分析>>charpter 2 后的疑惑,求解~~
时间:2010-08-04
来源:互联网
1.关于进程/线程切换时的页目录地址切换。
代码摘要如下:
..... switch_mm(....){
.....
asm volatile("movl cr3 ......")
.....
}
<<情景分析>>的说法是因为此函数在内核态执行,保持简单的线性映射(+ - 3G).所以就算更改了cr3也不会影响到更改前后代码(指令)的执行位置。
在这我产生两点疑惑:
a)在内核态运行的时候映射是简单的线性映射,这是否意味着用户程序通过系统调用或者中断陷入内核的时候,os同时切换了cr3的页目录表的位置?
b)页面映射的机制是cpu强制提供的,除非把cr0的分页管理机制位关了,不然操作系统怎么可能做得到更改cr3前后代码执行位置不受影响呢?
2.关于I/O设备自身存储器到cpu 寻址空间的映射.
看完这章后产生两点疑惑~~~:
a)如果我有一块500MB显存的显卡,那内核的虚存空间不就直接被吃了500M ? 这样总线地址很快就不够用了啊。
b)从虚拟线性地址到内存总线物理地址的映射是由cpu的页面管理机制来做的,那内存总线物理地址到具体I/O设备的存储器地址的映射是谁来做的,这里是否有其它硬件规范,还是说纯用操作系统
实现?
迷惑了很久,急请高手解答!
代码摘要如下:
..... switch_mm(....){
.....
asm volatile("movl cr3 ......")
.....
}
<<情景分析>>的说法是因为此函数在内核态执行,保持简单的线性映射(+ - 3G).所以就算更改了cr3也不会影响到更改前后代码(指令)的执行位置。
在这我产生两点疑惑:
a)在内核态运行的时候映射是简单的线性映射,这是否意味着用户程序通过系统调用或者中断陷入内核的时候,os同时切换了cr3的页目录表的位置?
b)页面映射的机制是cpu强制提供的,除非把cr0的分页管理机制位关了,不然操作系统怎么可能做得到更改cr3前后代码执行位置不受影响呢?
2.关于I/O设备自身存储器到cpu 寻址空间的映射.
看完这章后产生两点疑惑~~~:
a)如果我有一块500MB显存的显卡,那内核的虚存空间不就直接被吃了500M ? 这样总线地址很快就不够用了啊。
b)从虚拟线性地址到内存总线物理地址的映射是由cpu的页面管理机制来做的,那内存总线物理地址到具体I/O设备的存储器地址的映射是谁来做的,这里是否有其它硬件规范,还是说纯用操作系统
实现?
迷惑了很久,急请高手解答!
作者: AlwenSong 发布时间: 2010-08-04
回复 AlwenSong
回答第二个问题
1. 显卡板载显存500m,kernel/module是不会在内核地址空间去map它的;显存是让user mode driver去map的。如果要kernel driver去map,128m的vmalloc空间根本不够。
2. 你这个问题只有在基于pci等外设总线的情况下才会出现,也就是说常见的x86 pc架构,这个工作是由briage来做的,我们常说的NB(北桥)
回答第二个问题
1. 显卡板载显存500m,kernel/module是不会在内核地址空间去map它的;显存是让user mode driver去map的。如果要kernel driver去map,128m的vmalloc空间根本不够。
2. 你这个问题只有在基于pci等外设总线的情况下才会出现,也就是说常见的x86 pc架构,这个工作是由briage来做的,我们常说的NB(北桥)
作者: snail_314 发布时间: 2010-08-04
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28