什么管理计算机没内存分配,电脑内存分配和管理详解.pdf

思维导图

主存 (RAM) 是一件非常重要的资源,必须要认真对待内存。虽然目前大多数

内存的增长速度要比 IBM 7094 要快的多,但是,程序大小的增长要比内存的

增长还快很多。 不管存储器有多大,程序大小的增长速度比内存容量的增长速度要快的

多 。下面我们就来探讨一下操作系统是如何创建内存并管理他们的。

经过多年的研究发现,科学家提出了一种 分层存储器体系 (memory hierarchy) ,

下面是分层体系的分类

位于顶层的存储器速度最快,但是相对容量最小,成本非常高。层级结构

向下,其访问速度会变慢,但是容量会变大,相对造价也就越便宜。(所以个

人感觉相对存储容量来说,访问速度是更重要的)

操作系统中管理内存层次结构的部分称为 内存管理器 (memory manager) ,它

的主要工作是有效的管理内存,记录哪些内存是正在使用的,在进程需要时分

配内存以及在进程完成时回收内存。所有现代操作系统都提供内存管理。

下面我们会对不同的内存管理模型进行探讨,从简单到复杂,由于最低级

别的缓存是由硬件进行管理的,所以我们主要探讨主存模型和如何对主存进行

管理。

无存储器抽象

最简单的存储器抽象是 无存储器 。早期大型计算机( 20 世纪 60 年代之前),

小型计算机( 20 世纪 70 年代之前)和个人计算机( 20 世纪 80 年代之前)都

没有存储器抽象。每一个程序都直接访问物理内存。当一个程序执行如下命令:

MOV REGISTER1, 1000

计算机会把位置为 1000 的物理内存中的内容移到 REGISTER1 中。因此呈

现给程序员的内存模型就是物理内存,内存地址从 0 开始到内存地址的最大值

中,每个地址中都会包含一个 8 位位数的内存单元。

所以这种情况下的计算机不可能会有两个应用程序 同时 在内存中。如果第

一个程序向内存地址 2000 的这个位置写入了一个值,那么此值将会替换第二

个程序 2000 位置上的值,所以,同时运行两个应用程序是行不通的,两个程

序会立刻崩溃。

不过即使存储器模型就是物理内存,还是存在一些可变体的。下面展示了

三种变体

在上图 a 中,操作系统位于 RAM(Random Access Memory) 的底部,或像是

图 b 一样位于 ROM(Read-Only Memory) 顶部;而在图 c 中,设备驱动程序位于

顶端的 ROM 中,而操作系统位于底部的 RAM 中。图 a 的模型以前用在大型

机和小型机上,但现在已经很少使用了;图 b 中的模型一般用于掌上电脑或者

是嵌入式系统中。第三种模型就应用在早期个人计算机中了。 ROM 系统中的

一部分成为 BIOS (Basic Input Output System) 。模型 a 和 c 的缺点是用户程序中

的错误可能会破坏操作系统,可能会导致灾难性的后果。

按照这种方式组织系统时,通常同一个时刻只能有一个进程正在运行。一

旦用户键入了一个命令,操作系统就把需要的程序从磁盘复制到内存中并执行;

当进程运行结束后,操作系统在用户终端显示提示符并等待新的命令。收到新

的命令后,它把新的程序装入内存,覆盖前一个程序。

在没有存储器抽象的系统中实现 并行性 一种方式是使用多线程来编程。由

于同一进程中的多线程内部共享同一内存映像,那么实现并行也就不是问题了。

但是这种方式却并没有被广泛采纳,因为人们通常希望能够在同一时间内运行

没有关联的程序,而这正是线程抽象所不能提供的。

运行多个程序

但是,即便没有存储器抽象,同时运行多个程序也是有可能的。操作系统

只需要把当前内存中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值