




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
安徽科技学院设计人:赵艳红,第9章内存管理(2),教师:计算机操作系统课程组E-mail:zhao.yanhong(赵艳红)wxzx(沈峰),.,1,Contents,分页,.,2,引言,?为了消除外部碎片从而提高内存使用效率,能否把进程在内存中连续存储这种情况改变,使之非连续存储?把进程的逻辑内存分割成不同的块。把物理内存也分割为不同的块。分割的方法不一样,会导致以下不同的内存管理方案:分段、分页、带有分页的分段。内存管理方案是通过硬件与操作系统相互配合实现的。,.,3,9.4分页,9.4.1基本方法把物理内存分割成大小相等且大小固定的块,称之为帧(frame),也称为物理页。帧大小:512Byte64KByte,80386中:4KByte.帧号把进程的逻辑内存也分割为与帧大小一样的块,称之为页,也称为逻辑页。备份存储器(如硬盘、SD卡等)也分割为与帧大小一样的块。,.,4,9.4.1基本方法,当一个程序从硬盘调入到内存时,要把整个程序即程序的所有页都调入到内存。在请求分页式虚拟存储管理方案中只需要把当前运行需要的页调入内存中。,.,5,页表,作用:表示页号与帧号的一一对应关系组成:页号+帧号大部分操作系统都把页表存储在内存中。页表的大小由进程的长度决定。例如,对于一个每页长1K,大小为20K的进程来说,如果一个内存单元存放一个页表项,则只要分配给该页表20个存储单元即可。每个进程至少拥有一个页表。,.,6,逻辑内存和物理内存的分页模型,页到帧的地址转换是通过硬件完成的,如右图所示。CPU产生的逻辑地址分为两部分:页号(p):是页表的索引值,页表中包含每页对应的帧号页偏移(d):它与帧号组合形成物理地址。在80386中,地址为32位。12位表示页偏移:页长为4KB20位表示页号:页数1024K个逻辑地址结构如下图所示:,分页示例:页长4Byte,物理内存:32Byte。,页表,逻辑内存,物理内存,页码,逻辑地址0对应的页码为0,页偏移为0,根据页表,页码0对应的帧号是5。所以逻辑地址0对应的物理地址是5*4+0=20即帧号页长页偏移,逻辑地址0对应的物理地址是多少?,1,2,3,0,1,2,3,0,5,6,7,4,帧号,.,9,示例,?假设某OS中,页和帧的大小都为1KB,有一个进程其页表如下图所示,此进程有一条指令为LOAD1,2500,此指令的虚地址为100。问题:(1)虚地址100对应的物理地址。(2)指令中表示操作数的虚地址2500对应的物理地址?给定逻辑地址A,页大小为L,则页号P和页偏移地址D分别为:P=INTA/L,D=AMODL,解:(1)为了找出逻辑地址100对应的物理地址,硬件地址变换机构首先将100转换为页号p与页偏移d组成的逻辑地址形式。即p=0,d=100。从页表中可知第0页与2号帧相对应,将帧号2与页偏移d=100相连,得到物理内存地址:2*1024+100=2148。,210241002148,p=INT100/1024d=100MOD1024,.,11,示例,(2)指令中表示操作数的虚地址2500对应的物理地址?答案:8644。课后请计算答案为什么是8644。,.,12,分页技术不会产生外部碎片:每个帧都可能会被使用。分页技术会产生内部碎片:因为分配单位是帧。如果一个进程要求的内存并不是帧的整数倍,那么最后一个帧就可能用不完。例如:如果页大小:2048Byte,进程大小:72766Byte,则进程需要35个页和1086Byte。该进程会得到36个帧。因此会产生2048-1086=962Byte的内部碎片。,当系统需要执行一个进程时,它将检查进程所需要的页数。因此,如果进程需要n个页,那么内存中至少应有n个空闲帧。如果有,则可以分配给新进程。进程的第一页装入一个空闲帧中,帧号放入进程的页表中。下一页分配给另一个空闲帧,其帧号也放入进程的页表中,等等。页表的各项随之被填充。,.,14,9.4.2硬件支持,?操作系统如何保存页表?有的操作系统把页表存储在寄存器中。如DECPDP-11。大部分操作系统都把页表存储在内存中。这时将页表基寄存器(PTBR,其作用与如下图中的控制寄存器相同)指向页表。PTBR的值保存在进程的PCB中。,.,15,9.4.2硬件支持,.,16,说明,(1)地址变换过程:CPU中的地址变换机构自动完成。(2)页表:在内存中,取一个数据或指令至少要访问内存两次以上:获取物理地址、取数据或指令。为了提高查找速度:把最近使用过的页表项放进小型的高速缓冲存储器中,称之为翻译后备缓冲器(translationlook-asidebuffer,TLB)。TLB中保存的条目个数一般在641024。80386中:TLB中为32项。,当CPU产生逻辑地址后,其页号提交给TLB。如果找到页号也就找到了帧号,则不需要再查找页表了。如果在TLB中找不到页号,则需要访问页表,当得到帧号后就可以访问内存。同时将页号与帧号增加到TLB中,供下次访问此页时TLB使用。如果TLB条目已满,则操作系统会选择一个条目将它移出TLB。,.,18,9.4.3保护,分页环境下,内存保护是通过与每个帧相关联的保护位来实现的。保护位的类型:用于指示页可读、可写、可读/写、有效/无效等。有效/无效位:有效时,表示该值相关的页在进程的逻辑地址空间内,是合法(或有效)的页。无效时,表示该页不在进程的逻辑地址空间内,进程访问此页时会产生非法操作即无效地址引用。操作系统可以通过保护位设置该页有效/无效。,.,19,示例,某计算机系统其物理地址空间为14位(016383),有一个程序其逻辑地址空间为010468。若页大小:2KB,那么得到如下图所示的页表。有效的地址范围:012287。1228816383对于此程序来说,都是无效地址。,.,20,示例,.,21,9.4.4页表结构,Intel80386中的地址空间是232,页大小:4KB(212),可表示的页个数是232/212个。也即一个进程的页表中条目个数最多可以是:232/212个,如果每个条目大小为4B,则每个这个页表的大小是4M。页表还必须在内存中连续存放。如何使页表可以不必连续存放在内存中?,.,22,Intel80386解决这个问题的方法:两层分页算法,即将页表再分页保存。这时,逻辑地址的结构如图所示。P1是外部页表的索引,P2是内部页表的索引。,.,23,Intel80386中两层分页的地址转换,又称为页目录表,页表,.,24,9.4.5共享页,共享代码如果代码是可重入的,那么就可以供多个进程共享。例如编辑器、编译器等。私有数据每个进程都有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐饮连锁加盟与区域代理合作协议范本
- 餐饮门面租赁合同租赁终止条件与违约责任解析
- 员工培训案例
- 茶园承包与茶叶品牌保护与维权合作协议
- 生态工业园区厂房土地抵押借款合同
- 餐饮连锁品牌加盟加盟商权益保障合同
- 智能家居系统承包安装服务合同范本
- 拆除工程安全责任书:建筑拆除安全合同
- 名医诊疗经验传承师承合同
- 师生夏季安全教育
- DB34∕T 4004-2021 埋地聚乙烯燃气管道定期检验规则
- 2024阀控式铅酸密封蓄电池
- 2022-2023学年山东省泰安市高一下学期期末数学试题(解析版)
- 仓库搬运装卸服务方案
- 示范区城区控制性详细规划说明书
- 马鞍山二中理科创新人才实验班招生考试物理试题
- GB/T 44198-2024空间站科学实验系统集成与验证要求
- 新教材人教版高中物理选择性必修第三册全册各章节知识点考点
- 安徽省马鞍山市2024-2025学年高一数学下学期期末考试试题含解析
- 车库业主与租赁者安装充电桩协议书
- 劳务班组施工合同范本(2024版)
评论
0/150
提交评论