欢迎来到天天文库
浏览记录
ID:27266832
大小:644.51 KB
页数:20页
时间:2018-12-01
《内存管理-分页机制》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、之分页内存管理《操作系统原理》教材:汤子瀛《计算机操作系统》获部级优秀教材主讲:柳军内存管理之分页机制0x00403370进程A0x00403370进程B???思考:不同进程的地址空间是相互冲突还是和平共处?华南虎vs东北虎是"二虎相争"?还是"和平共处"?眼见为实:(和平共处,此图绝无造假)"和平共处"的秘密并不复杂----简单说就是查表转换(分页地址变换)0x00403370进程A的线性地址空间0x00403370进程B的线性地址空间物理内存A的分页地址变换机制B的分页地址变换机制34860x002
2、137038160x0134370……核心提示:地址变换可以将进程之间相互重叠的“线性地址”变换到不同的“物理地址”,从而避免了真正意义上的地址“冲突”,实现了进程之间的相互隔离。此外还能实现其它很多好处,因此现代的操作系统都采用地址变换进行内存管理。对“线性地址”的认识:1、逻辑地址:汇编语言(段:偏移)movbx,1000Hmovds,bxmoval,[10H]2、线性地址:由逻辑地址转换得到1000Hds左移4位10000H(实模式下)+10H加上段内偏移10010H3、物理地址:未分页线性地址=
3、=物理地址分页(保护模式)线性地址!=物理地址Intelx86CPU架构下的三种“地址”说明:1、分页内存管理将进程的线性地址空间分成大小相等的片,称为页面或页,目前页的大小取4096(0x1000)个字节。把物理内存分成与页面相同大小的存储块,称为物理块或页框。分页存储管理之原理说明:2、操作系统为进程建立从线性地址页到物理地址页的变换关系表,中间用到2种线性表,分别称为页目录表和页表,表的大小都是4096个字节。(关系见下页)3、CPU内部为分页机制提供了硬件支持,以加快变换速度。第0页0….0xF
4、FF0x1000….0x1FFF0x2000….0x2FFF第1页第2页0x3000第3页…………页目录表0x2000……页表04096字节……页目录表和页表的关系:(很重要)…………说明:为了表征32位地址,表中每个数据都是4Bytes。注意这些表中的数据的低12位都是0。0121023……页表1……0x5000……页表1023……0x20000x60000x60000x5000011023……011023…CR34096字节0x90000x10000x190000x210000x890000x270
5、0001…1023页框二级分页地址变换机制:(重点)由操作系统负责建立(内存中)CPU内部高速寄存器(保存正在运行进程的页目录表首地址)页目录表页表物理内存线性地址二级分页地址变换中的基本运算:线性地址10101010101000000000100000000100312221121101、页内偏移量00000001000000000010101010101010&000000000000000000001111111111110xFFF---------------------------------
6、---------------------------------------000000000000000000001010101010102、页目录表的索引3、页表的索引0000000100000000001010101010101000000000000000000000000000000100右移22次0000000100000000001010101010101000000000000000000001000000000010右移12次&0000000000000000000000111111
7、11110x3FF00000000000000000000000000000010核心提示:尽管我们在这里计算了这些数据,但即使是写操作系统,这些步骤也是不必的。从线性地址到物理地址之间的查表转换由CPU内部自动进行,无需人工干预。物理内存二级分页地址的完整运行流程:(重中之重)线性地址1010101010100000000010000000010031222112110物理内存0x002000CR3(PDBR)0x002000页目录表起始地址0x003000012340x0020100x0020110
8、x0020120x0020130x003000页表起始地址0x006000~~……0x00006AAAX0x00000AAA0x002FFF0x003FFF……+0x00006000-----------------0x00006AAA…………………………012思考(15秒):启用分页内存管理之后带来的明显的不利现象是什么?二级分页地址机制带来的问题:线性地址10101010101000000000100000000100312221121
此文档下载收益归作者所有