内存管理与保护模式

内存管理与保护模式

ID:38834584

大小:1.87 MB

页数:40页

时间:2019-06-20

内存管理与保护模式_第1页
内存管理与保护模式_第2页
内存管理与保护模式_第3页
内存管理与保护模式_第4页
内存管理与保护模式_第5页
资源描述:

《内存管理与保护模式》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、内存管理与保护模式本实验讨论x86采用的内存管理模式:从分段实模式到分段保护模式,再到分页虚拟内存管理,并介绍进入保护模式、启动分页机制、以及获取内存大小的基本方法。1x86的内存管理内存的分段(segmentation)管理符合程序的逻辑结构,利于程序的保护和动态控制。分页(paging)则最适合虚拟内存的管理需要。目前主流操作系统的内存管理采用的是分页方法(如类Unix),也有采用段页式的(如Wiondows)。Intel8086支持不带保护功能的分段内存管理,80286开始引入带保护功能的分段内存管理,80386又引入了支持虚拟内存的分页内存管理,但其分页是建立在分段基础

2、上的。IA-32和x64处理器,都支持段页式内存管理。1.1实模式Intel的16位处理器8086,采用的是分段内存管理,CPU中有CS、DS、SS和ES四个16位段寄存器,作为基地址,分别用于生成代码、数据、堆栈和其他段的物理地址:20位物理地址=16位段寄存器值*16(或左移4位)+16位偏移量寻址空间只有(220=)1MB,最大段长为(216=)64KB。因为这样的CPU只能生成和访问真实的物理内存地址,所以被称为实地址模式(real-addressmode),简称为实模式(realmode)。不过这种分段方法并不是现代的分段技术,没有提供任何内存保护功能,不能阻止内存的

3、越界访问。而且8086CPU也没有提供任何特权分级,谁都可以任意改变CS、DS和SS寄存器中的值,从而可以执行/访问内存任何地址的指令/数据,完全没有安全可言。因此在8086CPU上,是不可能构建现代操作系统的。1.2保护模式1982年推出的16位的80286处理器,在x86体系中首次引入了(分段式的)内存保护机制,称之为保护模式(protectedmode)。不过80286的保护模式只支持24位的地址空间(最多只能访问16MB内存)和16位的界限大小(最大段长为216=64KB或216+8=224=16MB),且只能从实模式进入保护模式,而不能从保护模式返回实模式。1985年

4、推出的32位的80386处理器,其保护模式支持32位的地址空间,寻址空间达到(232=)4GB。但是为了与分段式的8086兼容,80386并没有使用简单的线性地址空间,而是采用了基于分段的分页内存管理方法(其中的分页管理是80386新增加的)。这里的分段是必须的,分页则是可选的。1.分段分段将处理器可寻址的内存空间(称为线性地址空间)划分为较小的受保护的地址空间(称为段),段可用于容纳程序的代码、数据和堆栈,或系统的数据结构(如TSS或LDT)。可以为每个运行的程序指派各自的段集。分段机制还允许将段分类,从而可限制在某个特定段类上能够执行的操作。为了定位特定段中的字节,必须提供

5、一个逻辑地址(也称为远指针),它包含一个段选择符和一个偏移量。段选择符是段唯一的标识符,它提供段描述符在描述符表中的偏移量。段描述符指定段的大小、访问权限和特权级、段类型、段在线性地址空间中的起始地址(基址)。段的基址+偏移量=处理器线性地址空间中的线性地址。2.分页如果不使用分页,则IA-32处理器的线性地址空间直接映射到处理器的物理地址空间,不支持虚拟内存管理。对IA-32处理器,只有分页机制才支持虚拟内存,使处理器的线性地址空间可以大于内存的物理地址空间。但是IA-32处理器的分页是建立在分段的基础之上的,即IA-32处理器采用的是段页式内存管理方法。在使用分页管理时,每

6、个段被分成若干等长的页(对IA-32处理器,典型的页帧大小是4KB),这些页可以存放在内存中,也可以存放在磁盘上(即支持虚拟内存)。当程序或任务试图访问线性地址空间中的地址位置时,处理器利用页目录和页表,将线性地址转换为物理地址。为了节省内存空间,IA-32处理器采用的是两级分页方式。如果采用单级分页,对4KB(=212)页帧大小和4GB地址空间,需要1M(=220)个表项,每个表项4B则整个页表就需要4MB空间。由于一般的进程并不需要使用整个4GB的空间,所以大多数表项都空着的,非常浪费。如果采用二级分页,一级为页目录(PageDirectory,PD),有(210=)102

7、4个页目录项(PageDirectoryEntry,PDE)。每个页目录项指向一个二级页表(PageTable,PT),它也有(210=)1024个页表项(PageTableEntry,PTE),总共也是(1024*1024=220=)1M个页。但对空页目录项,不必创建其对应的页表,可以节省空间。31222112110页目录项序号dir页表项序号table页帧内偏移量offset4KB分页时的线性地址格式311211109876543210页表起始物理地址的高20位IgnoredPSIgnA

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。