计算机操作系统学习笔记_7_内存管理 --内存管理基础

h2.western { font-family: "Liberation Sans",sans-serif; font-size: 16pt; }h2.cjk { font-family: "微软雅黑"; font-size: 16pt; }h2.ctl { font-family: "AR PL UMing CN"; font-size: 16pt; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Sans",sans-serif; font-size: 18pt; }h1.cjk { font-family: "微软雅黑"; font-size: 18pt; }h1.ctl { font-family: "AR PL UMing CN"; font-size: 18pt; }p { margin-bottom: 0.25cm; line-height: 120%; }

内存管理

--内存管理基础

一、内存管理概念

1.存储管理的功能

(1)内存空间的分配与回收,包括内存的分配和共享。

(2)地址转换:内存管理配合硬件进行地址转换,把逻辑地址转换成物理地址。

(3)内存空间的扩充:借助于虚拟存储器或交换覆盖技术来达到扩充内存容量的目的。

(4)存储保护:为了避免相互干扰和破坏,必须提供保护功能。

2.地址重定位[程序的装入]

(1)逻辑地址空间

(2)物理地址空间

(3)地址重定位

(4)重定位类型

   地址重定位分为静态重定位动态重定位两类。把作业在装入过程中随即进行的地址变换方式,称为静态重定位。在作业执行过程中,当访问内存单元时才进行的地址变换方式,称为动态重定位。动态重定位是在程序执行过程中由硬件地址变换机构实现的。动态重定位的主要优点如下:用户作业在执行过程中,可以动态申请存储空间和在内存中移动;有利于程序段的共享

3.链接

(1)静态链接

静态链接(staticlinking)是在生成可执行文件时进行的,即在目标模块中记录被调用模块的名字符号地址(symbolicaddress),在可执行文件中将该名字改写为指令直接使用的数字地址。

(2)动态链接

动态链接(dynamic-linking)是在运行可执行文件时进行的,亦即,执行过程中,当发现一个被调用模块未装入内存时,立即取找到该模块,并链接到调用者模块上。

通常被链接的共享代码称为动态链接库(DynamicLink Library,DLL)或共享库(sharedlibrary)。动态链接又分为:装入时动态链接与 运行时动态链接。

动态链接的优点:

1)共享:多个进程可以共用一个DLL,比较节省内存,从而可以减少文件的交换。

2)部分装入:一个进程可以将多种操作分散在不同的DLL中实现,而只将当前操作的DLL装入内存。

3)便于局部代码修改:即便于代码升级和代码重用;只要函数的接口参数(输入和输出)不变,则修改函数及其DLL时,无需对可执行文件重新编译或链接。

4)便于适应运行环境:调用不同的DLL,就可以适应多种使用环境并提供不同的功能。

p { margin-bottom: 0.25cm; line-height: 120%; }

二、交换与覆盖[现在用的已经不多]

覆盖是指一个作业的某些程序段,或几个作业的某些部分轮流使用某一段存储空间

交换实质上是使用外存做缓冲,让用户程序在较小的存储空间中通过不断地换出换入而可以运行较大的作业。交换可以是进程的整体交换,称为“进程交换”。如果交换以进程的部分页面或段为单位进行,则分别称之为“页面交换”或“分段交换”,又统称为“部分交换”。这种交换方法是实现请求分页请求分段式存储管理的基础,虚拟存储系统就是采用了这种部分交换而得以实现。

三、存储分配方式

1.静态分配

在装配程序把目标模块进行链接装入时确定它们在内存中的位置。

2.动态分配

其执行过程中可根据需要申请附加的存储空间。

p { margin-bottom: 0.25cm; line-height: 120%; }

四、连续分配管理方式

1.固定式和可变式分区存储管理

(1)固定式分区存储管理{分区大小相等,分区大小不等}

(2)可变分区存储管理:根据作业的实际需要动态地划分存储空间。

分配算法

1)首次适应算法(FirstFit)

2)邻近适应算法(NextFit)

3)最佳适应算法(BestFit)

4)最坏适应算法(WorstFit)

动态分区分配可能会出现“外部碎片”问题,而采用“内存紧缩”技术,可以把碎片集中起来形成一个大的空闲区。

2.分区的存储保护

(1)界地址保护:界地址保护又称为界限寄存器保护。

界限寄存器方式:下界寄存器存放起始地址,上界寄存器存放结束地址。

基址寄存器和限长寄存器:基址寄存器存放起始地址,限长寄存器存放最大长度。

(2)存储键保护:同一作业的各页面所对应的内存块都要指定一个相同的,但又不与其他作业相重的键码。这个键码存于快速寄存器和该作业的程序状态字PSW中,当程序要访问某一块时,将程序状态字中的键码与被访问块的键码进行比较,若相符,则表明允许本次访问,否则发出越界中断。

p { margin-bottom: 0.25cm; line-height: 120%; }


五、非连续分配管理方式

1.简单分页存储管理

分页存储管理技术中的基本作法是:

(1)等分内存:把内存划分成大小相等的单位,称为存储块,或称为页框(PageFrame)。

(2)用户逻辑地址空间的分页:把用户的逻辑地址空间划分成若干个与存储块大小相等的单位,称之为页面或页(Page)。并给各页从起始开始依次编以连续的页号0,1,2,......。

(3)逻辑地址的表示:用户的逻辑地址从基地址“0”开始连续编址,即相对地址。

(4)内存分配原则:系统以存储块为单位把内存分给作业或进程。

(5)页表和页表地址寄存器:作业的一页可以分配到内存空间中任何一个可用的存储块。

