当我们听到“操作系统”一词时,首先想到的是我们在日常生活中体验使用的操作系统,例如Windows XP,Linux,Ubuntu,用于计算机系统的Windows 7,用于移动电话的Android等更多 。我们主要知道操作系统是用于计算机的。事实上,大多数数字电子设备都在内部运行某种操作系统。也有许多针对微控制器开发的操作系统。但是在这里它被称为实时操作系统。短语“ REAL TIME”表示操作系统的响应很快。微控制器没有太多的代码空间。因此,操作系统的扩展范围较小。他们试图至少为小型系统提供最小范围的线程,调度和监视多个任务的范围。
通常,实时操作系统是整个程序的一部分或一部分,它决定下一个任务,任务优先级,处理任务消息并协调所有任务。 RTOS是一个复杂的概念。我想讨论一下状态机的概念。这是一个可以轻松地称为状态机的实现。
while(1)
switch(state)
{ case 1: //Code for Task 1;
state= 2;
case 2: //Code for Task 2;
state= 3;
case 3: //Code for Task 3;
state= 4;
case 4: //Code for Task 4;
state=1;
}
从代码中可以看到,可以更改执行顺序。它可以进一步修改并变得复杂。程序员可以修改和放置决策语句(如if,if-else,switch-case)来切换任务。并且可以逻辑地确定执行流程。
实时操作系统处理一些要运行的任务或例程。操作系统的内核会在一段时间内将CPU的注意力分配给特定任务。它还会检查任务优先级,根据任务和计划安排消息。
RTOS的基本功能是:
排程器
实时操作系统服务
同步和消息传递
调度程序
任务可以具有三种状态。
准备运行:当任务具有所有资源要运行,但没有处于运行状态时。这就是准备运行的任务。这是跑步前的状态。
正在运行–执行任务时。它被称为运行。
已阻止-当任务没有足够的资源来运行时,任务将被发送到已阻止状态。
为了安排任务,采用了三种技术。
合作调度:在此方案中,任务一直运行到完成执行为止。
循环调度:在此方案中,为每个任务分配了固定的时隙。该任务需要完成其执行。否则,任务可能会丢失其流程,并生成数据,或者将不得不等待下一轮。
抢占式调度:此调度方案包括优先级相关的时间分配。通常在程序中,通常使用256个优先级。每个任务都分配有唯一的优先级。虽然某些系统可能支持更高的优先级级别,但多个任务可能具有相同的优先级。
内核负责任务。它涉及以下内容
创建任务
删除任务
更改任务的优先级
更改任务状态
实时操作系统服务
每个操作系统的心脏都称为“内核”。 重现了监视硬件的任务。 内核负责管理和分配资源。 由于任务无法一直吸引CPU的注意力,因此内核还必须提供更多服务。 这些包括
中断处理服务
时间服务
设备管理服务
内存管理服务
投入产出服务
讯息传递
消息传递提供了与其他系统以及任务之间的通信方式。 消息传递服务包括
信号量
事件标志
邮箱
管子
消息队列
信号量用于同步对共享资源(例如公用数据区域)的访问。 事件标志用于同步任务间活动。 邮箱,管道和消息队列用于在任务之间发送消息。
操作系统诞生于第一代计算机,并且随着时间的推移不断发展。在本章中,我们将讨论一些最常用的重要操作系统类型。
批处理操作系统
批处理操作系统的用户不直接与计算机交互。每个用户都在打孔卡等脱机设备上准备工作,并将其提交给计算机操作员。为了加快处理速度,将具有类似需求的作业一起批处理并成组运行。程序员将其程序留给操作员,然后操作员将具有类似要求的程序分批处理。
批处理系统的问题如下-
用户与工作之间缺乏互动。
CPU通常处于空闲状态,因为机械I / O设备的速度比CPU慢。
难以提供所需的优先级。
分时操作系统
分时是一种使位于不同终端的许多人同时使用特定计算机系统的技术。分时共享或多任务处理是多程序设计的逻辑扩展。同时在多个用户之间共享的处理器时间称为分时。
多程序批处理系统和分时系统之间的主要区别在于,对于多程序批处理系统,目标是最大程度地利用处理器,而在分时系统中,目标是最小化响应时间。
CPU通过在多个作业之间进行切换来执行多个作业,但是切换如此频繁地发生。因此,用户可以立即收到响应。例如,在事务处理中,处理器以短脉冲或计算量执行每个用户程序。也就是说,如果存在n个用户,则每个用户可以获得一个时间量。用户提交命令时,响应时间最多为几秒钟。
操作系统使用CPU调度和多重编程为每个用户提供一小部分时间。主要设计为批处理系统的计算机系统已被修改为分时系统。
分时操作系统的优势如下-
提供快速响应的优势。
避免重复软件。
减少CPU空闲时间。
分时操作系统的缺点如下-
可靠性问题。
用户程序和数据的安全性和完整性问题。
数据通讯问题。
分布式操作系统
分布式系统使用多个中央处理器为多个实时应用程序和多个用户提供服务。数据处理作业相应地分布在处理器之间。
处理器通过各种通信线路(例如高速总线或电话线)相互通信。这些被称为松耦合系统或分布式系统。分布式系统中的处理器的大小和功能可能有所不同。这些处理器称为站点,节点,计算机等。
分布式系统的优点如下-
使用资源共享工具,一个站点的用户可能能够使用另一站点的可用资源。
通过电子邮件加快彼此之间的数据交换。
如果一个站点在分布式系统中发生故障,则其余站点可能会继续运行。
为客户提供更好的服务。
减少主机上的负载。
减少数据处理中的延迟。
网络操作系统
网络操作系统在服务器上运行,并为服务器提供管理数据,用户,组,安全性,应用程序和其他联网功能的功能。网络操作系统的主要目的是允许网络中的多台计算机(通常是局域网(LAN),专用网络或其他网络)之间共享文件和打印机访问。
网络操作系统的示例包括Microsoft Windows Server 2003,Microsoft Windows Server 2008,UNIX,Linux,Mac OS X,Novell NetWare和BSD。
网络操作系统的优点如下-
集中式服务器非常稳定。
安全性由服务器管理。
新技术和硬件的升级可以轻松地集成到系统中。
可以从不同位置和类型的系统远程访问服务器。
网络操作系统的缺点如下-
购买和运行服务器的成本很高。
大多数操作都依赖于中心位置。
需要定期维护和更新。
实时操作系统
实时系统定义为一种数据处理系统,其中处理和响应输入所需的时间间隔非常短,以至于它可以控制环境。系统响应输入和显示所需的更新信息所花费的时间称为花费的时间响应时间。因此,与在线处理相比,该方法的响应时间非常短。
当对处理器的操作有严格的时间要求或数据流时,可以使用实时系统,并且可以将实时系统用作专用应用程序中的控制设备。实时操作系统必须具有定义明确的固定时间约束,否则系统将发生故障。例如,科学实验,医学成像系统,工业控制系统,武器系统,机器人,空中交通管制系统等。
有两种类型的实时操作系统。
硬实时系统
硬实时系统可确保关键任务按时完成。在硬实时系统中,辅助存储空间有限或丢失,数据存储在ROM中。在这些系统中,几乎找不到虚拟内存。
软实时系统
软实时系统的限制较少。关键实时任务的优先级高于其他任务,并保持优先级直至完成。软实时系统比硬实时系统具有有限的实用性。例如,多媒体,虚拟现实,海底勘探和行星漫游车等高级科学计划等。
Windows是用于各种活动的理想通用操作系统。但是,为确保每个服务,应用程序,任务,线程和消息均迅速,一致地执行,则需要Windows实时操作系统。
多任务和多线程是通用操作系统中的核心概念,但是它们在RTOS中的处理方式有所不同。一个RTOS允许程序员控制方案内容,他们喜欢怎么排队至上,以及系统的行为时忙。结果是严格的响应和数据处理。
什么时候需要Windows RTOS?
大多数Windows实时操作系统应用程序可分为两大类:事件响应控制和闭环控制。事件响应应用程序的一个很好的例子是制造业中使用的质量控制应用程序,其中相机用于对制造零件以及装配线进行成像,而光学识别用于识别缺陷。这些应用程序旨在识别复杂事件并触发立即采取的措施。
闭环控制解决了持续的控制和监视。一个很好的例子是冷却系统,它连续测量流量和压力,以动态地调节阀的设置并保持在设定的极限内。
此外,物联网(IoT)引入了一套新的操作系统和软件,这些操作系统和软件集成在一起,使操作和管理变得更加轻松和快捷。Windows RTOS集成了两个系统以增强功能和效率。通过利用实时决策和处理组件,嵌入式系统变得更加智能。因此,实时系统正迅速成为网络管理员和程序员的必备工具。
Windows RTOS的缺点
甲视窗RTOS紧密结合和定制以旁路的通用操作系统的细节如Windows。这意味着在编写运行Windows实时操作系统的软件时,必须以严格的精度故障编写,否则很容易导致硬件故障。除非您了解软件语言,否则用于编写RTOS的复杂算法可能很难破解。而且,由于用于组合RTOS的资源,它们往往会非常昂贵。对于某些需要该软件的人来说,成本可能是一个限制因素。
RTOS旨在选择高优先级任务并首先关注它们。这意味着该软件的多任务处理能力很低,这对于必须同时执行许多任务的行业来说可能是一个重大缺点。尽管它提高了功能和效率,但由于线程优先级低,它可能不是最佳的多线程系统。
Windows实时操作系统是功能强大的工具,可增强医疗中心等关键任务设置的一致性。但是,如上所述,它们是针对每种任务和环境而设计的。在投资之前,评估您的工业环境并确定Windows RTOS的使用如何可以提高您的功能和效率非常重要。