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

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

页表寄存器
• 页表寄存器:实现快速地址映射,存储执行进 程的页表起始地址。
• 页表寄存器设置在处理机硬件中。
• 当进程被创建时,其页表起始地址记载于进程 PCB中。
• 当进程被调度执行时,页表的起始地址将从该 进程的PCB中取出,并填入页表寄存器中。
• 进行地址变换时,处理机从页表寄存器中查找 页表的地址。
编辑课件
31
页号 页框号 页号 页框号 页号 页框号 页号 页框号
0
0
0
-
0
7
0
4
1
1
1
-
1
8
1
5
2
2
2
-
2
9
2
6
3
3
进程P2页表
3
10
3
13
进程P1页表
4
11
4
14
5
12
进程P4页表
进程P3页表
图3.16 进程P1、P2、P3、P4的页表
编辑课件
32
数据结构:页框表
• 空闲页框表:登记系统中剩下的空闲页 框情况
13 14 15
图3.17 空闲页框表
编辑课件
33
地址变换
• 硬件机制,实现逻辑地址到物理地址的转换 • 分页系统中的地址变换过程如下: (1) 根据逻辑地址,计算出页号和页内偏移量; (2) 用页号检索页表,查找指定页面对应的
页框号; (3) 根据页框号和页内偏移量,计算出物理
地址。
编辑课件
34
0 P1.0
P1
1 2
P1.1 P1.2
3 P1.3
4
P2 5
6
7 P3.0
8 P3.1
P3
9 10
P3.2 P3.3
11 P3.4
12 P3.5
13
空闲 14
15
P1 空闲 P3 空闲
0 P1.0 1 P1.1 2 P1.2 3 P1.3 4 P4.0 5 P4.1 6 P4.2 7 P3.0 8 P3.1 9 P3.2 10 P3.3 11 P3.4 12 P3.5 13 P4.3 14 P4.4 15
编辑课件
16
? 程序在内存中如何组织
• 连续存储 : 需要内存中的一块连续的、
足够大的分区。
• 如果内存中没有足够大的连续空闲分区,
但存在总量足够的独立小分区,即外零 头。系统要么拒绝分配空间,要么采用 紧凑技术拼接外零头。
编辑课件
17
• 非连续存储:允许进程的程序和数据分
别装在内存的不同分区中。
• 操作系统自身的一些特殊处理例程,如错误处 理例程,也无需事先全部装入内存。
编辑课件
14
3.4 简单存储管理技术
编辑课件
15
简单存储
• 相对于虚拟存储而言,指为了实现简单,执行 之前,操作系统必须将待执行的程序全部装入 内存。
• 然而,现代操作系统大都支持虚拟存储功能, 允许进程装入部分程序即可开始执行,其余部 分保留在外存。当执行所需的部分不在内存时, 中断进程执行,使之阻塞等待,直到相应部分 装入内存。
• 故,重定位装入方式只适合于单道程序环境。
编辑课件
7
运行时动态装入
• 指,程序的地址转换不是在装入时进行,而是 在程序运行时动态进行。
• 运行时动态装入需要硬件支持,即重定位寄存 器,用于保存程序在内存中的起始地址。
• 程序被执行时,通过重定位寄存器内的起始物 理地址和指令或数据的逻辑地址计算其物理地 址。
• 对于某些机器,二级页表也可能非常大。可以 采用多级页表,对外层页表再进行分页,将各 个页面离散地存储到不相邻接的物理页框中
• 必须登记一个进程分到的所有分区的位 置、大小、使用情况(如是否共享等) 等信息。
• 常用的非连续存储技术:分页存储技术、 分段存储技术及其结合。
编辑课件
18
OS
基地址

进程P

OS

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



……
进程P(1)
• 地址越界检查
— 取界限寄存器中的值,与第一步计算的结果 进行比较。如果生成的物理地址超出了界限范 围,产生一个中断,报告地址越界。否则,继 续该指令的执行。
编辑课件
23
基址寄存器 界限寄存器
逻辑地址
内存
加法器
程序部分 比较器
物理地址 数据部分
越界中断
图3.13 连续存储管理的地址转换和越界检查
• 此时,进程P4请求分配5个页框大小的存储空 间,但内存只有3个空闲页框。于是,将暂时 不运行的P2交换出内存,如图3.15(b)所示。
• 然后,再将P4装入4、5、6、13、14号页框, 如图3.15(c)所示。
编辑课件
29
页框号 内存
页框号 内存
页框号 内存
0 P1.0 1 P1.1 2 P1.2 3 P1.3 4 P2.0 5 P2.1 6 P2.2 7 P3.0 8 P3.1 9 P3.2 10 P3.3 11 P3.4 12 P3.5 13 14 15
• 静态链接生成的装入模块可以采用重定位装入 或运行时动态装入方式。
• 静态链接需要花费大量的处理机时间。而其中 的很多模块将不会运行,浪费存储空间和处理 机时间。
编辑课件
10
模块1 …
if x > 1 then
call mm1 else call mm2

