“是兄弟才不想害你。”陈星太了解这家伙,不玩游戏都这样了,要是玩起游戏那不彻底废了。
“扫兴。”李进终于出了办公室。
这下世界总算安静了。陈星一边下载电影,一边继续翻看那本《RTOS移植注意事项》。
软件不能独立于硬件存在,离开硬件的软件就是一堆死的字符。但是没有软件的硬件就是一堆废铁。
而保障软件正常运行的前提就是操作系统。
操作系统有很多种。
Windows和Linux属于大型操作系统,适用于比较复杂的场景。而那些业务逻辑单一的场景,并非就不需要操作系统。
于是小型化的嵌入式操作系统应运而生。
以智能小车为例。
即便看起来小车的逻辑很单一,但其实也有不少任务需要同时运行。
比如:
差速控制任务。用于控制小车的方向和速度。
自动巡径任务。用于控制小车的行进轨迹。
自动避障任务。用于控制小车躲开障碍物。
其余诸如还有:运行日志记录任务、运行状态监测任务。
要让小车正常运行,就必须让这些任务互相配合。那么问题就来了,任务之间该如何配合。
由于单片机是单核的,一个核心类似就是一个工人。那很显然,一个人同时只能干一件事情,也就是同时只有一个任务能被执行。在这个任务被执行的时候,其余任务只能等待。
即便是眼下多核心的电脑CPU也会面临这个问题,因为即便是多核心,但是电脑面临的任务数量更多。一个游戏或是播放一部电影,就会有好多个任务。这个任务的概念并非是人脑理解的一件事情,而是计算机层面的理解。
比如:一个最普通的网络游戏。
电脑看似只是在执行网游这一个任务。但是网游其实是由:界面渲染任务、声音播放任务、鼠标和键盘响应任务、一堆的网络数据交互任务组成的。
最好的证明就是打开电脑的任务管理器。
即便对电脑什么都不做,那里头也有一堆的进程。
所以单片机也一样。小车看似只是执行行驶这一个任务,但事实上背后却有一堆任务。
只要同时执行的任务数量大于CPU的核心数量,那就会存在任务抢占的问题。
说白了就是活多人少,那这个人就得一会儿干任务A,一会儿又去干任务B。这种现象几乎每时每刻都在计算机世界发生着。
代表CPU的这个人,是不能干完任务A后再去干任务B的。
再以智能小车为例。
差速控制需要的是持续不停地控制,否则小车的速度就会混乱。
自动巡径和自动避障任务也是一样,要是一段时间得不到执行,小车要么偏离轨迹,要么就是撞墙。
所以,操作系统的工作其实就是解决一个人能同时干多件活的问题。
陈星翻阅着资料,喃喃着,“RTOS。”
OS对应的operating system概念,他已经弄明白了。可还有RT呢,如果仅仅是让任务得到执行,那就叫OS就行,何必还要加上RT,real time的前缀。
陈星继续向后翻阅资料。