- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
内存管理-第七章
内存管理的方法 HOLE 内核放在初始空间 用户进程在高的地方 这种策略地址管理策略也是用Base和Limit寄存器 HOLE 思考,一个新进程来的时候,放入哪个空间? P 实际中,哪个算法用的最多呢? 首次适应。 现在的操作系统里,顺序存储很少使用。 外部碎片:进程与进程之间的小空间(分配的基本单位是字节) 内部碎片:如果内存分配的基本单位不是字节而是固定大小的。 页式内存管理 页式内存管理是产生内部碎片的罪魁祸首。 特点:物理空间不连续的。 逻辑空间也不连续。 好处: 把物理内存划分成固定大小的页框。 页面大小为2的整数次幂(512byte~16M) 而逻辑内存也被划分为固定的逻辑页面。 逻辑页面要和物理页面保持一致。 地址翻译机制 二进制的位数是m,页面的大小为2的n次方。 一共有多少个页面? 例:111011 假定n为2。 111011为59,页大小为4 59除4,整数部分为14,页号为14,余数为3 1110 11 二进制把数学问题转换成工程问题。 例 页面大小现在一般是4K或8K Solaris支持8K和4M 空闲的页面是怎么来管理的。 页表在内存中存在 页表基址寄存器 页表长度寄存器 TLB(可以快速查表):把当前最热的数据放里边。 查找页表时是并行有哪些信誉好的足球投注网站。(电路) 假定一次内存访问时间是一个时间单位。 复习: 内存保护 1、对内存的只读,只写等权限的保护 2、有效无效位 共享内存 避免同样的东西在内存中出现多个重复。 Fork里有一项重要的技术:写时复制。 页表结构 页表可能会很大: 若有一个 32 位的CPU: 页有有:4k page = 2^32/2^12=1M 解决的办法: 多级页表 反置页表 两级页表结构 例 32位的计算机,4K的物理页面。 4K物理页面的页内偏移为12位,剩下20位属于页面号。 页面号被分成10位的页号和10位的页面偏移 一个内层页表1K个,每个页表是4K可以管理4M的空间。 64位OS 并不是位数越高越好。 64位一般采取哈希表 * 在系统中维护一个哈希表,一个页面号,一个偏移地址。 对于日常使用,最好用32位的系统,要不然系统级的开销较大。 在现在的64位系统里用的是三级页表。 * 系统只有一个大表(页表) Pid和页号。 i是物理页面。 有哪些信誉好的足球投注网站比较复杂。 可以用TLB 内存管理方式需要CPU支持。 * CS代码段 DS数据段。 16位的时候,段式处于垄断地位。 * 现在的OS里面常用的是段页式内存管理 叶孤城的姑娘,嫁给段正淳的儿子。然后叶孤城的姑娘改名叫段页式。 * intelCPU * 内存管理 冯诺伊曼体系结构? 信息隐藏 寄存器和内存的区别? Cache和寄存器的存储问题都属于内存的一种镜像。 Base Limit寄存器 此方法存在哪些问题? nop 内存管理除了内存保护,进程在内存的布局之外还有其它的事情要去处理 指令和数据在内存空间的绑定 1,编译时绑定:boot,嵌入式 2,执行时的处理:可在内存中放多个进程,而且当这个进程在内存的时候还可以挪动 需要基址和上限寄存器。 重要概念 虚拟地址(逻辑地址,偏移地址): CPU发出的地址 物理地址 物理地址是内存中真真正正可以看到的地址 在编译时地址绑定的方法中物理地址和逻辑地址是一样的 但在执行时绑定的方法中是不一样的 逻辑地址和物理地址一一对应。 7C00是物理地址也是逻辑地址(在编译时绑定) 但在执行时绑定的方法中,逻辑地址和物理地址是不一样的。 MMU:内存管理单元(硬件) 作用:把逻辑地址映射到物理地址 最简单的地址翻译的过程。 重定位寄存器:地址转换部件,现在CPU里都有。 程序发出的逻辑地址是从0开始的 最简单的地址翻译的过程。 用户空间的逻辑地址是从0开始的 逻辑+基本地址=物理地址 如何提高内存利用率? 动态加载(Dynamic loading) 动态链接库(Dynamic link library) 问: 一个程序从运行到退出是否会把所有程序都执行一遍? 动态加载为了解决只加载现在用的部分,不加载不用的部分这个问题。 局部性原理 节约内存方法之一 运态链接库 它方便的地方在于自动更新。更新时候只更新DLL STUB(存根) 节约内存方法之二 交换 交换策略给我们的印象是,内存空间好像扩展了很多。 从用户角度看,同一时间,内存可存放的进程好像变多了 CPU要处理的数据必须在内存中才能执行。 寄存器的访问只需一个时钟周期,而内存的访问需要多个CPU时钟周期。因此cache被引入了。 * 我们所讲的呢,是操作系统的主存。 * 带来两个问题: 1,这些进程在内存中怎么放? 内存有限,OS要占
您可能关注的文档
最近下载
- 2025年中级经济师《运输经济专业知识与实务》全真模拟卷.pdf VIP
- 人教版(25秋新教材)八年级上册英语Unit 3《Same or Different》全单元教学课件.pptx
- 消化道出血的急救与护理课件.pptx VIP
- 第15讲 椭圆的共轭直径(解析几何)(解析版)》.pdf VIP
- 临床工作中科研与创新思维的建立.ppt VIP
- 酒店治安管理制度及应急预案.docx VIP
- 中国民营经济发展报告(上下册).doc VIP
- 语文人教版五年级下册草船借箭的教学设计.doc VIP
- 体育与健康《田径--投掷》大单元教学计划(18课时).pptx VIP
- 抗震加固工程施工方案.pdf VIP
文档评论(0)