- 如何在有限的空间(如内存和硬盘,可以将其看作一个大数组)内储存不定长度不定生命周期的个体(如进程或者文件)?
- 如何限制一个进程在运行时无法访问或修改其他进程的数据?
- 如何实现共享库或者系统调用?
- 能否把进程的调度、连续对象(字节、页)的分配抽象为纯粹的最优问题?
最近看几本linux内核的书,貌似开始弄明白了点门道。通过分页机制实现一个虚拟地址空间貌似就可以解决上述的问题。不过现在只了解其机制,而不解其策略。纸上谈兵显然还差的远。
大约去年这时候曾经问过FlowerCode一些关于分页的东西,当时fc说分页有点像文件系统,现在才越想越觉得有道理。后知后觉了一些,呵呵 :)