简单分页管理方法在作业或进程开始执行之前,把该作业或进程的程序段和数据全部装入内存的各个空闲块中,并通过页表和硬件地址变换机构实现虚拟地址到内存物理地址的地址映射。

(6)快表。

(7)页的共享与保护:保护的项目一般有读、写、运行等。

2.分段存储管理

段式存储管理按用户作业中的自然段来划分逻辑空间,例如代码段,数据段,堆栈段等等。每段占用连续的地址空间,因此作业的逻辑地址是二维的,由段号和段内地址组成。

(1)把程序按内容或过程(函数)关系分成段,每段有自己的名字。

(2)地址转换。

(3)段的共享与保护。

(4)分段存储管理特点:优点是便于程序模块化处理和便于处理变换的数据结构;便于动态链接;便于共享分段;可以实现虚拟存储器,使作业的地址空间不受内存容量的限制。

时间: 07-19

计算机操作系统学习笔记_7_内存管理 --内存管理基础的相关文章

计算机操作系统学习笔记_1_操作系统概述

操作系统概述 一.操作系统的概念.特征.功能和提供的服务 1.操作系统的概念     操作系统是计算机系统中最重要.最基本的系统软件,操作系统位于硬件和用户程序之间.    对于用户来讲:它能向用户提供使用计算机的接口;    从资源管理角度来看:它能管理计算机软硬件资源,提高其利用率;    再者,利用虚拟机技术(如WMWare,VirtualBox,Java虚拟机等),扩展了计算机的功能和使用范围.     因此,操作系统的定义为:操作系统是控制和管理计算机软.硬件资源,以尽可能合理.高效的

计算机操作系统学习笔记_8_内存管理 --虚拟内存管理

td p { margin-bottom: 0cm; }h2.western { font-family: "Liberation Sans",sans-serif; font-size: 16pt; }h2.cjk { font-family: "微软雅黑"; font-size: 16pt; }h2.ctl { font-family: "AR PL UMing CN"; font-size: 16pt; }h1 { margin-botto

计算机操作系统学习笔记_12_I/O管理 --I/O管理概述

h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Sans",sans-serif; font-size: 18pt; }h1.cjk { font-family: "微软雅黑"; font-size: 18pt; }h1.ctl { font-family: "AR PL UMing CN"; font-size: 18pt; }h2.western { fon

计算机操作系统学习笔记_13_I/O管理 --I/O核心子系统

h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Sans",sans-serif; font-size: 18pt; }h1.cjk { font-family: "微软雅黑"; font-size: 18pt; }h1.ctl { font-family: "AR PL UMing CN"; font-size: 18pt; }h2.western { fon

”计算机操作系统“学习笔记1

1.在计算机上配置操作系统的主要目标 方便性.有效性.可扩充性.开放性. 2.操作系统的作用 OS作为用户与计算机硬件系统之间的接口: OS作为计算机系统资源的管理者: 资源:处理机.存储器.I/O设备.文件(数据和程序). OS主要实现对这四类资源的有效管理. OS实现了对计算机资源的抽象: OS是铺设在计算机硬件上的多层软件的集合,它们不仅增强了系统的功能,还隐藏了对硬件操作的具体细节,实现了对计算机硬件操作的多个层次的抽象模型. 3.OSs 单道批处理系统 多道批处理系统 分时系统 实时系

Android-Universal-Image-Loader学习笔记(3)--内存缓存

前面的两篇博客写了文件缓存,现在说说Android-Universal-Image-Loader的内存缓存,该内存缓存涉及到的类如图所示 这些类的继承关系如下图所示: 如同文件缓存一样,内存缓存涉及的接口也有两个:MemoryCacheAware 和MemoryCache,其中MemoryCache只是简单的继承了MemoryCacheAware并没有声明其他的方法.MemoryCacheAware接口的方法如下: @Deprecated public interface MemoryCache

Hadoop学习笔记_7_分布式文件系统HDFS --DataNode体系结构

分布式文件系统HDFS --DataNode体系结构 1.概述 DataNode作用:提供真实文件数据的存储服务. 文件块(block):最基本的存储单位[沿用的Linux操作系统地概念].对于文件内容而言,一个文件的长度大小是size,那么从文件的0偏移开始,按照固定的大小,顺序对文件进行划分并编号,划分好的每一个块称一个Block. 与Linux操作系统不同的是,一旦上传了一个小于Block大小的文件,则该文件会占用实际文件大小的空间. 2.进入hdfs-default.xml <prope

Linux 操作系统学习笔记

一,unix 1.unix 特点 伸缩性强,开放性好, 2.基本原则 所有对象,硬件都是文件 配置数据以文本形式保存 短小的单目的程序构成 多个程序合作完成复杂任务 3.gnu 基本原则是共享,建立自由开放的unix系统 1984年 richard stallman 发起 基本体系是micro kernel 4.gpl Copyleft 原作者所有权 5.linux起源 Linustorvalds, 自由的类unix操作系统, 遵循gnu和gpl 6.linux 可以实现unix功能 遵循开源许

Linux 程序设计学习笔记----POSIX 文件及目录管理

转载请注明:http://blog.csdn.net/suool/article/details/38141047 问题引入 文件流和文件描述符的区别 上节讲到ANSI C 库函数的实现在用户态,流的相应资源也在用户空间,但无论如何实现最终都需要通过内核实现对文件的读写控制.因此fopen函数必然调用了对OS的系统调用.这一调用在LINUX下即为open, close, read, write等函数.这些都遵循POSIX标准. so,在linux系统中是如何通过POSIX标准实现对文件的操作和目