计算机内存使用方式

早期计算机内存使用方式

早期的计算机内存使用根本就没有所谓的抽象(考虑如何使用),比如下面这条汇编指令:

 MOVE REGISTER1,1000

这条汇编代码的作用为,将地址为1000的物理内存上的内容移到REHISTER1中,那是的物理内存给人的映像就为0到一个上限的集合,每个地址上能存一定数目的二进制数,一般都为八位。

以冯诺依曼的计算机设计思路为,CUP现在内存中取指(这里的,代表指令类型,比如接下来是要做加法还是减法,左移还是右移,构架不同的CUP所用的指令集是不同的,所以就有了X86,X64,ROM构架等等),再取到指令后在完成相应的操作,完成之后在将数据写回到内存。

而在这种情况下如果要运行多个程序是几乎不可能的,很好理解(不理解建议看看计算机原理)因为一个程序A如果在内存地址2000的位置处写了一个"l love you" 准备发给女朋友,这时候程序B刚好也要在内存种写数据了,它在2000位置写了一个"I hate you",而A程序并不知道就把B程序写的内容发出去。这样一来就会出现问题,如果是这个地址是指令的话,更严重,这两个程序就会直接崩溃掉。

虽然在早期也提出了些解决方法(保护键,重定位等等)简单说一下,接着上面的A和B说,因为A和B进程都想用2000这个位置,从而导致了内存错误,那么在运行的过程中对于加载到内存的程序每一个程序设置一个基址,程序就从基址开始存放,在寻址的时候原本的地址再加上基址就可以得到真实的物理地址,但是呢每条指令都需要进行加法运算,效率很低,还存在地址越界的情况。

本文中就不多做讨论了。因为现在除了一些小的嵌入式设备(如:洗衣机,电饭锅),或者航天设备外几乎都用内存映射的方式。这些嵌入式设备的代码事先都是确定好了的,各自运行各自,不会跑到别人的地址上去。

地址空间,虚拟

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值