浙江大学城市学院 操作系统chapter4分解
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
存储保护
• 在分区存储管理方式中,系统区存放着操 作系统的程序和数据,用户区的每个分区 存放着一道用户作业。
• 存储保护的任务就是防止用户访问内存的 系统区,也不准一个用户访问其分区以外 的其它分区。
• 分区管理方式常用的存储保护方法:
– 界地址法 – 保护键法
存储共享
• 在多道程序系统中,任何保护机制必须具 有一定的灵活性,以便允许多个进程访问 主存的同一部分。
第四章 存储器管理
本章摘要
• 如何对存储器实行有效的管理,不仅直接 影响到存储器的利用率,而且还对系统性 能有重大影响。
– 介绍有关存储管理的基本概念, – 几种常用的存储技术 – 比较常用的存储技术的优缺点
存储层次结构
• 存储系统设计是计算机体系结构设计的关键问题之 一
– 价格,容量,速度的权衡
• 当一个进程执行结束后,管理模块需要及时回收它 所占用的内存空间。为了使操作系统随时掌握内存 空间的使用情况,系统应设有特定的数据结构用以 记录内存区的分配情况。
• 当用户提出存储空间申请时,存储管理模块按一定 策略从该结构中找出符合申请者要求的空闲区进行 分配。若需要归还内存空间时,及时将这些空间回 收回来。
静态重定位示意图
JMP 40
0010 op 1010 op 0011 00 1011 10 0012 40 1012 40
LOAD r1,[500]
0040 op
0041 01 0042 05 0043 00
1040 op
1041 02 1042 15 1043 00
重定位项表
0011 0042
– L1(32K指令+32K数据) – L2(256K) – L3(3M-8M)
• 内存:2G-8G容量,2ns-3ns • 硬盘:
– 传统硬盘,容量是为500GB-3T, 7200转/分 – 笔记本电脑一般500G,5400转/分 – 固态硬盘 SSD,容量128G-256G
内存定义
• 内存
– Main Memory(或Primary Memory或Real Memory)也称主 存,
– CPU能直接存取指令和数据的存储器
• 主存速度快,但容量有限。 • 存储管理主要是对主存的管理,同时也涉及到主存和外存交
换信息
内存在计算机系统中的地位
存储管理的主要功能
• 内存空间
– 系统区:存放OS本身的程序和信息; – 用户区;存放用户的程序和数据等。
• 存储管理的功能是针对用户区的存储空间进行 有效管理
(2X/10 yrs)
Time
5
100,000
10,000
Performance
1,000 100
Proces s or
10
1 1980
1985
Mem ory
1990
1995 Year
2000
2005
2010
层次型存储体系
CPU Registers
Executable Memory
Cache Memory Primary Memory
地址重定位
• 用户作业调入内存空间时所处 的位置是根据内存空间当时的 状况决定的。
• 一般情况下,同一个程序在每 次调入内存时所占用的位置是 完全不同的。
• 为了保证程序在使用内存的不 同区域时仍能正确地执行,必 须把在程序执行时要访问的存 储单元的位置,由用户在编制 程序时所定的地址变换成它们 在内存的实际地址。
–这种算法实现简单,存储分配的速度快。
• 最佳适应算法BF(Best Fit):
–从内存所有空闲区中找出能满 足作业请求 容量的最小空闲区。
–这种算法比FF算法对内存空间的利用较好, 浪费的空间最少
2M 新进程放哪里呢?
5M
8M
Last
allocated
7M
block
6M
First-fit:按照分 区的顺序选择第 一个可以满足作 业请求容量的空 闲区。
等分
以系统可以同时运行的最大作业道数
就是内存分区的数量。
• 在固定分区管理下,内存分区的数量 、分区的大小、分区的位置以及可容 纳的作业道数都是固定不变的。
8M 4M 8M
12M
非等分
固定分区采用的分配策略
• 最先适应算法FF(First Fit)
–按照分区的顺序选择第一个可以满足作业请 求容量的空闲区。
动态重定位
• 动态重定位是在程序执行期间,每次访问内存之前进行 重定位。
• 这种变换是通过“重定位寄存器”来实现。 • 当存储管理系统为程序分配一个内存区域后,就把该区
的起始地址放到重定位寄存器中。 • 程序的物理地址是逻辑地址和重定位寄存器的内容之和
。 • 优点:
– 程序占用的内存空间动态可变,不必连续存放在一起。 – 比较容易实现几个进程对同一个程序副本的共享使用。
• 用户对存储器的“容量,价格和速度”要求是相互 矛盾的
– 速度越快,每位价格就高 – 容量越大,每位价格就低 – 容量越大,速度就越慢 – 目前主存一般由DRAM构成
• Microprocessor与Memory之间的性能差异越来越大
–CPU性能提高大约60%/year –DRAM 性能提高大约 9%/year
Next-fit:在上次 分配位置后找第 一个可以满足作 业请求容量的空 闲区。
Best-fit:从内存 所有空闲区中找 出能满 足作业请 求容量的最小空 闲区。
内部碎片
• 一个分区分配给某个作业后,由于分区的大小 和作业的大小不可能完全相同,一般情况下在 分区内总是留有一些未使用的区域。
• 由于这些空闲区域处于一个分区的内部,其它 作业不能利用。
...... ...... 40 LOAD 1,[500] ...... ...... 500 1234
1000 1010 1040 1500
存储空间 ...... ...... JMP 1040 ...... ...... LOAD r1,[1500] ...... ...... 1234
< 15GB (per device) 25 usec – 1 sec
Sequential Accessed Memory
< 5GB (per tape) seconds
现代计算机系统的多级存储层次
• 应用程序局部性原理: 给用户
– 一个采用低成本技术达到的存储容量(容量大,价格低) – 一个采用高速存储技术达到的访问速度(速度快)
• 为完成同一个任务的多个合作进程可能需 要共享访问同一个数据结构。
• 存储器管理系统必须允许对存储器共享区 域的受控访问,而不会损害本质上的保护 作用。
单一连续存储区管理
• 总是把内存的用户区视为一个独立的连续存储区 域,任何时刻只将它分配给一个作业使用。
• 这是一种最早出现的存储管理方式。 • 在内存中仅驻留一道程序,整个用户区用户唯一
1000
“Moore’s Law” (really Joy’s Law)
µProc CPU 60%/yr.
(2X/1.5yr)
100 10
1
“Less’ Law?”
Processor-Memory Performance Gap: (grows 50% / year)
DRAM DRAM 9%/yr.
a = 0; a
mov [100],0 100
RAov [100],0 200
静态重定位
• 静态重定位是在目标程序装入内存时,由装入程序对目标程序中的指 令和数据的逻辑地址进行适当调整,转换成内存的物理地址。
• 对每个程序来说,这种地址变换只是在装入时一次完成,在程序运行 期间不再进行重定位。
• 优点:
– 由于在程序执行前就完成了地址变换,所以程序执行的速度较快。 – 不需要硬件的支持,在硬件简单的机器中易于实现。 – 无需增加硬件地址转换机构,便于实现程序的静态连接。
• 缺点:
– 程序经地址变换后,就不能在内存中移动了。 – 要求程序的存储空间必须是连续的,不利于存储空间的充分利用。 – 各个用户进程很难共享内存中的同一程序的副本。
• 按照分区方式分为
– 固定分区方式 – 动态分区方式 – 伙伴系统
固定分区
• 固定分区管理是在用户作业装入内存
8M
之前,事先由操作系统或操作人员把
内存的用户区划分成若干个大小不等
8M
的分区。
• 分区一旦划分后,在系统运行期间就
8M
不能再变动,所以它们称为固定分区 ,或静态分区。
8M
• 由于一个分区只能存放一个作业,所
独占。但只能用于单用户、单任务的操作系统中 。 • 由于一个作业实际只占用用户区的一部分,其余 部分被浪费,因此内存利用率较低。
分区管理
• 为支持多道程序运行而设计的一种最简单 的存储管理方式。
• 在这种方式下,除了操作系统占用某个固 定分区以外,其余内存供多个用户程序使 用,并且把空间划分为多个存储分区,每 个分区装入一个用户程序。
~500 Bytes 1 clock cycle
<10MB 1-2 Clock cycles
<1GB 1-4 Clock cycles
Secondary Storage
Rotating Magnetic Memory Optical Memory
< 100GB (per device) 5-50 usec
Performance
1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000
Processor-DRAM Memory Gap (latency)
– 将逻辑地址转换成内存的物理地址的过程 – 静态重定位、动态重定位
名字空间 ...... ...... A: JMP B ...... ...... B:LOAD r1,D1 ...... ...... D1: 1234
地址空间 0 ......
...... 10 JMP 40
– 包含分区号、分区大小、分区起始地址及状态等条 目。
• 空闲分区链
– 为了实现对空闲分区的分配和链接,需要通过链指 针把所有的空闲分区链接成一条链表
– 在每个分区的起始部分,设置状态位、表示分区大 小的项目以及用于链接各分区的前向指针。
分配算法
• 最先适应算法FF(First Fit) • 最佳适应算法BF(Best Fit) • 邻近适应算法NF(Next Fit) • 最差适应算法WF(Worst Fit):
CPU Register
Speed (ns): 0.25ns Size (bytes): 500B
C A C H E
1ns
64KB
MEMORY
100ns 1GB
I/O device
10ms 1TB
计算机典型配置
• CPU:多核多进程,主频不再是速度唯一指标 • CPU寄存器:以堆栈形式存在,字长64位 • Cache:
• 缺点:
– 需要附加硬件支持,增加了机器成本, – 实现存储管理的软件算法比较复杂。
动态重定位示意图
0 …
50
LOAD 1,400
…
400
0x0023
…
地址空间
重定位寄存器 3000
0
3000
400
+
3050
3400
…
… LOAD 1,400
… 0x0023
…
内存空间
内存的分配和回收
• 在多道程序环境中,当系统需要装载一个用户程序 时,调度程序将存储管理模块启动起来,按照某种 方式分配存储空间,并将程序代码装入。
• 在固定分区方式中,一个分区分配给作业后, 分区内未使用的空闲区称为“内部碎片”。
内部碎片
8M
OS
8M
Process A (8M)
Process
8M
B (5M)
5M的进程分配了8M的分区 ,将浪费3M内存,这3M不 能被别的进程使用,称为内 部碎片。
8M
Process C (10M)
即使系统内有足够的空 闲空间(11M),10M
的进程仍无法运行。
动态分区
• 指导思想
– 系统不事先划分分区,而是在装载一个进程 的时候,根据进程的大小划分一个分区供其 使用
– 不会出现内部碎片问题。
作业号 请求容量 运行时间
1
40K
40秒 4
2
100K
10秒
5 6
3
60K
5秒
30K
20秒
40K
30秒
70K
15秒
数据结构
• 空闲分区表
– 用于为内存中每个尚未分配出去的分区设置一个表 项,
• 管理四个方面:
– 地址重定位 – 内存的分配和回收 – 存储保护 – 存储共享
地址和重定位
• 相对地址或逻辑地址:
– 用户程序经编译后的每个目标模块通常都是从0为基 址开始顺序编址
– 逻辑地址是面向用户的
• 绝对地址或物理地址:
– 内存中各物理存储单元的地址是从同一的基地址开 始顺序编址的
• 重定位