什么是内存,内存的作用

内存可以存放数据,程序执行前需要先放到内存中才能被CPU处理,缓和CPU与硬盘之间的速度矛盾

在多道程序环境下,系统中会有多个程序并发执行,也就是说会有多个程序的数据需要同时放到内存中,那么,如何区分各个程序都放在什么地方呢。

内存比作一个酒店,内存中有一个一个的小房间,每个小房间都是一个存储单元。要给内存的存储单元进行编号。

内存地址从0开始,每个地址都对应一个存储单元

如果计算机按字节编址,每个存储单元大小为1字节。如果按字编,每个存储单元大小为1个字,每个字的大小为16个二进制位。

补充:一些常见的数量单位。2^10=1k(千)

指令的工作原理:程序段,数据段

执行数据传送指令(操作码,后面两个是操作必要的参数)将地址为79的里面的数据,放到3的这个寄存器中,根据操作码,要进行一个加法运算。

操作码一样,指令作用一样,第三条指令是把进行计算之后的写回地址79里面,三条指令完成x=x+1这个运算

默认这个进程的相关内容从地址#0开始连续存放,指令中的地址参数直接给出了变量x的实际存放地址(物理地址)

如果不是从#0开始存放是否会有问题

形成装入模块,可执行文件,程序经过编译,链接后生成的指令指明的是逻辑地址(相对地址),即相对进程的起始地址而言的地址。

指令0:往地址为79的存储单元中写入10

指令1:把地址79中的数据读入寄存器3

装入的三种方式---绝对装入

绝对装入:在编译时,如果知道程序将放到内存中的哪个位置,编译程序将产生绝对地址的目标代码。

内存空间的分配与回收:1.操作系统负责内存空间的分配与回收。

如何在4GB的电脑上运行60G的游戏(虚拟技术,操作系统的虚拟性)

2.操作系统需要提供某种技术从逻辑上对内存空间进行扩充。

3,操作系统提供地址转换功能(绝对装入,可重定位装入,动态运行时装入)

内存保护:各个进程只能访问自己的内存,不能访问操作系统,也不能访问其他进程。

1.设置上下限寄存器

2.重定位寄存器,看看有没有越界

覆盖技术,早期计算机的内存很小,解决程序大小超过物理内存总和。

将程序分为多个段,常用的段常驻内存,不常用的段调入内存。

A模块可能调用B和C,把A放在物理内存的固定区8k,B和C这两个共享一个覆盖区,覆盖区的大小以大的为准,DEF也是共享覆盖区,程序根据自身的逻辑结构,让那些不可能同时被访问的程序段共享一个覆盖区。

必须由程序员声明覆盖结构,操作系统自动覆盖。缺点是对用户不透明。

交换技术:内存紧张时,将内存中某些进程暂时换出外存,把外存中已经具备运行条件的进程换入内存,进程在内存与磁盘间动态调度。

中级调度就是决定将哪个处于挂起状态的进程重新调入内存。

挂起:暂时换出外存等待的进程状态就是挂起状态。(就绪挂起,阻塞挂起)

1.应该在外存(磁盘)的什么位置保存被换出的进程

2.应该什么时候交换

3.应该换出哪些进程

具有对换功能的操作系统中,把磁盘空间分为文件区和对换区。文件区主要用于存放文件,主要追求存储空间的利用率,对文件区空间的管理采用离散分配方式。

考虑优先换出阻塞进程:可换出优先级低的进程:为了防止优先级低的进程刚被调入内存后很快被换出,有的系统还会考虑进程在内存的驻留时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值