前言
目前成熟的操作系统有很多,但随着版本的不断更新,以及日益增多的功能需求,操作系统的“体积”逐渐增大,对于我这种只想了解其原理的人来说很不友好(尤其是那一堆宏,你都不知道有没有用,也不清楚在哪预定义了)。于是便跟着各路大神,结合实际情况,糅合了一个简化版的“操作系统”,时隔较久,已忘记都参考哪了,在此只是记录。
原理
所有的C语言代码,最后转化为二进制的指令码,实际上都是操作寄存器和内存在一定条件下交换指定的数据。在操作系统中,每个任务拥有自己的内存(栈),但寄存器只有一份(所有任务共享一套硬件寄存器),因此操作系统的实质为:引导任务有序的分时复用寄存器。
这里的分时复用,和中断服务不能说及其相似,只能说“一模一样”。
*中断的执行流为
任务执行--->中断请求--->保护现场--->响应中断--->恢复现场--->任务执行。
*任务的切换流为:
任务1执行--->切换请求--->保护任务1栈--->查找任务--->恢复任务2栈--->执行任务2。
这不就中断的拓展版嘛,接下来我们实现这个流程。
千里之行,始于足下。流程有了,接着我们把环境搭起来,这里先介绍寄存器。
</