版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章
内存管理
存储的层次结构
•第3章内存管理
•3.1内存介绍
•3.1.1内存管理
•1.存储的层次结构
高速缓存
•2.高速缓存
•目前存储的技术是设置CPU的三级缓存:
•(1)L1Cache(一级缓存)是CPU第一层高速缓存,分为
数据缓存和指令缓存。内置的L1高速缓存的容量和结构对
CPU的性能影响较大,不过高速缓冲存储器均由静态
RAM组成,结构较复杂,在CPU管芯面积不能太大的情
况下,L1级高速缓存的容量不可能做得太大。一般服务器
CPU的L1缓存的容量通常在32KB〜256KB。
高速缓存
(2)L2Cache(二级缓存)是CPU的第二层高速缓存,分
内部和外部两种芯片。内部的芯片二级缓存运行速度与
CPU主频相同,而外部的二级缓存则只有CPU主频的一半。
L2高速缓存容量也会影响CPU的性能,原则是越大越好,
现在家庭用CPU容量最大的是512KB,而服务器和工作站
上用CPU的L2高速缓存为1MB,有的高达2MB或者4MB。
(3)L3Cache(三级缓存),分为两种,早期的是外置,
现在的都是内置的。而它的实际作用是可以进一步降低内
存延迟,同时提升大数据量计算时CPU的性能。降低内存
延迟和提升大数据量计算能力对游戏有很大帮助,在服务
器领域增加L3缓存对性能有显著的提升。比如具有较大L3
缓存的配置利用物理内存会更有效,故它比较慢的磁盘
I/O子系统可以处理更多的数据请求。
高速缓存与内存速度的对比
LavalysEVERESTCache&MemoryBenchmarlc
ReadVAteCcpylatency
1I5329MB"i
Memory6402MB/g-17件II7,7n$;
I:Cache29751MB/S296S9母59s87MB衿||1.6nsj
_______________
12Cache13637MB衿1[10357蟀[|叫I|6Jns|
13Cache―1_______________II_______________II______I
CPUTypeOualCoreIntelCore2DuoE6330(.Conroe,LGA77S)
CPUClock18682MhU(origal:1866W?)____________________________
bUF5B266.9MHz(original:266MHz)________________________________________
CPUMult氏r|兀6|CPUSteppng阳I
Memory0u$400.3MHr»AM:FS8RatioI⑵aI
MemoryType|DudChanneMDR2«0SO*(呆$$4852)__________________________
ChpsetIntelBroadwaterP%S
MotherboardlAsusPa__________________________________________
EVERESTv^.10.1082Beta/BenchDU22.186.0(c)2003^2007Lavalys,Inc.
内存空间的分配和回收
•3.内存管理的主要功能
•(1)内存空间的分配和回收
•操作系统中的内存管理能根据所记录的存储区状态作为内
存分配的依据。当用户提出申请时,实施存储空间的分配
管理,并能及时回收系统或用户释放的存储区,以供其它
用户使用。为此,这种存储分配机制应能完成如下工作:
・记住存储区域的状态,哪些是已经分配的,哪些是未分配
的。保存存储区域的状态的数据结构称为内存分配记录表。
■实施分配。在系统程序或用户提出申请时,按所需的量给
予分配,并修改相应的内存分配记录表。
■接收系统或用户释放的存储区域,并相应地修改内存分配
♦录表。
地址转换
•(2)地址转换
•程序设计人员在进行程序设计中,访问信息时所用到的一
系列地址单元的集合称为逻辑地址,而存储空间是内存中
物理地址的集合。在多道程序环境下,程序不是事先约定
存放位置,而是在执行过程中可以动态浮动,故程序的逻
辑地址和物理地址是不一致的,因此需要内存管理机制提
供地址映射转换功能,把程序地址空间中的逻辑地址转换
为内存空间中对应的物理地址。
内存的共享和存储保护
•(3)内存的共享和存储保护
•由于内存区域为多个用户程序共同使用,所以存储共享有
两方面的含义:
•多个用户程序共同使用内存空间,各个程序使用各自不同
的存储区域;
■多个用户程序共同使用内存中的某些程序和数据区,这些
共享程序和数据区称为共享区。
•因此内存管理必须研究如何保护各存储区中的信息不被破
坏和偷窃,同时当多个程序共享一个存储区时,也要对共
享区进行保护,确保信息的完整性和一致性。
内存空间的扩充
•(4)内存空间的扩充
•计算机在实际的应用中,常常出现内存容量大小无法满足
大程序的要求。同时,内存容量受到实际存储单元的限制。
因而,内存管理机制必须提供相应的技术,来达到内存单
元逻辑上的扩充。现在采用的一般是覆盖技术、交换技术
和虚拟存储技术。
程序名空间
312相关概念
•1.程序名空间
源程序中的各种符号名的集合所限定的空间称为程序名空
间。如源程序中的数据和子程序通常是用符号名进行访问
的,这些符号名与存储器地址无任何直接关系。
在程序名空间中提到地址时,都是用符号来代替的,比如
Basic中的行号或Goto语句后面的标识符。程序名空间中
的地址概念只限于编辑器中,方便用户对程序的逻辑设计。
如图3-3a所示,主程序和各个子程序都有各自不同的起始
地址标识,变量也有自己的地址标识。
三种空间
0
tiincl
Maimxxxxxxxxxx
{Main
funcl():xxxxxxxx
inta=l;Main
n-lftinc2():xxxxxxxx
}
ibnc3():xxxxxxxx
fiinc?
0
{
intb-l;fund
fund
]ml-1
fiinc3
]fiinc2
0
intc-l;
}func2
Main()
m2-l
]
inti=tuncl():func3
0
intj-func2():
intIc=func3();func3
1m3-l
(a)程序名空间(b)地址空间(c)存储空间
地址空间与存储空间
•2.地址空间(AddressSpace)
•经编译后,源程序中的各种符号名转换成机器指令和数据
组成的目标程序,且用实际地址码替换符号地址。把目标
代码所限定的地址域叫该程序的地址空间。这些程序的地
址都臬从“0”开始的,程序中的其它地址都是相对于起始
地址“0”来计算的。地址空间中的地址叫做相对地址(或
逻辑地址,又叫虚地址)。
•3.存储空间(MemorySpace)
•存储空间是指物理存储器中全部物理存储单元的集合所限
定的空间,也称为内存空间。每个存储单元都有它自己的
编号地拉。该地虻被称为缩对地拉,或物理同虬,或实他
址。存储空间的大小由系统的硬件配置决定的,即计算机
中内存容量的大小。
直接存储分配方式
•4.存储分配的几种形式
•解决存储分配问题有三种方式:
•(1)直接存储分配方式
•编程人员在程序设计过程中,或汇编程序对源程序进行编
译时,所用的是实际物理地址,以确保各程序所用的地址
之间互不重叠。
很显然,直接存储分配方式要求内存的可用空间已经确定,
这对于单用户计算机系统来说是不成问题的。在多道程序
设计发展初期,通常将存储空间划分成若干个固定的不同
大小的分区,并对不同的作业指定不同的分区。对于程序
设计人员或编译系统而言,内存的可用空间是已知的。这
样,不仅用户感到不方便,而且内存的利用率也不高。
静态存储分配方式
•(2)静态存储分配方式
•采用静态存储分配方式时,用户在编写程序或由编译系统
产生的目标程序中采用的地址空间为逻辑地址。当连接程
序对它们进行装入、连接时,才确定它们在内存中的物理
位置,从而产生可执行程序。这种分配方式要求用户在进
行装入、连接时,系统必须分配其要求的全部内存空间,
若内存空间不够,则不能装入该用户程序。同时,用户程
序一旦装入到内存后,它将一直占据着分配给它的内存空
间,直到程序结束时才释放该空间。其次,在整个运行过
程中,用户程序所占据的内存空间是固定不变的,也不能
动态地申请内存空间。
•显然,这种分配方式不仅不能实现用户对内存空间的动态
扩展,而且也不能有效地实现内存资源的共享。
动态存储分配方式
•(3)动态存储分配方式
•动态存储分配方式是一种能有效使用内存的方法。用户程
序在内存空间中的位置也是在装入时确定的,但是它不必
一次性将整个程序装入到内存中,可根据执行的需要,一
部分一部分地动态装入。同时,装入内存的程序不执行时,
系统可以收回该程序所占据的内存空间。再者,用户程序
装入内存后的位置,在运行期间可根据系统需要而发生改
变。止匕外,用户程序在运行期间也可动态地申请内存空间
以满足程序需求。动态存储分配通常可采用覆盖与交换技
术实现。
•由此可见,动态存储分配方式在内存空间的分配和释放上,
表现得十分灵活,现代的操作系统常采用这种存储分配方
畀。
地址重定位(AddressRelocation)
•5.地址重定位(AddressRelocation)
•在一般情况下,用户的一个程序在装入时所分配的存储空
间和它的地址空间是不一致的,因此,用户程序在CPU上
执行时,其所要访问的指令和数据的物理地址和地址空间
中的相对地址是不同的,如图3.3b&c所示。显然,如果用
户程序在装入或执行时,不对有关地址进行修改,则将会
导致错误的结果,这种由于用户程序的装入而引起的地址
空间中的相对地址转化为存储空间中的绝对地址的地址变
换过程,称为地址重定位,也称地址映射或地址变换。
静态重定位
(1)静态重定位
0
01000
I00Movri.(50()]1100Movri,[1500]
50012345150012345
5991600
(a)程序地址空间
256K-I
(b)内存空间
动态重定位
(2)动态重定位
(b)存储空间
内存共享及保护
•6.内存共享及保护
•在多道程序设计的环境下,系统中有系统程序和多个用户
程序同时存在,用户程序间可以共享内存中的信息,但要
保证用户程序不破坏系统程序,用户程序之间不相互干扰,
这就是存储保护所要解决的问题。
•存储保护的目的有两个:
■保护系统程序区不被用户侵犯(有意或无意的)。如果一
个菜鸟级的程序员,他的程序可以改变操作系统所在的内
存区域内容,那这个系统还有谁敢用?
•不允许用户程序读写不属于自己内存空间的数据。正迎合
了宋代陈元靓《事林广记•警世格言》的那句名言:“自
家扫取门前雪,莫管他人屋上霜。”
上下界寄存器保护
•(1)界限保护
•上下界寄存器保护
基址、限长寄存器保护
•基址、限长寄存器保护
•【例】有一程序装入内存的首地址是500,末地址是1500,
访问内存的逻辑地址是500、345、1200o
•基址寄存器:500
•限长寄存器:1000
•判别式:逻辑地址邹艮长寄存器
•①500W1000N
•②345W1000N
■③1200W1000X
•这里只判断地址的合法性,如果要计算物理地址,还需要
加上基址寄存器的值。
访问方式保护
(2)访问方式保护
(3)内存共享
廿正确访问
LOAD12500出错,开关字■键不匹配
单道系统的内存管理
•3.2单道系统的内存管理
OxFITIT
操作系统设备驱动
用户程序
用户程序
用户程序
操作系统操作系统
0x000()0
⑻操作系统3用低地址区(b)操作系统J用高地址区⑹操作系统分别3用两端
单道系统的内存管理
固定分区管理
•3.3多道系统的分区管理
•3.3.1固定分区管理
•固定分区是指系统在初始化时,将内存空间划分为若干个
固定大小的区域1.分区原则
•(1)分区大小可以不相等
•分区大小相等:适合于多个相同程序的并发执行,如图3-
10a所示;
•分区大小不等:多个小分区、适量的中等分区、少量的大
分区。根据程序的大小,分配当前空闲的、适当大小的分
区。如图3-10b所示。
•(2)分区个数不变,大小不变
固定分区管理
(a)人小相同(b)大小不同
的固定分区的固定分区
固定分区管理
0
操作系统
20K\
进程A(6K)
区号分配长废起始地址状态
第一分M
!8K20KU分配
28K
a232K28K已分配k
进程B(25K)
364K60K已分配第二分区
4132KI24K未分配/
60K
进程B(36K)
(a)分IX状态表第三分区
124K(
第四分区
256K
(b)内存状态
分区的分配与回收
・3.分区的分配与回收
(a)多作业队列(b)单作业队列
固定分区分配算法
分区原则
3.3.2动态分区管理
•1,分区原则
采
态
在
初启
系
方式
系统
时
除
操作
统中
用动
分
分
区
了
配
,
,
一
存
空闲
分
常
以
只
个
内
部
配程
存
外
后
随
区
分
在
驻
分
,
,
。
中
区
的
配
划
调
选
该
依
分
的大
给
分
并
且
进
银
福
章
尸
,
进
而
据
定
示
内
求
程
根
用
对
所
图
,3-14O
•(D根据作业的大小动态地划分分区,使分区的大小正
好等于作业大小;
•(2)各分区的大小是不定的;
•(3)内存中分区的数目也是不定的。
•显然,这种分配方式不会产生“内碎片”现象,从而大大
理画工内存的利用李,但随着频繁的调入调出,系统会产
生大量的"外碎片"。
动态分区存储分配
IM
140k
20k
0
分区说明表
•2.分区管理
•(1)分区说明表
始址长度占用林忐始址长度占用林志
20K80KPd160K10K仃效
100K60KPc270K730K行效
170K100KPc
(a)已分配区收(b)未分配区及
带有表格信息的分区格式
(2)空闲区链表
状态位分区大小(N+2)前向指针
大小为N的已分配区或空闲区
状态位分区大小(N+2)后向指针
空闲区双向链表
160k270k
位图
(3)位图
H293X
分区的分配与回收
•3.分区的分配与回收
•通常,分区的回收有四种情况:
•(1)释放区与上下两个空闲区相邻
•在这种情况下,将三个空闲区合并为一个空闲区。新空闲
区起始地址为上空闲区的起始地址,大小为三个空闲区之
和。同时,修改可用分区表或空闲区链表或位图中的表项
目。
•(2)释放区与上空闲区相邻
•在这种情况下,将释放区与上空闲区合并为一个空闲区,
其起始地址为上空闲区的起始地址,大小为释放区和上空
闲区之和。同时,修改可用分区表或空闲区链表或位图中
的表项目。
分区的分配与回收
•(3)释放区与下空闲区相邻
•在这种情况下,将释放区与下空闲区合并为一个空闲区,
其起始地址为释放区的起始地址,大小为释放区和下空闲
区之和。同时,修改可用分区表或空闲区链表或位图中的
表项目。
(4)释放区与上下两个空闲区都不相邻
查找算法
•3.3.3查找算法
-不论是空闲区链表管理还是空闲区表格管理,链和表
中的空闲区都可按一定规则排列,例如,按空闲区从
大到小排或从小到大排,以方便空闲区的查找和回收。
常用的动态分区管理的空闲区查找算法有五种:
1.最佳匹配(bestfit)
2.首次匹配(firstfit)
3.下次匹配(nextfit)
4.最坏匹配(worstfit)
5,快速匹配(quickfit)
地址转换与存储保护
•3.3.4可重定位分区分配
•1,地址转换与存储保护
内仃
移动技术
-2.移动技术
操作系统
进程5-8OK
进程"KB
进程3-24K
进程2-20K
进程4-50K
进程5-80K
(a)初始状态(b)移动之后⑹分配进程5之后
可重定位分区分配的优缺点
•3.可重定位分区分配的优缺点
,(1)优点
•可以消除碎片,能够分配更多的分区,有助于多道程序设
计,提高内存的利用率。
•(2)缺点
•内存移动花费了大量CPU时间;当进程大于整个空闲区时,
仍要浪费一定的内存;进程的存储区内可能放有从未使用
的信息;进程之间无法对信息共享。
分区管理的优缺点
分区管理的优缺点
•1.主要优点
•(1)实现了多道程序共享内存;
•(2)实现分区管理的系统设计相对简单,不需要更多的
系统软硬件开销;
•(3)实现存储保护的手段也比较简单。
分区管理的优缺点
•2.王要缺点
•(D内存利用不够充分。系统中总有一部分内存空间得
不到利用,这部分被浪费的空间叫碎片。固定分区产生内
碎片,可变分区产生外碎片。
•(2)没有实现内存的扩充问题。当进程的地址空间大于
内存空间时,进程无法运行。也即进程的地址空间受实际
内存空间的限制。
•(3)必须连续存放。进程在内存中总是分配一块连续的
存储空间,无法很好地利用碎片,虽然可以通过移动技术
来整理内存空间,但代价较高。
•(4)必须一次性将作业全部调入内存,若内存没有足够
的空间,则等待。
页式管理
•3.4页式管理
•3.4.1页式管理的实现原理
存
则
原
的
定
可
按
时
始
化
初
在
术
照
统
作
操-11T
,Z•
物
框W
页
为
大
相
的
块
等1
或
是rm,
」
野
调M
小
总e)
efra豺
吃
肥ag
用
理
同
wE二
嬉
系IO
地W1H
空
囹
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 论文毕业答辩开题报告模板105
- 12 坐井观天 教学设计-2024-2025学年统编版语文二年级上册
- 六年级上册信息技术人教版第3课 画正多边形(教案)
- 2024-2025学年上海市卢湾高中高三一轮复习周测(一)化学试题试卷含解析
- 沈阳劳动合同模板
- 辽宁省辽阳市(2024年-2025年小学四年级语文)人教版小升初真题((上下)学期)试卷及答案
- 《技巧-前后团身滚动》(教案)-2021-2022学年体育与健康(水平一)一年级上册-人教版
- Unit 6 My clothes,My style Period 7 Assessment 教学设计2024-2025学年牛津译林版英语七年级上册
- 农村集体产权买卖合同模板
- 硅胶材料购销合同模板
- 2025届福建省厦门市双十中学数学八年级第一学期期末统考试题含解析
- 2024从洞见到生意:阿里健康特色人群消费趋势报告-阿里健康x一财商学院
- 科室VTE工作总结课件
- 【大单元整体教学】三上第三单元 4 精读引领课《在牛肚子里旅行》+公开课一等奖创新教案
- 4《平平安安回家来》(教学设计)2024-2025学年统编版(2024)道德与法治一年级上册
- 基于人工智能的智能制造升级改造方案
- 网球基础知识题库100道及答案
- Unit6 Keep our city clean(教学设计)-2024-2025学年译林版(三起)英语六年级上册
- 河北省房屋建筑和市政基础设施工程施工总承包招标文件
- 2024年全国职业院校技能大赛中职组(婴幼儿保育赛项)省赛考试题库(含答案)
- 2024-2030年中国协作机器人市场需求前景预判及竞争格局预测研究报告
评论
0/150
提交评论