我想了解一些应用示例,其中需要使用RTOS才能确保工作系统。
我做了一些谷歌搜索和我发现的任何例子,我觉得可以使用Windows或Linux系统实现。
答案 0 :(得分:1)
RTOS和GPOS之间的主要区别在于RTOS可确保确定性响应。也就是说,对事件的最坏情况响应时间是精确限制的(并且通常很快)。 GPOS通常在“平衡负载”的基础上调度进程 - 它假定所有进程和事件具有同等重要性,并且将被分配给处理器资源的“公平”份额。出于这个原因,当一个进程拥有CPU时,除非它产生“协同”,否则它将在其时隙期间单独使用CPU(假设单核 - 多核处理器允许真正的并发,但GPOS仍然分配平衡负载的核心)。时隙可能是几十毫秒,服务特定进程所花费的时间在很大程度上取决于同时需要CPU时间的进程数。在实现内核级驱动程序之外,在GPOS中实现几十微秒(或更少)的时序约束是不可能的(或者是不可取的)。
如果您的应用程序是Microsoft的市场营销用于调用“软”实时(即根本不是实时)GPOS可能适合的应用程序。 Linux可以通过“实时”调度支持构建,但它并不能真正使Linux适合大量“硬”实时任务,并且它在大多数情况下仍然是“软”的意义上将满足最后期限,但在一些异常情况下它可能会失败。如果那是你的医疗生命支持系统,你可能不想信任它!
作为尝试在失败的GPOS上运行基本上实时任务的一个例子,几年前当MMX指令被添加到奔腾处理器(通常在60MHz运行)时,有人明白了“主机信号处理” “,一种应用于通过在PC上执行信号处理而不是在调制解调器硬件中使用专用处理器或DSP来降低PSTN调制解调器(拨号)成本的方法 - 这些”调制解调器“根本不是真正的调制解调器;它们是调制解调器软件的电话接口和数字转换器。当时我在一家生产PSTN调制解调器测试设备的公司工作,我们尝试了其中一种早期的HSP调制解调器,直到你启动Microsoft Word(或几乎任何大型应用程序),它会立即断开连接。随着个人电脑变得更快,情况有所改善,但重点是它无法保证工作 - 它只是主要是。
我所研究的另一个例子是食品包装中的纸箱装载机。将产品插入纸箱中,施加胶条,并将盖子折叠。在这个过程中纸箱不断移动,胶枪的时间是至关重要的 - 胶条在一米以内的精确到1毫米内移动,需要在1毫秒内完成。
另一个例子是例如在数字电话中使用的TDMA通信。这种通信为每个站的传输分配一个时隙,并且在准确的时隙中无法传输,或者侵入另一个站的时隙是不可接受的。这些系统全局同步到原子钟精度(通常从GPS接收器获得)。例如,GSM时隙为577微秒,此时,发射机必须提升发射机功率,传输数据并减速
简而言之,任何需要100%确定性时序的示例都需要RTOS。如果你的时间限制是> 100毫秒,并且可以容忍无法满足时序的小概率,那么GPOS可以全部或大部分时间工作。如果时序约束是亚毫秒或者失败的成本或后果是不可接受的,那么RTOS是合适的。