模块mm1
模块mm2
链接
模块1 …
if x > 1 then
3.3 程序装入技术
编辑课件
1
可执行程序的生成步骤
编辑 源程序
编译
目标模块
目标模块 链接
库函数
装入模块 执行
内存
编辑课件
2
图3.10 高级程序处理过程
可执行程序的装入
• ?如何装入待执行的程序及其所需的数据
• ? 何时将程序的逻辑地址转换为物理地址
• 3种装入方式:绝对装入、重定位装入和运行 时动态装入。
12
装入时动态链接
• 指,当系统装入含有未链接的外部模块引用的 装入模块时,每当遇到一个外部模块引用,则 查找相应的目标模块。将其装入内存,并将模 块内的指令地址转换为相对于整个装入模块起 始地址的相对地址。
• 优点:有利于目标模块的更新与升级;有利于 代码共享;有利于扩充软件的功能,可以将扩 充部分作为动态链接模块。
编辑课件
24
简单分页存储管理
• 连续存储:存在外零头,浪费存储空间。 “紧凑”需要系统额外开销。
• 非连续存储:允许将一个进程的程序和 数据离散存储在多个独立的分区中,消 除了外零头。
编辑课件
25
基本原理
• 分页存储管理技术是一种特殊的固定分 区方法。
• 系统事先将物理内存划分成许多尺寸相
等的页框 (Page Frame),并将进程分割 成许多大小相同的页面 (Page),页面与
P(n)
6500 300 …

进程P(n) …
(a)连续存储
(b)非连续存储
图3.12 内存的连续存储与非连续存储
编辑课件
19
连续存储管理
• 最简单的存储管理技术
• 要求系统配置专门的硬件实现快速地址 转换和存储保护。
• 处理机硬件 基址寄存器(Base register)
界限寄存器(Bounds register)
• 运行时动态装入有利于多道程序环境下,进程 的换进/换出及实现紧凑技术。
编辑课件
8
可执行程序的链接形成
• ? 目标模块如何链接成装入模块呢
• 静态链接
• 动态链接:装入时动态链接和运行时动 态链接
编辑课件
9
静态链接
• 指,程序被装入内存之前,必须完全链接成一 个装入模块,将其中的存储引用全部转换为相 对地址跳转语句。并将多个目标模块链接成为 一个模块,使装入模块中的每一条指令具有相 对于整个模块的第一条语句的逻辑地址。
编辑课件
37
大页表
• 若采用一级页表,则其内将包含1兆(220)个 页表项。若按字节寻址,一个页表项占4B,则 一级页表需要占用4MB(222)内存空间。
• 不可能将4MB的页表保存在一个连续区中。
• 那么,如何处理大页表的存储与检索呢?
编辑课件
38
二级页表
• 将一个大页表全部保存在内存中。
• 首先,将其分割,并离散地存储在内存的多个 页框中。
编辑课件
35
逻辑地址 页号 偏移量
物理地址 页框号 偏移量
页表寄存器 页表起始地址
偏 移

页表
页框
程序
+ 页框号 地址转换
图3.18 分页系统的地址变换过程
内存
编辑课件
36
大页表
• 大逻辑地址空间,页表非常大,需要占 用相当大的内存空间。
• 比如,32位逻辑地址空间,假设页面大 小为4KB(212),则4GB(232)的逻辑 地址空间将被划分成220个页面。
编辑课件
3
绝对装入
• 程序运行之前,按照程序的逻辑地址, 将程序和数据装入内存指定的地方。
• 实现简单,无须进行逻辑地址到物理地 址的变换。
编辑课件
4
绝对装入
缺点:
• 程序每次必须装入同一内存区;
• 程序员必须事先了解内存的使用情况,根据内 存情况确定程序的逻辑地址;
• 程序的修改(增加或删除指令)将引起整个程 序中指令地址的变动;
• 但是,可能链接一些不会执行的模块,浪费存 储空间和处理机时间。
编辑课件
13
运行时动态链接
• 指,外部模块引用直至程序执行时才装入内存, 并链接到装入模块中,进行地址转换。
• 可以解决静态链接和装入时动态链接都面临的 存储空间和处理机时间浪费问题,不需要执行 的模块就不会装入内存。
• 广泛用于事务处理系统,如航空售票系统、银 行管理系统等。
模块mm1 ?执行
else
模块mm2 ?执行

