通信人家园

 找回密码
 注册

只需一步,快速开始

短信验证,便捷登录

搜索

军衔等级:

  二级通信军士

注册:2014-4-1416
跳转到指定楼层
1#
发表于 2019-7-14 11:00:36 |只看该作者 |倒序浏览
实时操作系统并非“实时”那么简单
文 | 步日欣
一句话要点精读:此次中美贸易战中,美国举一国之力来对付华为一家公司,其策略的核心是打击中国的“核高基”战略。近日,任正非在接受专访时表示,鸿蒙操作系统,并不是为了手机用,而是物联网操作系统,比如自动驾驶、工业自动化。由此推断,鸿蒙是物联网操作系统,是一种实时操作系统。实时操作系统的“实时”,并非强调的响应速度的实时性,而是响应的确定性。即,某些任务,能够在可预知的时间内完成响应,这就是所谓的确定性
关于操作系统,相信大家既熟悉,又不熟悉。
说熟悉,是因为操作系统是我们操控一切电子设备必不可少的入口;说不熟悉,是因为操作系统种类繁多,我们所熟知的可能仅限于日常用的微软的Windows、谷歌的Android等。
本篇讨论操作系统的原因,是源于前几日任正非在接受《金融时报》专访时表示,(华为的)鸿蒙操作系统,本身并不是为了手机用,而是为了做物联网来用的,比如自动驾驶、工业自动化,因为它能够精确控制时延在五毫秒以下,甚至达到毫秒级到亚毫秒级。
此次中美贸易战中,美国举一国之力来对付华为一家公司,其策略的核心是打击中国的“核高基”战略。“核高基”,是指核心电子器件、高端通用芯片及基础软件产品,这三大类产品,历来是美国的优势领域。
作为“核高基”的核心领域之一,基础软件产品中,操作系统是最为重要的基础软件。微软的Windows、谷歌的Android、苹果的Mac OS,甚至Unix、基于开源Redhat……这些主流的通用操作系统,都是根植于美国的。
主流国产操作系统的缺失,一直是很多人痛心疾首的遗憾。此次华为在中美贸易战的大背景下站出来,扛起了自主操作系统的大旗,被很多人视为鼓舞人心之举。
但操作系统,知易行难,从来都不仅仅是一个技术问题,而是一个生态问题
华为自主开发的“鸿蒙”操作系统,一直没有浮出水面,曾给人无限的想象空间。但同时,要围绕一个全新的操作系统,构建形成完整的生态,也并非轻而易举之事。此次任正非的表态,就绕过了通用操作系统的坑,把“鸿蒙”操作系统定性成为物联网操作系统,毕竟在工业和物联网领域,要形成生态,会相对容易很多。
华为之前也不是没有物联网操作系统,LiteOS就是华为在2015年推出的一款物联网操作系统,支持了华为智能手机、可穿戴设备、物联网芯片等众多产品。
因为物联网操作系统属于轻量级的操作系统,应用领域相对来说又是一个封闭的环境,因此不过国内还是国际上,都有大批的厂商开发了各自的物联网操作系统。比如阿里的AliOS Things、谷歌的Andorid Things、ARM的Mbed OS等等。当然也包括一些物联网创业公司,针对物联网不同的应用场景,开发API接口友好的操作系统,比如门思科技的MP-OS、钛云物联的钛极OS等等。
任正非提到,华为操作系统反应很快,“达到毫秒级到亚毫秒级”,那更印证了“鸿蒙”是物联网操作系统,是一种实时操作系统(Real-time Operation System,RTOS)。
什么是实时操作系统?名字听上去很“神奇”,很有吸引力。一个操作系统,如果能达到实时的效果,不卡顿、不延迟、不死机、不需要清理垃圾,那将是一件多么有吸引力和令人神往的事情?
在讨论实时操作系统之前,我们先看看操作系统江湖,有多少种操作系统。前面提到过,操作系统是我们操控一切电子设备必不可少的入口,也就是说,有多少种类的电子产品,就有多少种类的操作系统。
比如我们或多或少了解到的MacOS、Windows、UNIX、Android、IOS、基于开源Linux开发出来的各种商业化操作系统、嵌入式操作系统……还有前文提到过的各种封闭领域的物联网操作系统……
从分类角度来看,操作系统主要包括:批处理操作系统、通用操作系统、分时操作系统、实时操作系统、网络操作系统、分布式操作系统、嵌入式操作系统、云计算操作系统……
当然,以上分类的维度是杂乱的,比如批处理操作系统、分时操作系统和实时操作系统属于一个维度,是从计算资源的调度、任务执行的角度进行分类;通用操作系统和嵌入式操作系统属于一个维度,是从设备的通用性和专营性角度进行分类;网络操作系统、分布式操作系统和云计算操作系统又是一个维度,是从算力角度进行的分类……
本文重点关注的实时操作系统,真实情况可能会让你失望,其实强调的并不是实时性。我们知道,一台电子设备的响应速度,跟其运算能力最为相关。但运算能力是有限的,CPU也无法超负荷运行,而程序对负载需求是无限的,这也是我们电脑动不动就死机的主要原因,电脑的CPU满足不了那么多程序对算力的需求。
相信大家在用Windows的时候深有体会,特别是在我们传输大文件,或者下载的时候,想要此时进行其他操作,经常会引起计算资源的拥塞,从而引起电脑行动迟缓,甚至死机。
基于CPU算力的瓶颈,很明显,不可能出现一个理想化的操作系统,能让程序在并发状态下的执行实现“实时”。
因此,实时操作系统的“实时”,并非强调的响应速度的实时性,而是响应的确定性。即,某些任务,能够在可预知的时间内完成响应,这就是所谓的确定性。
确定性在一些领域至关重要,比如工业领域、自动驾驶领域、某些物联网领域等。设想一下,一辆汽车的控制系统,如果发生碰撞事故,人命关天,系统必须优先保证触发安全气囊的响应快速执行,不能出现延迟,更不能关键时刻死机。
实时操作系统和分时操作系统的本质区别,体现在对不同程序、任务、进程、线程对有限CPU的调度上。
分时操作系统采用的是一种比较公平的策略,即时间片轮转,计算机把CPU的运行时间分成很短的时间片,轮流把时间片分配给不同的进程使用。
而实时操作系统则采用优先级策略,即抢占式,不同进程被分配了不同的优先级,当高优先级进程出现时,计算机可以中断当前运行的进程,并将CPU的使用权交给进入就绪态的优先级更高的进程。
因此,基于优先级的实时操作系统只体现在CPU调度方式的不同,但是各种进程之间的优先级,也是需要科学的设计,一旦优先级混乱,CPU调度处理不好,也会产生系统崩溃、死机等严重后果。
当然,也不一定说物联网操作系统就一定是抢占式实时操作系统。在资源调度上,抢占式保证任何时刻让优先级高的进程优先运行,并中断正在进行中的进程。要实现这个目的,必须相应增加处理机的调度,既要保留中断进程的现场,又要为新进程分配新的空间,系统运行开销增大,牺牲的是效率和功耗。
因此,实时与否,并不重要,物联网应用领域是一片星辰大海,适合的才是最好的

举报本楼

您需要登录后才可以回帖 登录 | 注册 |

Archiver|手机版|C114 ( 沪ICP备12002291号-1 )|联系我们 |网站地图  

GMT+8, 2024-4-24 09:25 , Processed in 0.128509 second(s), 15 queries , Gzip On.

Copyright © 1999-2023 C114 All Rights Reserved

Discuz Licensed

回顶部