课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
内存管理与应用是每一个软件开发程序员必须熟练掌握的一个互联网编程技能,下面我们就通过案例分析来了解一下,软件开发内存应用与管理方法。
一、内存简介
内存和存储器这两个术语均指计算机的内部存储空间。存储器包括:内部存储器(内存)、外部存储器(外存)、寄存器。
内存是应用程序在处理过程中放置其使用的数据的地方。内存包括:只读存储器(ROM,ReadOnlymemory)(只读,断电后数据保留)、随机存取存储器(RAM,RandomAccessMemory)(主存)(内存条)(可读可写,断电后数据丢失)、高速缓冲存储器(CACHE)。
物理内存即随机存取存储器空间。
虚拟内存即硬盘一部分空间映射虚拟的内存。物理内存已满时从物理内存碎片甚至硬盘按需取用空间。虚拟内存对应的存储文件pagefile.sys在系统盘根目录下,默认隐藏。虚拟内存使得多个进程在同时运行时可以共享物理内存,这里的共享只是空间上共享,在逻辑上彼此仍然是隔离的。
二、分段和分页管理机制
在早期的计算机中,要运行一个程序,会把这些程序全都装入内存,程序都是直接运行在内存上的,也就是说程序中访问的内存地址都是实际的物理内存地址。
但是如果遇到同时需要运行多个应用程序的时候,操作系统的内存可能就会不太够了。而且还可能会遇到如下问题:
进程地址空间不隔离
内存使用效率低
程序运行的地址不确定
为此,计算机科学家们设计增加一个中间层,利用一种间接的地址访问方法访问物理内存。按照这种方法,程序中访问的内存地址不再是实际的物理内存地址,而是一个虚拟地址,然后由操作系统将这个虚拟地址映射到适当的物理内存地址上。
分段的映射方法虽然解决了上述中的问题一和问题三,但并没能解决问题二,即内存的使用效率问题。在分段的映射方法中,每次换入换出内存的都是整个程序,这样会造成大量的磁盘访问操作,导致效率低下。所以这种映射方法还是稍显粗糙,粒度比较大。实际上,程序的运行有局部性特点,在某个时间段内,程序只是访问程序的一小部分数据,也就是说,程序的大部分数据在一个时间段内都不会被用到。基于这种情况,人们想到了粒度更小的内存分割和映射方法,这种方法就是分页(Paging)。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。