- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
 - 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
 - 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
 
                        查看更多
                        
                    
                 为什么要引入逻辑地址?  物理地址的程序只有装入程序所规定的内存空间上才能正确执行,如果程序所规定内存空间不空闲或不存在,程序都无法执行; 使用物理地址编程意味着由程序员分配内存空间,这在多道程序系统中,势必造成程序所占内存空间的相互冲突; 在多道程序系统中,程序员门无法事先协商每个程序所应占的内存空间的位置,系统也无法保证程序执行时,它所需的内存空间都空闲。 基于上述原因,必须引入一个统一的、在编程时使用的地址,它能够在程序执行时根据所分配的内存空间将其转换为对应的物理地址,这个地址就是逻辑地址。 逻辑地址的引入为内存的共享、保护和扩充提供方便。  逻辑地址结构 十进制 二进制 物理地址                   A’=P’ *L+ W’             P’===》物理块号            W’===》块内偏移             L ===》块大小 特点:         段与段之间的地址不连续,而段内地址是连续的。地址是二维的。     用户程序中可用符号形式(指出段名和入口)调用某段的功能,程序在编译或汇编时给每个段再定义一个段号(从0开始编号)。  4.3.3 两级和多级页表 1.两级页表 页号 块号 0 1 n m … … … … 页号 块号 0 5 n m … … 0    1 1    3 2    4 n    m … … 外部页表 进程 内存 (5#)?(1#) 0 1 2 3 4 5 6 7 8 9 m …… 1. 两级页表(Two-Level Page Table)  逻辑地址结构可描述如下:  图 4-14 两级页表结构  3.两级页表地址变换机构 访问内存次数3次  1  2 3 查找到5# 查找到1# 【练习题】  在分页存储管理系统中,逻辑地址的长度为16位,页面大小为4096字节,现有一逻辑地址为2F6AH,且第0、1、2页依次存放在物理块5、10、11中,问相应的物理地址是多少?  4.4 基本分段存储管理方式  4.4.1 分段存储管理方式的引入          引入分段存储管理方式, 主要是为了满足用户和程序员的下述一系列需要:         1) 方便编程:使用段号和段内地址。         2) 信息共享:段是信息的逻辑单位。         3) 信息保护:分段管理能更有效和方便地实现对信息的保护。          4) 动态增长:当数据段在过程中增长时,分段管理方式能适应这种情况。          5) 动态链接:需动态链接的对象以段为单位。   程序的分段结构          data   segment         ; 定义数据段        … data   ends ; extra  segment         ; 定义附加段        … extra  ends ; code   segment         ; 定义代码段        assume cs:code, ds:data, es:extra start:         mov   ax, data        mov   ds, ax    ; 段地址 ? 段寄存器        … code   ends        end   start 4.4.1 分段存储管理方式的引入  ┇ call[X]|E 调用X段的入口E ┇ Call[Y]|F 调用Y段的入口F ┇   Load 1,[A]|G 调用数组段A[G]  主程序段MAIN ┇ E:┅┅┅┅┅┅ ┇  子程序段X ┇ F:┅┅┅┅┅┅ ┇  子程序段Y ┇ G:┅┅┅┅┅┅ ┇  数组段A ┇ ┇ ┇  工作区段 分段存储管理方式的引入      段号:作业的地址空间被分成若干个段,如主程序段M、子程序段X、数据段D、堆栈段S等。最多可64K个段,每段64KB。其地址结构: 0 15 16 31 段内地址 段号     段表:每个段是个连续空间,类似于分区,为了对应段与内存实际地址,需建立段表。段表用于实现从逻辑段到物理内存区的映射。 4.4.2  分段系统的基本原理  利用段表实现地址映射  分段系统的地址变换过程  3. 地址变换机构  例:FF 指针 10k 60k 90k 20k 有四块空白区(从低地址?高地址),来了一个作业需分配19k内存。 在高地址空白区中保持较大空白区(每次从10k开始分配寻找)。 × × 41k ? 将空白区按大小排成队列,寻找时总是以最小的空白区开始,找到第一个合适的分区 指针 10k 20k 60k 90k 最佳适应算法(Best fit: BF) 例:来一个19k的作业 × × 1 k (iv) 最坏适应算法(Worst fit: WF
                
原创力文档
                        

文档评论(0)