OS-分页与页表
快速地址转换(TLB)
在《OS-内存管理》中指出,分页机制的一个主要缺点是可能导致额外的内存访问开销。为了加速虚拟地址到物理地址的映射过程,避免频繁查询页表,计算机系统采用了常见的加速技术——缓存。
在《OS-内存管理》中指出,分页机制的一个主要缺点是可能导致额外的内存访问开销。为了加速虚拟地址到物理地址的映射过程,避免频繁查询页表,计算机系统采用了常见的加速技术——缓存。
当内存总被划分为固定大小的块时,内存的管理比较容易。但如果需要将内存划分为可变长度的块,比如malloc和free、操作系统的分段操作,会出现我们熟悉的内存碎片问题。
之前在地址空间一文中提及 mmap 可以映射文件到内存地址空间,并通过指针实现随机访问。对于使用 read/write 的情形,系统调用 lseek 同样可以达成这个目的。
换句话说,虚拟化内存有什么好处?
一个很自然的想法是操作系统本身占用一部分内存,用户的程序(进程)直接操作内存占用剩余的内存空间。但这样会带来以下问题:
时分共享:允许资源由一个实体使用一小段时间,然后由另一个实体使用一小段时间,如此下去。