浅谈多进程与虚拟内存的机制与策略
背景
我不是科班出身,没学过操作系统原理,所以很长一段时间关于进程与内存都只有一个模糊的概念。每次提到进程的定义都会想起那些定义进程是程序运行的实例或者进程是资源封装的单位,每次谈起这个心底都很虚,因为我只会这么两句话,至于进程究竟是什么我并不理解,很多操作系统书籍上来就会从 PCB 分析,一下罗列出 PCB 中的各个成员,我看了就很懵。另外关于内存管理,很多操作系统书籍或者博客都会从分页讲起,但对于我这种不了解的人很容易陷入另外的疑问,就是分页是什么鬼,为什么要有分页。。
多进程与虚拟 CPU
我在项目中使用裸机开发比操作系统多,很多人觉得裸机很 LOW,我觉得不然,良好设计的裸机框架不比 RTOS 差,而且性能比 RTOS 好,但这只限于有良好设计的裸机代码,遗憾的是很少裸机代码能够设计出非常棒的代码框架,我见过裸机代码设计的清晰明了,扩展性,稳定性都非常棒的,也见过用 switch case
语句写了近 3000 行代的 C 函数,这种代码简直要命。这里不是说上了操作系统应用就一定有很好的架构设计,代码质量的好坏只和写代码的人有关,与在什么环境下写代码没关系。一般情况下裸机的代码会有一个死循环,在中断中更新状态,在循环体中做条件判断并执行相应的处理。例如下面这样:
int main(void