【1】计算机原理-内存模型

一.内存工作模型
目的:帮助软件开发人员理解内存的运行机制,进而解决软件运行过程中遇到的各种实际问题

特点:断电不能防止数据丢失

计算机启动的时候,会把程序从硬盘或者其他存储设备加载到内存
在这里插入图片描述

0x1 理论上最好的内存就是CPU的缓存,读写速度快,是内存速率的几倍。
0x2 但是实际情况是,CPU的缓存结构复杂成本高昂容量也很小,无法大规模应用,所以就只能用一点点,而且缓存还会分为多个级别,每个级别之间的读写速度都有差距,容量也是递减的。
0x3 现在的多核CPU还会给每个核都配备一个缓存

在这里插入图片描述

二.内存是如何工作的呢?

答:0x0 计算机里面有一个晶振部件,会产生周期性的方波
0x1 通过修改这个电波,计算机可以在不同部件之间传输数据
0x2 所以这个频率越高,意味着单位时间内,可以传输的数据也就越多

在这里插入图片描述

0x1 但是实际工作的时候,内存的频率往往也会受到主板的限制。 0x2
所以有这样的情况,一块高频率的内存条,因为主板配置低,结果只能降频来适配主板,使得整体上性能没有任何提升

在这里插入图片描述

三.内存在系统中的角色和作用

0x1 内存是计算机启动时自检的关键部件之一,另外还有CPU,起作用至关重要,绝大部分的计算机系统,如果发现内存错误,是无法运行下去的。因为CPU对其他外设控制,通通都是通过内存来实现的
0x2 我们的键盘,显示器,硬盘、声卡、网卡、风扇等等设备都在内存有映射。
0x3 所谓有映射,是指这些设备的数据,并不会直接给到CPU而是先给到内存的规定位置,然后CPU才能去读取的

在这里插入图片描述

内存地址

线性内存模型:内存是一个以字节为单位的,连续紧密排布存储空间。目前我们所有的内存,都是采用的线性内存模型

在这里插入图片描述

总线

提出问题:数据是如何在计算机的各个部件之间传输的?

答:0x0 总线是计算机各个部件之间传送信息的公共通信干线
0x1 总线不仅仅存在于主板上,还存在于各个部件内部
0x2 CPU内部也有一条总线,用于寄存器、计算单元、控制单元和缓存之间的数据传递

1.数据总线DataBus
2.地址总线AddressBus
3.控制总线ControlBus

总结1:当我们在任何一台机器设备编程时,需要利用我们的抽象能力内存条(手机,笔记本,iPad等)当成一个1
在这里插入图片描述

总结2:
当我们在定义变量常量时,其实就是在向内存申请一块区域来存放我们的数据;
只不过常量内存区域不允许修改,而变量内存区域,允许修改(编译器的角度);
实际上,不管是变量还是常量,甚至是已经编译好的代码,都可以修改(逆向编程的角度)

总结3:
设计数据结构和数据类型时,要先确定要存储的值的范围。然后再根据STL的数据结构的特点去选择合适的数据结构(软件设计中没有银弹!);
写程序不一定是写在Window或MAC下,如果在小米手环上这样的嵌入式设备编程,就需要把内存压榨到极致,这时候数据类型的选择就变得尤为重要。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值