第七章MEMORY_MANAGEMENT
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7.1 Memory Management Requirements (存储器管理需求 )
• Relocation(重定位)
• Memory Protection(存储保护)
• Memory Sharing(存储共享) • Logical Organization(逻辑组织) • Physical Organization(物理组织)
• 何谓重定位? 把在装入时对目标程序中指令和数据的变换过 程称为重定位。 • 地址变换是在装入时一次完成的,以后不再改 变,故称为静态重定位。 • 将目标模块装入内存后,并不立即把装入模块 中的相对地址转换为绝对地址,而是把这种地 址转换推迟到程序执行时进行,在硬件地址变 换机构的支持下,随着对每条指令或数据的访 问自动进行地址变换,故称为动态重定位。
• Virtual-Memory Segmentation(虚拟存储分段)
7.2 Memory Partitioning
• 存储器管理最基本的操作是由处理器把 程序装入主存执行。
• Fixed Partitioning (固定分区)
1.系统初始启动时将内存划分为数目固定、 尺寸固定的多个分区。 2.这些分区的尺寸可以相等也可以不等。
• Unequal-size partitions(大小不等分区 )
– can assign each process to the smallest partition within which it will fit(把每个进程指定到适应它的 最小分区 ) – queue for each partition – processes are assigned in such a way as to minimize wasted memory within a partition(可以使一个分区 内部浪费的空间最少 ).
Placement Algorithm with Partitions
• Equal-size partitions(相等分区 )
– because all partitions are of equal size, it does not matter which partition is used(由于所有的分区大小 相等 program is executing, it may be swapped to disk and returned to main memory at a different location (relocated)(程序执行期间, 进程可能被换出主存到磁盘,当需要又被换入主 存,可以把该进程重定位到存储器的不同区域.) (3).The processor hardware and operating system software must be able to translate the memory references found in the code of the program into actual physical memory address. (处理器硬件和操作系统软件必须能够把程序代码 中的访问地址转换成实际的物理存储器地址.) ★如图7.1,该图描述了一个进程的寻址要求。
Fixed Partitioning
(长处和不足)
• Advantages
– 实现简单; – 系统开销小。
• Disadvantages
– 存在Internal Fragment(内零头), 存储利用率不高; – 分区尺寸固定,系统无法运行大程序; – 分区数目固定,使活动进程的数目受限
Dynamic Partitioning (动态分区)
Memory Management Techniques
Fixed Partitioning(固定分区) • Dynamic Partitioning(动态分区) • Simple Paging(简单分页) • Simple Segmentation(简单分段)
• Virtual-Memory Paging(虚拟存储分页)
–address expressed as a location relative to some known point(相对地址被解释成相对于某些已知点的存储单元)
3. Physical
–the absolute address or actual location in main memory(物理地址或绝对地址是主存中的实际单元。 )
• Partitions are of variable length and number (分区长度和数目是可变的 ). • Process is allocated exactly as much memory as required(进程分到所需大小 的存储空间). • There are a lot of small holes in the memory. This is called external fragmentation(在存储器中出现许多空区, 这些空区称作外零头).
2. Different degrees of protection given to modules (read-only, execute-only)(可以给不同的模块不同
的保护级别 )
3. Share modules(使得模块可以被多个
进程共享)
Physical Organization
(物理组织 )
• Programs in other Processes should not be able to reference memory locations in a process for reading or writing purposes without permission。(其他进程中的程序不能为未经授 权的读或写访问这个进程的存储器单元 ) • Note that,the memory protection requirement must be satisfied by the processor (hardware) rather than OS(software). This is because the operating system cannot anticipate all of the memory references that a program will make.(注意,存储器 保护要求必须由处理器(硬件)来满足,而不是 由操作系统(软件)满足。这是因为操作系统不 能预测一个程序可能产生的所有存储器访问)
Chapter 7
Memory Management
• 有效的存储器管理在多道程序系统中是 至关重要的。如果仅仅有一些进程在存 储器中,那么大多数时候所有进程都在 等待I/O,处理器也处于空闲状态。因此, 存储器必须有效地分配,以便尽可能多 的进程可以装入存储器中, 因为程序必 须装入主存才能执行。
Logical Organization
(逻辑组织 ) • 计算机系统中的主存总是被组织成线性 的或一维的地址空间,此空间由一系列 字节或字组成。辅存在物理层上也是按 类似方式组织的。 这种方式叫文件的逻 辑组织。 • 逻辑组织带来许多好处: 1. Modules can be written and compiled independently( 可以独立地写或编译模 块 )。
• A program may be too big to fit into a partition. The programmer must design the program with overlays (一个程序可 能太大而不能放到一个分区中.编程者必 须设计复盖程序 ). • Main memory use is inefficient. Any program, no matter how small, occupies an entire partition. This is called internal fragmentation(主存的利用率非常低。任 何程序,不论多小,都占据了一个完整 的分区, 会存在一部分未用,这些未用的 部分称作内零头).
Sharing(共享)
• Allow several processes to access the same portion of memory(允许多个进程 访问主存的同一部分 ) • Better to allow each process (person) access to the same copy of the program rather than have their own separate copy(允许每个进程访问该程序的同一个 副本要优于让它们有自己单独的副本 )
• 动态分区为进程分配大小合适的分区, 消除了分区Internal Fragment。但是,却 产生分区External Fragment • Compaction :为了使外零头得到充分利 用,可以将把内存中的所有空闲分区拼 接成一个较大的空闲分区。即系统可以 把内存中的所有进程移到内存的某一端; 相应地,内存中的所有空闲分区将被移 到内存的另一端。 • Compaction技术要求系统具有动态重定 位的能力
Relocation(重定位 )
•在多道程序系统中,可用的主存空间通常 被许多进程共享, 因此存在以下情况: (1). Programmer does not know in advance where the program will be resident in memory when it is executed。(程序员不可 能事先知道:在程序执行时,哪个程序会 驻留在主存中。 )
• 怎样实现寻址?
1. Logical
–reference to a memory location independent of the current assignment of data to memory(逻辑地址是指与 当前数据在存储器中的分配情况无关的对存储器单元的 访问.)
2. Relative
• Computer memory is organized into at least two levels,referred as main memory and secondary memory.(计算机存储器至少被组织成两级,称作主存 和辅存) • The main memory available for a program plus its data may be insufficient(可供程序和数据使用的主存 可能是不够的) • Programmer does not know how much space will be available or where that space will be.(程序员在编写代 码时不知道有多少空间可用以及可用空间在哪里) • 系统实现主存和辅存之间的信息交流,是存储器管理 的本质所在。
物理 地址 逻辑 地址
0
0
相 对 地 址
X
m
目标程序空间
内存空间
• 操作系统需要知道进程控制信息和执行 栈,以及为这个进程开始执行程序的入 口点的位置。由于操作系统管理存储器 并负责把该进程取进主存,因而可以很 容易地得到这些地址。 • 处理器必须处理程序内部的存储器访问。 即将要执行的指令的地址,数据字节的 地址等。因此,处理器硬件和操作系统 软件必须能够把程序代码中的地址转换 成实际的物理存储器地址,才能保证程 序的正确执行。
Protection(保护)
• Base register
– starting address for the process
• Bounds register
– ending location of the process
• These values are set when the process is loaded