内存
文章平均质量分 79
wuguinianjing
这个作者很懒,什么都没留下…
展开
-
虚拟内存
在任意时刻,虚拟页面的集合都分为三个不相交的子集:1.未分配的:VM系统还未分配(或者创建)的页。未分配的块没有任何数据和它们相关联,因此也就不占用任何磁盘空间。2.缓存的:当前已缓存在物理内存中的已分配页。3.未缓存的:未缓存在物理内存中的已分配页。tip:这是通过页表来实现的。每个PTE有一个有效位和一个n位地址字段构成的的。有效位表明了该虚拟页当前是否被缓存在DRAM中。如果设置了有效位,那么地址字段就表示 DRAM中相应的物理页的起始位置,这个物理页中缓存了该虚拟页。如果没有设置有效位,那原创 2020-12-13 12:34:27 · 1135 阅读 · 0 评论 -
MMAP和read的区别
mmapmmap操作提供了一种机制,让用户程序直接访问设备内存,这种机制,相比较在用户空间和内核空间互相拷贝数据,效率更高。在要求高性能的应用中比较常用。mmap映射内存必须是页面大小的整数倍,面向流的设备不能进行mmap,mmap的实现和硬件有关。mmap()系统调用使得进程之间通过映射同一个普通文件实现共享内存。普通文件被映射到进程地址空间后,进程可以像访问普通内存一样对文件进行访问,不必再调用read(),write()等操作。 注:实际上,mmap()系统调用并不是完全为了用于共享内存而设计的转载 2020-12-11 18:04:29 · 1616 阅读 · 0 评论 -
malloc申请堆内存
1.malloc申请的空间,是否记录空间大小?若是记录,那所记录的空间大小在哪呢?为什么利用free释放不需要空间大小参数呢?2.malloc函数的相关堆分配算法3.malloc申请失败,即可使用的内存满时应该怎么办?...原创 2020-11-23 01:17:53 · 2595 阅读 · 0 评论 -
操作系统内存分层
在学习编程语言时,我们仅仅把内存当做一个字节数组(可以用地址下标来访问的一个大的字节数组),但实际上存储系统是一个非常复杂的设备层次结构,它提供了一个抽象,将内存结构抽象成了一个大的线性数组,我们可以体会到多种存储设备之间属性的美妙融合(缓存),以及程序的局部性属性在其中起到的作用。存储技术与趋势(了解各个存储设备的性能和运行速度)随机访问存储器(RAM),也就是当前的内存,它一般都是被打包成芯片,然后将这样很多个芯片组合就形成了主存,其最基本存储单元为bit。而RAM又可以分为两种,一种是SRAM,原创 2020-11-16 12:28:46 · 388 阅读 · 0 评论 -
内存碎片
因为申请空间时还会提供头部信息空间和越界标记空间,所以在反复申请小空间时,其申请的堆空间的使用比例较小,且容易内存的碎片问题。外碎片和内碎片原创 2020-11-14 12:00:16 · 343 阅读 · 0 评论 -
内存的访问大小
WIN32下,正常情况下内存是4G,那若是我的内存大小是16G,而WIN32的指针只有4字节,那如何利用其它的内存资源呢?CPU 有两种状态:1.保护模式保护模式下,CPU只能处理32位的地址线,即能访问的内存大小为4G2.实模式实模式下CPU有...原创 2020-11-13 01:23:24 · 123 阅读 · 0 评论 -
内存分层体系
计算机体系结构/内存分层体系(CPU访问的指令或数据所处的位置)1.寄存器----位于CPU芯片内部,速度快,容量很小,OS无法直接管理2.cache----位于CPU芯片内部,速度快,容量很小,OS无法直接管理3.主存(物理内存) 放置OS要运行的代码,容量大,速度相对cache慢–物理地址空间4.硬盘—物理地址空间运行的程序看到的是逻辑空间,需要对应到物理地址空间ps:内存也有主频,且内存主频越高,与CPU进行交流的速度越快。硬盘有读写速度,读写速度越快,进行页错误相应越快,即提高了原创 2020-11-14 10:55:39 · 955 阅读 · 0 评论