操作系统原理与实例分析ppt课件

  • 格式:ppt
  • 大小:309.50 KB
  • 文档页数:16

下载文档原格式

  / 16
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
模块mm1 ?执行
else
模块mm2 ?执行

(a) 目标模块
(b) 装入模块
图3.11 目标模块链接成装入模块
编辑课件
11
动态链接
• 指,不用事先链接所有目标模块形成一 个完备的装入模块,而是生成一个含有 未被链接的外部模块引用的装入模块, 这些外部模块可以在装入时链接,或运 行时链接。
编辑课件
• 必须登记一个进程分到的所有分区的位 置、大小、使用情况(如是否共享等) 等信息。
• 常用的非连续存储技术:分页存储技术、 分段存储技术及其结合。
编辑课件
18
OS
基地址

进程P

OS

进程的组成 基地址 长度 …
P(1)
2604 200 …
进程P(2)
P(2)
1240 300 …



……
进程P(1)
• 静态链接生成的装入模块可以采用重定位装入 或运行时动态装入方式。
• 静态链接需要花费大量的处理机时间。而其中 的很多模块将不会运行,浪费存储空间和处理 机时间。
编辑课件
10
模块1 …
if x > 1 then
call mm1 else call mm2

模块mm1
模块mm2
链接
模块1 …
if x > 1 then
编辑课件
3
绝对装入
• 程序运行之前,按照程序的逻辑地址, 将程序和数据装入内存指定的地方。
• 实现简单,无须进行逻辑地址到物理地 址的变换。
编辑课件
4
绝对装入
缺点:
• 程序每次必须装入同一内存区;
• 程序员必须事先了解内存的使用情况,根据内 存情况确定程序的逻辑地址;
• 程序的修改(增加或删除指令)将引起整个程 序中指令地址的变动;
12
装入时动态链接
• 指,当系统装入含有未链接的外部模块引用的 装入模块时,每当遇到一个外部模块引用,则 查找相应的目标模块。将其装入内存,并将模 块内的指令地址转换为相对于整个装入模块起 始地址的相对地址。
• 优点:有利于目标模块的更新与升级;有利于 代码共享;有利于扩充软件的功能,可以将扩 充部分作为动态链接模块。
P(n)
6500 300 …

进程P(n) …
(a)连续存储
(b)非连续存储
图3.12 内存的连续存储与非连续存储
编辑课件
19
连续存储管理
• 最简单的存储管理技术
• 要求系统配置专门的硬件实现快速地址 转换和存储保护。
• 处理机硬件 基址寄存器(Base register)
界限寄存器(Bounds register)
• 静态重定位技术:地址映射在程序装入 时进行,以后不再更改程序地址。
编辑课件
6
重定位装入
• 有利于程序代码和数据的共享。因为装入程序 时,可以将其中的某些存储引用的逻辑地址映 射为内存中已有的共享区的物理地址。
• 但是,静态重定位不允许程序在内存中移动。 这不便于进程交换和紧凑拼接操作,也很难实 现多道程序环境下,多个程序同时装入内存的 要求。
• 但是,可能链接一些不会执行的模块,浪费存 储空间和处理机时间。
编辑课件
13
运行时动态链接
• 指,外部模块引用直至程序执行时才装入内存, 并链接到装入模块中,进行地址转换。
• 可以解决静态链接和装入时动态链接都面临的 存储空间和处理机时间浪费问题,不需要执行 的模块就不会装入内存。
• 广泛用于事务处理系统,如航空售票系统、银 行管理系统等。
编辑课件
16
? 程序在内存中如何组织
• 连续存储 : 需要内存中的一块连续的、
足够大的分区。
• 如果内存中没有足够大的连续空闲分区,
但存在总量足够的独立小分区,即外零 头。系统要么拒绝分配空间,要么采用 紧凑技术拼接外零头。
编辑课件
17
• 非连续存储:允许进程的程序和数据分
别装在内存的不同分区中。
• 程序中的所有存储引用,例如函数调用或过程 调用等,在装入之前都必须转换为物理地址, 这不利于存储共享。
编辑课件
5
重定位装入
• 允许将程序装入与逻辑地址不同的物理 内存空间。即程序可以装入到内存的任 何位置,其逻辑地址与装入内存后的物 理地址无直接关系。
• 但是,必须进行地Baidu Nhomakorabea映射,将逻辑地址 转换为物理地址。
• 故,重定位装入方式只适合于单道程序环境。
编辑课件
7
运行时动态装入
• 指,程序的地址转换不是在装入时进行,而是 在程序运行时动态进行。
• 运行时动态装入需要硬件支持,即重定位寄存 器,用于保存程序在内存中的起始地址。
• 程序被执行时,通过重定位寄存器内的起始物 理地址和指令或数据的逻辑地址计算其物理地 址。
• 操作系统自身的一些特殊处理例程,如错误处 理例程,也无需事先全部装入内存。
编辑课件
14
3.4 简单存储管理技术
编辑课件
15
简单存储
• 相对于虚拟存储而言,指为了实现简单,执行 之前,操作系统必须将待执行的程序全部装入 内存。
• 然而,现代操作系统大都支持虚拟存储功能, 允许进程装入部分程序即可开始执行,其余部 分保留在外存。当执行所需的部分不在内存时, 中断进程执行,使之阻塞等待,直到相应部分 装入内存。
3.3 程序装入技术
编辑课件
1
可执行程序的生成步骤
编辑 源程序
编译
目标模块
目标模块 链接
库函数
装入模块 执行
内存
编辑课件
2
图3.10 高级程序处理过程
可执行程序的装入
• ?如何装入待执行的程序及其所需的数据
• ? 何时将程序的逻辑地址转换为物理地址
• 3种装入方式:绝对装入、重定位装入和运行 时动态装入。
• 运行时动态装入有利于多道程序环境下,进程 的换进/换出及实现紧凑技术。
编辑课件
8
可执行程序的链接形成
• ? 目标模块如何链接成装入模块呢
• 静态链接
• 动态链接:装入时动态链接和运行时动 态链接
编辑课件
9
静态链接
• 指,程序被装入内存之前,必须完全链接成一 个装入模块,将其中的存储引用全部转换为相 对地址跳转语句。并将多个目标模块链接成为 一个模块,使装入模块中的每一条指令具有相 对于整个模块的第一条语句的逻辑地址。
编辑课件
20
连续存储管理
• 基址寄存器:存放当前执行进程所在分区的物
理存储单元的起始地址。
• 界限寄存器:存放当前执行进程所在分区最后
一个物理存储单元的地址,限定进程的执行范 围,保护其他进程不被非法访问。
• 基址寄存器和界限寄存器被多个进程共享,只 有当前执行进程才使用它们。
编辑课件
21
• 装入时,进程分区的基地址值和分区的最后一 个物理存储单元的地址值,分别填入该进程