OS-内存管理
空闲空间管理
当内存总被划分为固定大小的块时,内存的管理比较容易。但如果需要将内存划分为可变长度的块,比如malloc和free、操作系统的分段操作,会出现我们熟悉的内存碎片问题。
当内存总被划分为固定大小的块时,内存的管理比较容易。但如果需要将内存划分为可变长度的块,比如malloc和free、操作系统的分段操作,会出现我们熟悉的内存碎片问题。
之前在地址空间一文中提及 mmap 可以映射文件到内存地址空间,并通过指针实现随机访问。对于使用 read/write 的情形,系统调用 lseek 同样可以达成这个目的。
换句话说,虚拟化内存有什么好处?
一个很自然的想法是操作系统本身占用一部分内存,用户的程序(进程)直接操作内存占用剩余的内存空间。但这样会带来以下问题:
时分共享:允许资源由一个实体使用一小段时间,然后由另一个实体使用一小段时间,如此下去。
为满足最终基准测试要求,系统需实现至少0.2Gbit/s的持续吞吐量。经性能分析发现,数据弹出操作(pop)的实现方式可能成为主要性能瓶颈。