《操作系统真像还原》操作系统实现——内存池管理
操作系统需要管理内存页的映射,即虚拟地址和物理地址的映射关系,一种简单的方法是一对一映射,管理起来也比较方便,申请的时候填写页表,释放的时候清空页表就可以了,但是这样就背离了我们引入虚拟地址的初衷。而若想使用乱序映射的映射方法,我们需要用某种数据结构来管理物理内存的使用情况。
…
ptmalloc 的简单分析
前言
断断续续写了一个多月,终于写完了。写本文的主要目的是获得一个对堆的理性认知,从知其然到知其所以然。主要分析了 __libc_malloc,_int_malloc,__libc_free,_int_free,malloc_consolidate 五个比较长且核心的函数。基本覆盖了较小(即未大到需要进行 sys_malloc)的情况。当然对于较大的请求的处理也是有必要学习的,之后应该会再写一篇。总的来说本文写的比较简略,且略过了对 malloc_chunk 结构体、unlink 函数的介绍,您在看之前应该需要对 ptmalloc 的流程和基础结构已有一定了解。
…《操作系统真像还原》操作系统实现——中断
中断这个东西说起来不是很难,实现起来比较麻烦,主要是和硬件有一定联系,会略显复杂。
宏观视角
宏观地来看,一个中断的过程就是 CPU 接受中断信号,然后执行对应的处理函数。这里的中断分外部中断和内部中断两种。
…