程序装入内存技术.docVIP

  • 12
  • 0
  • 约2.2千字
  • 约 9页
  • 2021-03-05 发布于广东
  • 举报
3种装入模式: 1o绝对装入:逻辑地址=绝对地址。 2o重定位装入:静态重定位技术,地址在程序装入时计算,装入后物理地址不再 4改变。 3。运行时动态装入:重定位寄存器 6 7可执行程序的链接形成: 8K静态链接:整个的装入模块具有一个线性的逻辑地址,可以采用2、3装入方式。 9 2.动态链接: 10装入时动态链接: 11未链接外部模块,而在装入时杳找、定位。 12优点:有利于目标模块的更新与升级,有利于代码共亭;有利于扩充软件的功 13能,可以将扩充部分作为动态链接模块。 14缺点:可能链接一些不会执行的模块。 15运行时动态链接: 16运行时链接外部模块。 17 18================== 19简单存储管理技术: 20 21相对虚拟储存而言的,将待执行的程序全部装入内存。 22 23程序在内存中如何组织? 24 K连续储存,需要紧凑技术。 25基址寄存器:存放当前执行进程的起始地址。貝他放在PCB中。 26界限寄存器:限定进程的执行范围。 27地址转换和越界检查。 28 2。非连续存储:“段”“页”存储技术。 29分页存储的基木原理: U固定分区 2o物理内存一〉页框。程序一>页血。 [页号,页内偏移量] 33数据结构:页表,页框表 34 35地址变换: 1 o逻辑地址一> [页号,页内偏移量]。 2,页号检索页表,杳找页面对皿的页框号。 3。根据页框号和页内偏移量计算物理地址 39 40反置页表:从内存的角度建立页表。 41多级页表 可执行程序的生成步骤 I编辑 源程序 目标模块目标模块 库函数 目标模块 / 链接 装入模块 内存 可执行程序的装入 ??如何装入待执行的程序及其所需的数据 ??何时将程序的逻辑地址转换为物理地址 ? 3 ? 3种装入方式: 时动态装入。 绝对装入、重定位装入和运行 绝对装入 ?程序运行之前,按照程序的逻辑地址, 将程序和数据装入内存指定的地方。 ?实现简单,无须进行逻辑地址到物理地 址的变换。 绝对装入 缺点: ?程序每次必须装入同一内存区; ?程序员必须事先了解内存的使用情况,根据内 存情况确定程序的逻辑地址; ?程序的修改(增加或删除指令)将引起整个程 浄审牆呑应加爲丈动; ?程序中的所有存储引用,例如函数调用或过程 调用等,在装入之前都必须转换为物理地址, 这不利于存储共享。 重定位装入E3 重定位装入 E3 ?允许将程序装入与逻辑地址不同的物理 内存空间。即程序可以装入到内存的任 何位置,其逻辑地址与装入内存后的物 理地址无直接关系。 ?但是,必须进行地址映射,将逻辑地址 转换另劎鏈地址。 ?静态重定位技术:地址映射在程序装入 时进行,以后不再更改程序地址。 重定位装入 ?有利于程序代码和数据的共享。因为装入程序 时,可以将其中的某些存储引用的逻辑地址映 剧为田存申已看的龚享区的物理地址。 ?但是,静态重定位不允许程序在内存中移动。 这不便于进程交换和紧凑拼接操作,也很难实 现多道程序环境下,多个程序同时装入内存的 要求。 ?故,重定位装入方式只适合于单道程序环境。 运行时动态装入 ?指,程序的地址转换不是在装入时进行,而是 在程序运行时动态进行。 ?运行时动态装入需要硬件支持,即重定位寄存 器,用于保存程序在内存中的起始地址。 ?程序被执行时,通过重定位寄存器内的起始物 理地址和指令或数据的逻辑地址计算其物理地 址。 ?运行时动态装入有利于多道程序环境下,进程 的换进/换出及实现紧凑技术。 可执行程序的链接形成 -?目标模块如何链接成装入模块呢 ?静态链接 ?动态链接:装入时动态链接和运行时动 态链接 静态链接 ?指,程序被装入内存之前,必须完全链接成一 个装入模块,将其中的存储引用全部转换为相 对地址跳转语句。并将多个目标模块链接成为 一个模块,使装入模块中的每一条指令具有相 对于整个模块的第一条语句的逻辑地址。 ?静态链接生成的装入模块可以采用重定位装入 或运行时动态装入方式。 ?静态链接需要花费大量的处理机时间。而其中 的很多模块将不会运行,浪费存储空间和处理 机时间。 ?执行?执行(b)装入模块(a) U ?执行 ?执行 (b)装入模块 (a) U标模块 图3.11 U标模块链接成装入模块 动态链接 指,不用事先链接所有目标模块形成一 个完备的装入模块,而是生成一个含有 未被链接的外部模块引用的装入模块, 这些外部模块可以在装入时链接,或运 行时琏接。 装入时动态链接 ?指,当系统装入含有未链接的外部模块引用的 装入模块时,每当遇到一个外部模块引用,则 查找相应的目标模块。将其装入内存,并将模 块内的指令地址转换为相对于整个装入模块起 始地址始廂对地址。 ?优点:有利于目标模块的更新与升级;有利于 代码共享;有利于扩充软件的功能,可以将扩 充部分作为

文档评论(0)

1亿VIP精品文档

相关文档