3.3-3.程序装入技术.pptVIP

  • 18
  • 0
  • 约2.71千字
  • 约 93页
  • 2018-10-13 发布于江苏
  • 举报
3.3-3.程序装入技术

3.3 程序装入技术 ;可执行程序的生成步骤;可执行程序的装入 ;绝对装入;绝对装入(续);重定位装入;重定位装入(续);运行时动态装入;可执行程序的链接形成 ;静态链接;链接;动态链接;装入时动态链接;运行时动态链接;3.4 简单内存管理技术;简单内存;? 程序在内存中如何组织;;图3.12 内存的连续内存与非连续内存;连续内存管理 ;连续内存管理(续) ;连续内存管理(续);地址映射与内存保护; 程序部分; 简单分页内存管理 ;基本原理(非连续) ;分区:进程的逻辑地址空间是连续的、一维的、线性地址,进程的每一条指令和数据的地址相对于第一条语句的地址而定。 分页:进程被分割成许多页面。每个页面内的指令和数据是连续的,它们的地址相对于其所属页的第一条语句的地址,称为页内偏移量。 逻辑地址被分为两部分:页号和页内偏移量 ; 当一个进程被装入物理内存时,系统将为该进程的每个页面分配一个独立的页框。 同一个进程的多个页面不必存放在连续的多个页框中。;例如;图3.15 进程装入到离散的页框中;数据结构:页表;页号;数据结构:页框表;地址变换;页表寄存器;页号;分页的逻辑地址转换成物理地址;例1. 已知某分页系统,主存容量为64K,页面大小为1K,对一个4页大的作业,其0,1,2,3页分别被分配到主存的2,4,6,7块中。请将十进制的逻辑地址1023、2500、3500、4500转换成物理地址。 ;解:;逻辑地址1023:;逻辑地址3500:; 问题:现代的大多数计算机系统,都支持非常大的逻辑地址空间(232~264)。在这样的环境下,页表就变得非常大,要占用相当大的内存空间。例如,对于一个具有32位逻辑地址空间的分页系统,规定页面大小为4KB即212B,则在每个进程页表中的页表项可达1兆个之多。如果每个页表项占用一个字节,则每个进程仅仅其页表就要占用1MB的内存空间,而且还要求是连续的。;解决方案: 可以采用这样两个方法来解决这一问题: ① 采用离散分配方式来解决难以找到一块连续的大内存空间的问题; ② 只将当前需要的部分页表项调入内存, 其余的页表项仍驻留在磁盘上,需要时再调入。;大页表 ;逻辑地址结构可描述如下: ;图 4-4 两级页表结构 ; 具有两级页表的地址变换机构 ;多级页表;大页表;反置页表 (Inverted Page Table);反置页表(续);反置页表:地址变换;图3.20 利用反置页表进行地址变换 ;快表 ;快表的工作原理;分页系统地址转换;图3.21 具有快表的分页系统地址变换过程;例2. 对于一个将页表存放在内存中的分页系统: (1)如果访问内存需要0.2μs,有效访问时间为多少? (2)如果加一快表,且假定在快表中找到页表项的几率高达90%,则有效访问时间又是多少(假定查快表需花的时间为0)?;解:(1)需两次访问内存,故有效访问时间为: 2*0.2μs =0.4μs (2)若能从快表中直接找到相应的页表项,则可立即形成物理地址去内存访问相应的数据;否则,仍需两次访问内存。有效访问时间为: 0.9*0.2+(1-0.9)*0.2*2=0.22μs;页面与页框大小;页面与页框大小;对分页内存管理的评价;简单分段内存管理 ;基本原理;简单分段内存管理(续);分段系统的基本数据结构 ;图3.23 分段内存示例;分段系统:地址变换和内存保护 ;段表寄存器;图3.24 分段系统的地址变换过程;分段的逻辑地址转换成物理地址;;解: ⑴ 由表1知,段号为0的段的内存起始地址为210,段长为500。由表2知,逻辑地址的段内位移为430。因为430500,所以该逻辑地址是合法的。其对应的物理地址为: 210+430=640 ⑵ 由表1知,段号为1的段的内存起始地址为2350,段长为20。由表2知,逻辑地址的段内位移为10。因为1020,所以该逻辑地址是合法的。其对应的物理地址为: 2350+10=2360 ⑶ 由表1知,段号为2的段的内存起始地址为100,段长为90。由表2知,逻辑地址的段内位移为500。因为50090即逻辑地址的段内位移500已超过了段长90,所以该逻辑地址是非法的。;分段系统的快表;对分段系统的评价 ;分页与分段技术的比较 ;简单段页式内存管理 ;逻辑地址;数据结构;段表寄存器;地址变换;图3.27 段页式系统的地址变换过程;思考题:;解:(1)该系统拥有逻辑空间32页,故逻辑地址中页号必须用5位来描述;而每页为2K,因此,页内地址必须用11位来描述,这样可得到它的逻辑地址格式如下: 15

文档评论(0)

1亿VIP精品文档

相关文档