操作系统 第7章 内存管理

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1第7章内存管理主要内容7.1内存管理的需求7.2内存分区7.3分页7.4分段7.5安全问题(自学)27.1内存管理的需求重定位保护共享逻辑组织物理组织37.1重定位逻辑地址(虚地址):CPU所生成的地址物理地址(实地址):内存单元所看到的地址重定位(地址转换):把逻辑地址转换为物理地址静态重定位地址转换工作在进程执行前一次完成;无须硬件支持,易于实现,但不允许程序在执行过程中移动位置。动态重定位地址转换推迟到最后的可能时刻,即进程执行时才完成;允许程序在主存中移动、便于主存共享、主存利用率高。47.1.2保护保护操作系统不受用户进程所影响,保护用户进程不受其他用户进程所影响方法1)存储键保护系统将主存划分成大小相等的若干存储块,并给每个存储块都分配一个单独的保护键(锁);在程序状态字PSW中设置有保护键字段,对不同的作业赋予不同的代码(钥匙);钥匙和锁相配才允许访问2)界限寄存器(下页图)上、下界防护:硬件为分给用户作业的连续的主存空间设置一对上、下界,分别指向该存储空间的上、下界基址、限长防护:基址寄存器存放当前正执行者的程序地址空间所占分区的始址,限长寄存器存放该地址空间的长度5下限寄存器2000上限寄存器3500基址寄存器2000限长寄存器1500进程id下限+上限寄存器基址+限长寄存器11000+19991000+99922000+35002000+150034000+50004000+1000内存映像……进程1进程2进程3……100019992000350040005000正运行的进程是进程267.1.3共享某些场合,允许多个进程访问内存的同一部分。多个进程执行同一个程序,允许每个进程访问该程序的同一个副本合作完成同一个任务的进程可能需要共享访问相同的数据结构77.1.4逻辑组织希望操作系统和计算机硬件能够有效地处理以某种模块的形式组织的用户程序和数据。7.1.5物理组织两级存储结构:内存和外存大容量的外存可以用于长期存储程序和数据较小的内存则用于保存当前使用的程序和数据内存和外存之间信息流的组织87.2内存分区7.2.1固定分区1、分区大小大小相等的分区程序可能太大而不能放到一个分区中内存的利用率非常低,会有内部碎片大小不等的分区可缓解上述问题,但不能完全解决。9102、放置算法大小相等的分区只要存在可用的分区,进程就可以装入分区。若所有分区都被处于不可运行状态的进程所占据,则选择其中一个进程换出,为新进程让出空间。大小不等的分区把每个进程分配到能够容纳它的最小分区。每个分区维护一个调度队列,用于保存从这个分区换出的进程。为所有进程只提供一个队列。1112固定分区方案的缺陷分区的数目在系统生成阶段已经确定,限制了系统中活动进程的数目。分区大小在系统生成阶段事先设置,小作业不能有效地利用分区空间。固定分区案例早期的IBM主机操作系统OS/MFT具有固定任务数的多道程序设计系统137.2.2动态分区分区长度和数目是可变的,当进程被装入内存时,系统会给它分配一块和它所需容量完全相等的内存空间。IBM主机操作系统OS/MVT具有可变任务数的多道程序设计系统缺陷外部碎片外部碎片解决方法压缩费时且浪费处理器时间141516放置算法首次适配(FirstFit)从开始扫描内存,选择大小足够的第一个可用块;下次适配(NextFit)首次适配的变种,每次分配时从未分配区的上次扫描结束处顺序查找,选择下一个大小足够的可用块。最佳适配(BestFit)选择与要求的大小最接近的块。最差适配(WorstFit)选择符合要求大小的最大容量的块。17WorstFit187.2.3伙伴系统伙伴系统是一种固定分区和可变分区折中的主存管理算法。伙伴系统分配原理可用于分配的整个空间被视为一个大小为2U的块,若请求的大小s满足2U-1﹤s≤2U,则分配整个空间;否则,该块被分成两个大小相等的伙伴2U-1,如果有2U-2﹤s≤2U-1,则给该请求分配两个伙伴中的任何一个,否则,其中一个伙伴又被分成两半……,该过程一直继续,直到产生大于或等于s的最小块。1920217.3分页内存被划分成大小固定相等的块(页框),且块相对比较小,每个进程也被分成同样大小的块(页)。进程中称为页的块可以指定到内存中称为页框的可用块。分页与固定分区的区别分页技术的分区相当小一个程序可以占据多个分区一个程序占据的多个分区不需要是连续的22页0页1页2页314370123页0页2页1页301234567逻辑内存页表物理内存页号页框号页框号页表23逻辑地址(页号,偏移量)物理地址(页框号,偏移量)转换56120123页表例:说明:页大小为4B,页表如图所示,将逻辑地址0、3、4、13转换为相应物理地址答案:20、23、24、90/4=0…05×4+0=203/4=0…35×4+3=234/4=1…06×4+0=2413/4=3…12×4+1=924练习:逻辑地址到物理地址的转换说明:页大小为1024B,页表如图所示,将逻辑地址1011、2148、3000、4000、5012转换为相应物理地址23160123页表答案:3059、1124、1976、7072、逻辑地址非法1011/1024=0…10112×1024+1011=30592148/1024=2…1001×1024+100=11243000/1024=2…9521×1024+952=19764000/1024=3…9286×1024+928=70725012/1024=4…916页号4不存在257.4分段把程序和其相关的数据划分到几个段中。段有一个最大长度限制,但不要求所有程序的所有段的长度都相等。分段与动态分区的区别一个程序可以占据多个分区一个程序占据的多个分区不需要是连续的会产生外部碎片,但跟动态分区比,会很小26•段表:将逻辑地址映射为物理地址•段基地址:包含该段在内存中的开始物理地址•段界限:指定该段的长度•逻辑地址:段号s+段内偏移d•逻辑地址到物理地址的转换1)段号与段表长度进行比较,若段号超过了段表长度,则越界(非法地址),否则转2)2)根据段表始址和段号计算出该段对应段表项的位置,从中读出该段在内存的起始地址,检查段内地址是否超过该段的段长,若超过则越界(非法地址),否则转3)3)将该段的起始地址与段内位移相加,从而得到要访问的物理地址逻辑地址到物理地址转换27逻辑地址到物理地址转换例说明:段表如表1所示,将表2所示逻辑地址转换为相应物理地址答案:见表3段号内存起始地址段长02196001230014290100313275804195296段号段内位移2884100178非法表1表290+8810096表328说明:段表如表1所示,将表2所示逻辑地址转换为相应物理地址答案:见表3逻辑地址到物理地址转换练习段号段内位移0430110250034004112532段号内存起始地址段长02105001235020210090313505904193895表1表26402360非法1750非法非法表3210+4302350+10500901350+40011295段号5不存在29作业复习题7.2,7.8习题7.6,7.7a,7.14补充习题:页式存储管理系统中,某进程页表如下。已知页面大小为1024字节,问逻辑地址600,2700,4000所对应的物理地址各是多少?页号页框号071325

1 / 29
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功