绪论
在开始设计操作系统之前,我们先来说下何为操作系统,操作系统的目的是什么,其优势和缺点有哪些?
操作系统对于大部分人来说都不陌生,大到互联网分布式操作系统,小到家用电器嵌入式操作系统,当然平时我们了解的最多的还是Windows和Linux发行版操作系统。这些操作系统虽然有很多地方差异很大,但是其本质的区别都是一样的,即任务或者后面我们叫做线程或者进程的管理一种系统软件,最大的区别就是其结构的规模以及对硬件平台的要求不同。
大部分人都使用过51,AVR或者STM32以及面向移动应用的Cortex-A系列的微控制器或者SoC,然而对于微控制器来说,很多时候没有使用操作系统,而是用一个大的循环或者前后台方式(基于中断)实现大部分应用,但是对于绝大部分应用而言,其执行的速度并不是非常高,不需要处理器一直去执行,这时我们就需要使用延时来解决,比如在数码管或者液晶屏显示的时候,我们不需要时刻去刷新屏幕,我们只需要屏幕的更新速度达到最基本的24Hz或者50Hz基本能满足我们的视觉要求,因此可以看到很多时候我们需要用延时来放慢这一过程,但是对于微控制器而言,1ms其实是一个很长的时间,这个时间足以让微控制器干很多事情。可以看到我们不使用任何机制的情况下会让为微控制器浪费很多资源,这是我们不希望看到的结果,因此,我们必须采取新的方式来解决这一点资源的浪费。
操作系统最本质的目的就是要让处理器的资源的利用率达到最大,当然操作系统还有一个目的就是让后期的管理变得更加方便(维护性更好)。实际上几乎任何事情都有好和坏,操作系统本质上是一个程序,那个这个程序要执行必然需要占用处理器资源,但是我们最终的目的是解决实际的问题(这里问题是指业务代码),这样操作系统的设计就不再是一个简单的设计工作,而是一个动态的规划设计。
为了调度器设计的简单化,我们使用的硬件是Atmega128,下面我们开始设计我们的嵌入式操作系统!