存储管理内存由存储单元(字节或字)组成的一维连续的地址空间,简称内存空间.
用来存放当前正在运行程序的代码及数据,是程序中指令本身地址所指的、亦即程序计数器所指的存储器系统区:用于存放操作系统用户区:用于装入并存放用户程序和数据存储管理目标充分利用内存,为多道程序并发执行提供存储基础尽可能方便用户使用自动装入用户程序用户程序中不必考虑硬件细节解决程序空间比实际内存空间大的问题程序在执行时可以动态伸缩内存存取速度快存储保护与安全共享与通信了解有关资源的使用状况实现的性能和代价存储管理的任务(1)内存空间的管理、分配与回收记住每个存储区域的状态(需要设置相应的非配表格,记录内存空间使用状态)实施分配(分为静态非配和动态分配两种)回收为实现上述功能,必须引入分配表,统称为系统分配表,组织方式有:位示图表示法:用一位(空闲页面表空闲块链表空闲块表:空闲块首址和空闲块长度,没有记录的区域即为进程所占用bit)表示一个内存页面(0表示空闲,1表示占用):包括首页面号和空闲页面个数,连续若干的页面作为一组登记在表中;:将所有空闲块链成一个链表静态分配:动态分配:程序要求的内存空间是在目标模块连接装入内存是确定并分配的,并且在程序运行过程中不允许再申请或在内存中"搬家",即分配工作是在程序运行前一次性完成.
程序要求的基本内存空间实在目标模块装入时确定并分配的,但是程序运行过程中允许申请附加的内存空间或在内存中"搬家",即分配工作可以在程序运行前及程序运行中逐步完成.
动态分配的好处:具有较大的灵活性;暂不使用的信息可以不进内存,对提高内存利用率大有好处;反映了程序的动态性,较之静态存储分配更为合理.
(2)内存共享内存共享是指两个或多个进程共用内存中相同区域,这样不仅能使多道程序动态地共享内存,提高内存利用率,而且还能共享内存中某个区域的信息.
包括:代码共享和数据共享.
代码共享的代码必须是纯代码!
目的:1通过代码共享节省内存空间2通过数据共享实现进程通信(3)存储保护存储保护目的:为多个程序共享内存提供保障,使在内存中的各道程序,只能访问它自己的区域,避免各道程序间相互干扰.
特别是当一道程序发生错误时,不至于影响其他程序的运行,更要防止破坏系统程序.
主要是硬件支持,软件配合实现的.
存储保护内容:1防止地址越界2防止操作越权(对属于自己区域的信息,可读或写;对公共区域中允许共享的信息或获得授权可以使用的信息,可读而不可修改;对未授权使用的信息,不可读,不可写)一般由硬件提供一对寄存器:基址寄存器限长寄存器上界寄存器和下界寄存器:存放起始地址:存放长度或者是一对(4)"扩充"内存容量(内存扩充)在硬件支持下,软件、议案相互协作,将内存和外存结合起来统一使用.
(5)地址映射(地址转换)逻辑地址(相对地址,虚地址):用户的程序经过汇编或编译后形成目标代码,目标代码通常采用相对地址的形式,其首地址为0,其余指令中的地址都相对于首地址而编址,这就是逻辑地址的概念.
物理地址(绝对地址,实地址):内存中存储单元的地址,可直接寻址地址映射(地址转换,重定位):为了保证CPU执行指令时可以正确访问存储单元,需将用户程序中的逻辑地址转换为运行时可由机器直接寻址的物理地址,这一过程称为地址映射.
静态地址映射(静态重定位)动态地址映射(动态重定位):当用户程序被装入内存是,一次性实现逻辑地址到物理地址的转换,以后不再转换.
(软件完成):在程序执行过程中要访问数据时再进行地址映射,即逐条指令执行时完成地址映射.
(硬件地址映射机制)基址寄存器(BR),在程序装入后,将其内存空间的起始地址B送入BR,一旦遇到要访问地址的指令时,硬件便自动将其中的访问地址加上BR的内容形成世纪物理地址,然后按该地址执行.
单一用户存储管理方案单一用户系统在一段时间内只有也用户进程在内存,因此内存分配管理十分简单,内存利用率低.
内存分为两个区域:一个供操作系统使用;一个供用户使用用户程序进内存时,是从内存用户区的固定地址开始连续完整存放;不存在分配、回收问题.
分区管理固定分区:系统先把内存划分成若干个大小固定的分区,一旦划分好,在系统运行期间不再重新划分.
为了满足不同程序的存储要求,各分区的大小可不相等.
由于分区的大小固定,就限制了可容纳程序的大小,因此要求程序运行时必须提供对内存资源的最大申请量.
管理办法:内存分配表每个分区按顺序在分区说明表中对应一个表目,表目内容包括分区序号、分区大小、分区起始地址以及使用状态,程序运行时,根据其最大需求量,按一定的分配策略在分区说明表中查找空闲分区,找到则占用,完成时释放.
可变分区系统不预先划分固定分区,而是在装入程序时划分,使位程序分配的分区的大小正好等于该程序的需求量,且分区的个数是可变的.
内存分配:分配策路:(1)首先适应算法(首先适配算法):当接到内存申请时,查找分区说明表,找到第一个满足申请长度的空闲区,将其分割并分配.
(2)最佳适应算法(最佳适配法):当接到内存申请时,查找分区说明表,找到第一个能满足申请长度的最小空闲区,将其分割并分配.
此算法最节约空间,因为它尽量不分个大的空闲区;缺点是可能会形成很多很小的空闲区,称作碎片.
(3)最坏适应算法(最差适配法):当接到内存申请时,查找分区说明表,找到能满足申请要求的最大的空闲区.
算法的优点是可以避免形成碎片;缺点是分割了大的空闲区后,再遇到较大的程序申请内存时,无法满足的可能性较大.
内存回收:当某一块归还后,前后空间合并,修改内存空闲块表内存分配表:已分配区表,记录已经装入的程序在内存中占用分区的起始地址长度,用标志位指出占用分区的程序名;另一张是空闲区表,记录内存中可供分配的空闲区的起始地址和长度,用标志位指出该分区是未分配的空闲区.
起始地址长度标志500800P11500400P2空…起始地址长度标志1300200未分配1900650未分配空…碎片问题:采用可变分区存储管理方案后,经过一段时间的分配回收,内存中会存在很多很小的空闲块.
它们每一个都很小,不足以满足程序分配内存的要求,但其总和却可能满足程序的分配要求,这些空闲块被称为碎片.
解决办法:在适当时刻进行碎片整理,通过在内存中移动程序,把所有空闲碎片合并成一个连续的大空闲区且放在内存的一段,而把所有程序占用区放在内存的另一端,这一技术称为"拼接技术".
分区的保护:两种办法1设置界限寄存器:上、下界寄存器或基址、限长寄存器.
程序A60K124K60K下界寄存器上界寄存器124K程序A基址寄存器60K限长寄存器64K60K124K2保护键法:为每个分区分配一个保护键,相当于一把锁.
同时为每一个进程分配一个相应的保护键,相当于一把钥匙,存放在程序状态字中.
每次访问时检查钥匙和锁是否相匹配,若不匹配,则发出保护性中断.
分区管理优缺点:优点:存储管理技术简单易行,内存共享,便于动态申请内存缺点:内存利用率低,存在严重的碎片问题,不提供"虚存",不能对内存"扩充",存储收到实际存储容量的限制.
页式存储管理出发点:打破存储分配的连续性,使得一个程序的逻辑地址空间可以分布在若干离散的内存块上,从而达到充分利用内存,提高内存利用率的目的.
MMU:MemoryManagementUnit(存储管理部件)页式存储管理英国曼彻斯特大学内存空间划分:将内存空间划分成等长的若干区域,每个区域成为一个物理页面,有时亦称内存块或块.
内存的所有物理页面从0开始编号,称作物理页号或者内存块号.
每个物理页面内容从0开始依次编址,成为页内地址.
逻辑地址空间划分:系统将用户程序的逻辑地址空间按照物理页面大小也划分成若干页面,成为逻辑页面,建成为页.
此时,用户的逻辑地址可表示为:逻辑页号页内地址页面大小:页面尺寸一般取2的整数次幂.
大多数分页系统采用的页面尺寸为512到2K字节内存分配:以页面为单位,并按用户进程的页数多少进行分配.
逻辑上相邻的页面在内存中不一定相邻,即分配给用户程序的内存块不一定连续.
管理方法:页表系统为每个用户程序建立一张页表,用于记录用户程序的逻辑页面与内存物理页面之间的对应关系,包括两项内容:逻辑页面号该逻辑页面在内存中分配的物理页面号(内存块号)用户程序的地址空间有多少页,该页表里就登记多少行,且按逻辑页的顺序排列.
页表存放在内存系统内存区.
如果一个进程的地址空间大小为2GB,页面大小为4K,那么这个进程有219个页.
如果一个物理页面需要4个字节表示其地址,该进程的页表有512页(2MB).
这样就引出了页表的存放管理的问题,见后续.
建立内存分配表:将系统中建立一张内存分配表,记录内存物理页面的空闲情况,用于内存分配和回收.
只要在内存分配表中给出哪些块已分配和哪些块尚未分配以及当前剩余的空闲块数.
位示图:例如:内存可分配区域共256块,用字长为32位的8个字作为"位示图".
每一位与一个内存块相对应.
0表示空闲,1表示占用.
在位示图中再增加一个字节(或字)记录当前剩余的总空闲块数.
初始化时把系统占用的块对应位置1.
分配时:先查看空闲块数能否满足程序要求.
不能,则不分配.
能,则按需求从位示图中找出一些为0的位,把这些位置1,并从空闲块书中减去本次分配的块数,然后按找到的位计算出对应的块号.
当找到一个为0的位后,根据它所在的字号、位号,按如下公式可计算出对应的块号:块号=字号*字长+位号把程序装入到这些内存块中,并为该程序建立页表.
程序结束,回收内存块.
根据块号计算出该块在位示图中对应的位置,将占用标志改为0,把回收的块数加入到空闲块数中.
假定归还块号为i,则在位示图中的对应位置为:字号=[i/字长],位号=imod字长见书上P187页图硬件支持:1硬件寄存器每个进程都有一张页表,页表所指内存的起始地址和长度作为现场信息存入PCB,进程一旦被调用,这些信息将被作为恢复现场信息送入系统的地址映射机制中的寄存器中.
(1)页表始址寄存器:用于保存页表长度寄存器,用于保存正在运行的进程的页表在内存的首地址.
(2)正在运行进程的页表长度.
2地址映射过程也表示硬件进行地址转换的依据,每执行一条指令时按照逻辑地址中的逻辑页号检查页表,若页表中无此页号,则产生一个"地址越界"的程序性中断事件;或页表中有此页号,则可得到对应的内存块号,将其转成为可以访问的内存物理地址:物理地址=内存块号块长+页内地址*注:由于块长是2的整数次幂,故实际上乘的运算在机器中用移位运算代替.
因此上式的结果就是把内存块号作为绝对地址(物理地址)的高位地址,而页内地址作为他的低地址部分.
图示见书上P1883快表的引入(书上P189详解)在地址映射机制中增加一个小容量的相联存储器.
它由高速缓存器组成,可以从硬件上保证按内容并行查找,速度快,所以称为快表.
用来存放当前访问最频繁的少数活动页面的页号.
页式存储管理优缺点:优点:不缺点:虽要求作业或进程的程序段和数据在内存中连续存放,从而有效解决了碎片问题,提高了内存的利用率,有利于组织多道程序执行然页式存储管理消除了碎片,但每个程序的最后一页内总有一部分空间得不到利用,如果页面较大,则这一部分的损失仍然很大.
段式存储管理基本思想:1内存划分:内存空间被动态地划分为若干个长度不相同的区域,每个区域称作一个物理段.
每个物理段在内存中有一个起始地址,称作段首址.
将物理段中的所有单元从0开始依次编制,称为段内地址.
2逻辑地址空间划分:用户程序按逻辑上有完整意义的段来划分.
成为逻辑段,简称段.
一个逻辑段中的所有单元从0开始编制,称为段内地址.
用户程序的逻辑地址由段号和段内地址两部分组成:段号段内地址3内存分配:系统以段为单位进行内存分配,为每一个逻辑段分配一个连续的内存区(物理段).
逻辑上连续的段在内存上不一定连续.
管理方法:段表:程序装入内存后,系统为每个用户程序建立一张段表,用于记录用户程序的逻辑段与内存物理段之间的对应关系.
段表包括逻辑段号、物理段起始地址(段首址)和物理段长度三项内容.
用户程序有多少逻辑段,该段表里就登记多少行,且按逻辑段的顺序排列.
段表存放在内存系统区里.
建立内存分配表:段式存储管理分配内存空间的方法与可变分区管理方案的分配方法相同,也有相同结构的内存分配表,包括已分配区表和空闲区表.
与可变分区管理方案不同的是:段式存储管理是为程序的每一个分段分配一个连续的内存空间.
分配算法也可以采用首先适应算法、最佳适应算法、最坏适应算法.
进行内存分配时,根据段长找出一个可容纳该段的空闲区,分割该空闲区,一部分用来装入段信息,另一部分仍为空闲区.
仍可采用拼接技术来合并分散的空闲区.
硬件支持:(1)段表始址寄存器:用于保存正在运行的进程的段表在内存的首地址.
(2)段表长度寄存器,用于保存正在运行进程的段表长度.
为了加快地址映射,也可以采用快表技术.
地址映射过程:(书上P191)需要注意的是,此时在快表中除了段号、段首址外还有段长度需要比较判断.
段式存储管理优缺点:优点:缺点:仍然存在支持用户内存观点的一种内存管理模式.
进程逻辑空间最接近用户观点,克服了页式的非逻辑划分给保护和共享与动态伸缩带来的不自然性.
最大好处是可以充分实现共享和保护.
总结:便于动态申请内存,管理和使用统一化,便于共享,便于动态链接;碎片问题.
段页式存储管理1基本思想:用页式方法来分配和管理内存空间,即把内存划分为若干大小相等的页面;用段式方法对用户程序按照其内在的逻辑关系划分为若干段;再按照划分内存页面的大小,把每一段划分成若干大小相等的页面.
因此用户程序的逻辑地址由三部分组成:段内地址W段号S页号P页内地址D程序员可见的是段号S和段内相对地址W.
P和D是由地址变换机构把W的高几位解释成页号P,把剩下的低位解释为页内地址D得到的.
同时体现了段、页式管理方式的特点:书上P193页2管理方法:系统必须为每个进程建立一张段表;系统还要为每一个段建立一张页表.
段表中记录了该段对应页表的起始地址和长度;而页表则给出该段的每个逻辑页面与内存块号之间的对应关系.
需要"位示图"法建立内存分配表,用于记录并管理内存空闲块.
3硬件支持:(1)段表始址寄存器:用于保存正在运行进程段表的起始地址(2)段表长度寄存器:用于保存正在运行进程段表的长度详见P193
Virtono是一家成立于2014年的国外VPS主机商,提供VPS和服务器租用等产品,商家支持PayPal、信用卡、支付宝等国内外付款方式,可选数据中心共7个:罗马尼亚2个,美国3个(圣何塞、达拉斯、迈阿密),英国和德国各1个。目前,商家针对美国圣何塞机房VPS提供75折优惠码,同时,下单后在LET回复订单号还能获得双倍内存的升级。下面以圣何塞为例,分享几款VPS主机配置信息。Cloud VPSC...
古德云(goodkvm)怎么样?古德云是一家成立于2020年的商家,原名(锤子云),古德云主要出售VPS服务器、独立服务器。古德云主打产品是香港cn2弹性云及美西cn2云服务器,采用的是kvm虚拟化构架,硬盘Raid10。目前,古德云香港沙田cn2机房及美国五星级机房云服务器,2核2G,40G系统盘+50G数据盘,仅35元/月起,性价比较高,可以入手!点击进入:古德云goodkvm官方网站地址古德...
ZJI本月新上线了香港葵湾机房站群服务器,提供4个C段238个IPv4,支持使用8折优惠码,优惠后最低每月1400元起。ZJI是原Wordpress圈知名主机商家:维翔主机,成立于2011年,2018年9月更名为ZJI,提供中国香港、台湾、日本、美国独立服务器(自营/数据中心直营)租用及VDS、虚拟主机空间、域名注册等业务,所选数据中心均为国内普遍访问速度不错的机房。葵湾二型(4C站群)CPU:I...
存储容量为你推荐
存储备份小型机 存储备份急救知识纳入考试应急救护知识应该由哪个部门培训特朗普取消访问丹麦特朗普专机抵达日本安保警力情形如何?李子柒年入1.6亿李子柒男朋友是谁,李子柒父母怎么去世的?18comic.fun黑色禁药http://www.lovecomic.cn/attachment/Fid_18/18_4_00d3b0cb502ea74.jpg这幅画名字叫什么?18comic.fun贴吧经常有人说A站B站,是什么意思啊?罗伦佐娜手上鸡皮肤怎么办,维洛娜毛周角化修复液同ip网站12306怎么那么多同IP网站啊?这么重要的一个网站我感觉应该是超强配置的独立服务器才对啊,求高人指点www.yahoo.com.hk香港有什么有名的娱乐门户网站吗?www.522av.com现在怎样在手机上看AV
台湾虚拟主机 域名备案网站 免费动态域名 burstnet 主机 hawkhost优惠码 百度云100as 美国主机推荐 linode代购 cpanel主机 Hello图床 账号泄露 ixwebhosting 12306抢票助手 帽子云 北京双线机房 东莞数据中心 drupal安装 便宜空间 太原联通测速 更多