没有操作系统程序怎么样执行?
1、51单片机通常是没有操作系统的,称为裸机运行 ,即程序从main函数开始在while(1)内顺序执行,直到函数执行完自动退出,在没有定时器中断等外部干扰下;
2、这就会产生一个问题,例如按键按下时,程序会检测其有没有松开操作,就会产生阻塞,这时候如果你让另一个 LED每500ms闪灭,就会看到LED不闪了 ,是因为程序在检测按键松开那里阻塞住了!!!
引入操作系统带来的好处 :
1、操作系统其实就像道路上的交通灯 ,当程序中有多个进程执行时 就像公路上在行驶的汽车 ,交通灯是一个合理协调交通的指示灯,管理这些汽车有序有规则地行使,而减少交通拥堵,那么在我们的程序中也是一样的,操作系统分配给每个进程不同的时间片,可由管理者根据任务需要执行的 时间大小合理分配时间片 ,例如 按键可以每10ms检测一次,就分配10000个Tick即10ms的时间片,同样,如果我们需要每500ms读一次温度,那么我们可以分配50ms的时间片让给温度读取器,累积十次再去读取温度,如果在进程运行中时间片结束则需要保存上下文、PC程序计数器所指向的 地址到
进程管理器TCB,其实是一张记录 进程执行状态等信息的表,当下一次需要执行当前进程时,会查阅此表,切换到上次跳出时的位置;
2、而且,每个进程都可以分配不同的优先级,来决定进程 的先后执行顺序 ,而且还有状态机来管理进程,分别有就绪态、挂起态、运行态、睡眠态,来决定进程是否具备运行的条件,若不具备就绪态则 直接跳过,执行下一个进程 ,可以看到由于有操作系统的管理 ,程序在执行是 时 就好像是并发一样,似乎在同一时间内有多个进程在执行,如果CPU是单核处理器其实是假 并发,只是在微观时间内 顺序执行,在宏观时间看似 是并发执行 ,但是对于实时操作系统 来说 只要时间片分配合理 ,优先级配置合理 ,进程 就可以 相互独立的运行 而不会影响 相互的执行 ,因为这些影响是很微小的,是微观上的延迟 ,就如LED的闪动、LCD的刷新等,眼睛 不能分辨30帧 以上的 图片刷新率,只要延迟很细微,我们的人眼就很难分辨出来;
谢谢观看!!