(a) 目标模块
(b) 装入模块
图3.11 目标模块链接成装入模块
编ຫໍສະໝຸດ Baidu课件
11
动态链接
• 指,不用事先链接所有目标模块形成一 个完备的装入模块,而是生成一个含有 未被链接的外部模块引用的装入模块, 这些外部模块可以在装入时链接,或运 行时链接。
编辑课件
页框大小相同。
编辑课件
26
• 分区:进程的逻辑地址空间是连续的、一维的、
线性地址,进程的每一条指令和数据的地址相 对于第一条语句的地址而定。
• 分页:进程被分割成许多页面。每个页面内的
指令和数据是连续的,它们的地址相对于其所
属页的第一条语句的地址,称为页内偏移量。
• 逻辑地址被分为两部分:页号和页内偏移量
• 静态重定位技术:地址映射在程序装入 时进行,以后不再更改程序地址。
编辑课件
6
重定位装入
• 有利于程序代码和数据的共享。因为装入程序 时,可以将其中的某些存储引用的逻辑地址映 射为内存中已有的共享区的物理地址。
• 但是,静态重定位不允许程序在内存中移动。 这不便于进程交换和紧凑拼接操作,也很难实 现多道程序环境下,多个程序同时装入内存的 要求。
PCB的相应字段中。
• 当进程被调度执行时,将PCB中对应的进程基 地址值写入基址寄存器中,并将进程获得的内
存分区最大地址值,填入界限寄存器中。
• 当进程被交换出/换入内存时,上述两个地址 值也会发生改变。
编辑课件
22
地址映射与存储保护
• 逻辑地址转换成物理地址
— 取基址寄存器中的值,加上逻辑地址值,生 成一个物理地址
• 程序中的所有存储引用,例如函数调用或过程 调用等,在装入之前都必须转换为物理地址, 这不利于存储共享。
编辑课件
5
重定位装入
• 允许将程序装入与逻辑地址不同的物理 内存空间。即程序可以装入到内存的任 何位置,其逻辑地址与装入内存后的物 理地址无直接关系。
• 但是,必须进行地址映射,将逻辑地址 转换为物理地址。
P1 P4
P3
P4 空闲
(a) 依次装入P1、P2、P3
(b) 换出P2
(c) 装入P4
编辑课件
图3.15 进程装入到离散的页框中
30
数据结构:页表
• 页表:系统为每个进程建立一张页面映 射表。
• 用于记载进程的各页面到物理内存中页 框的映射信息。
• 进程的每个页面依次对应页表中的一个 表项,其中包含相应页在内存中对应的 物理页框号和页面存取控制权限等字段。
15
10 9
0
页号
页内偏移量
图3.14 分页管理的逻辑地址表示
编辑课件
27
• 当一个进程被装入物理内存时,系统将 为该进程的每个页面分配一个独立的页 框。
• 同一个进程的多个页面不必存放在连续 的多个页框中。
编辑课件
28
例如
• 假设内存能提供16个空闲页框,进程P1被分 割成4个页面,装入内存中的0号至3号页框。 进程P2被分割成3个页面,装入4号至6号页框。 进程P3被装入7号至12号页框,如图3.15(a) 所示。
编辑课件
20
连续存储管理
• 基址寄存器:存放当前执行进程所在分区的物
理存储单元的起始地址。
• 界限寄存器:存放当前执行进程所在分区最后
一个物理存储单元的地址,限定进程的执行范 围,保护其他进程不被非法访问。
• 基址寄存器和界限寄存器被多个进程共享,只 有当前执行进程才使用它们。
编辑课件
21
• 装入时,进程分区的基地址值和分区的最后一 个物理存储单元的地址值,分别填入该进程
• 为之建立二级页表,记录被分割的各个页面存 储在哪些页框中,也称为外层页表(Outer Page Table)。
• 对于4GB的进程,若采用二级页表,则对应的 二级页表结构如图:
编辑课件
39
… 4KB的二级页表
… 4MB的一级页表
4GB的用户进程
图3.19 4GB进程的二级页表结构
编辑课件
40
多级页表
相关文档
最新文档