2015-12-17 17:24:07 547浏览
和所有的操作系统一样,iOS操作系统也管理计算机的存储器。一般情况下,操作系统会把存储器分为不同的区,分别用来存储实际的计算机指令(代码)、数据变量和堆。堆是存储器中的一段,进程可以在堆中动态地使用和释放存储空间。
一些操作系统还提供了一种让进程能够寻址比存储器实际存储空间(RAM)还大的方法,这种方法对应的一个概念称为虚拟存储器,简称为虚存。有了虚存,计算机就能把它的存储器扩展到二级存储,例如一个磁盘驱动器,而且这对进程是透明的。操作系统使用一个硬件特性来创建虚存(有的处理器上有),称为存储器映射单元(Memory Map Unit,MMU)。MMU根据内容实际驻留的存储区把对存储器的寻址请求重映射到物理存储器(RAM)或二级存储器(磁盘)。MMU也允许对一些地址范围进行保护(标志为只读)或置为全部不能被映射。
虚存还有另外一个好处:在支持虚存的操作系统内,MMU可以被iOS开发者编程为每一个进程创建一个独立的地址空间。这样每一个进程就可以拥有完全属于自己的一个存储空间,同时还可以阻止其他的进程访问。
虽然虚存有许多好处,但它也不是无偿拥有的。随着虚存的应用,会有对资源的更大需求,同时也会有性能上的损失(有些是非常严重的)。因此,正像即将看到的,iOS并不使用一个完全的虚存机制。iOS把整个物理存储器映射成一个大的、连续的虚拟地址空间。即使iOS并没有应用完全的虚存机制,但当需要创建虚拟地址空间的时候,也会用到CPU的MMU。为了减少开销,内核并不进行任何存储器页的调度或交换,所以虚拟地址空间受限于实际的物理存储器的大小。
iOS把这些地址空间分为不同的存储区域,这些存储区域称为区。区也和各种类型的物理存储器相符合,例如在一个给定的路由器上,SRAM用来存储报文,DRAM则可能用来存储软件和数据。把存储器分成不同的区有利于iOS把各种类型的存储器分组,从而软件就不必关心每一种平台上特定存储器的类型。
以上就是iOS操作系统存储器资源管理介绍,了解更多iOS操作系统及其开发技术可以观看更多iOS开发课程和扣丁资讯文章。