GPOS(普通通用操作系统)和RTOS(实时操作系统)的区别

本文的全部目的是概述GPOS(通用操作系统)或许多人称之为普通操作系统和RTOS(实时操作系统)之间的基本区别。让我们看一看。

GPOS和RTOS功能

图片由

使用GPOS或实时操作系统的基本区别在于系统的性质,即系统是否是实时操作系统“时间至关重要”不信!一个系统可以有一个目的,也可以有多个目的。“时间关键系统”的一个例子是——自动柜员机(ATM)。在这里,ATM卡的使用者应该在按下确认按钮后的四五秒内从柜员机取钱。用户按下确认键后,不会在自动提款机前等5分钟。ATM是一个时间关键系统。而作为个人电脑(PC)不是一个时间关键系统。PC机的用途是多方面的。用户可以同时运行多个应用程序。在按下已完成文档的SAVE按钮后,没有特定的时间限制,文档应该在5秒内保存。 It may take several minutes (in some cases) depending upon the number of tasks and processes running in parallel. I hope you got the basic idea now!

gpo是用于不是时间关键的系统/应用程序。例子:-Windows, Linux, Unix等。

一个操作系统用于时间紧迫的系统。例子:-VxWorks, uCos等等。你可以在这里阅读一篇关于实时操作系统基本概念的好文章:-什么是实时操作系统.我们也可以说实时操作系统应该给出快速和可预测的响应。

现在让我们来看看GPOS和RTOS在工作上的区别。在深入研究之前,最好先读一下这篇文章Howstuffworks-关于操作系统

任务调度

让我们先以任务调度为例。在GPOS的情况下,任务调度并不总是基于“优先级”!GPOS被编程以这样一种方式来处理调度,从而实现高吞吐量。这里的吞吐量是指在单位时间内完成它们的执行的进程总数。在这种情况下,有时高优先级进程的执行会延迟,以服务5或6个低优先级任务。与服务一个高优先级任务相比,服务5个低优先级任务可以实现高吞吐量。在实时操作系统中,调度总是基于优先级。大多数实时操作系统采用基于优先级的抢占式任务调度方法。在这里,高优先级进程将在低优先级进程之上执行。所有“低优先级流程执行”会停了下来。只有当请求来自更高优先级的进程时,高优先级进程的执行才会被覆盖。

硬件和经济因素

一个实时操作系统通常设计为低端,独立的设备,如ATM,自动售货机,亭等。与GPOS相比,RTOS重量轻,体积小。GPOS是为个人电脑、工作站、服务器系统等高端通用系统而设计的。低端系统和高端系统的基本区别在于硬件配置。现在,个人电脑甚至智能手机都配备了高速处理器(在很多千兆赫范围内),大内存(在2或3 GB范围内,甚至更高)等。但嵌入式系统通常在较低的硬件配置下工作——速度在兆赫范围内,RAM在兆字节范围内。GPOS太笨重,需要非常高端的硬件配置。将RTOS移植到期望和功能有限的嵌入式系统是经济的(例如:ATM应该只做某些功能,如转账、取款、余额检查等)。因此,在硬件有限的ATM中使用实时操作系统更为合理。仅仅为了移植GPOS作为ATM的用户界面而改进ATM的硬件是不经济的。

延迟的问题

GPOS的另一个主要问题是无边界调度延迟,这是大多数GPOS都遇到的问题。要调度的线程越多,延迟就会增加!RTOS没有这样的问题,因为它中的所有进程和线程都有有限的延迟——这意味着——一个进程/线程将在指定的时间限制内执行。

抢占式内核

RTOS的内核是可抢占的,而GPOS内核是不可抢占的。当首先服务高优先级进程/线程时,这是一个主要问题。如果内核不可抢占,那么来自内核的请求/调用将覆盖所有其他进程和线程。例如:-来自驱动程序或其他系统服务的请求,它被视为一个内核调用,将立即覆盖所有其他进程和线程。在实时操作系统中,内核保持非常简单,只有非常重要的服务请求保留在内核调用中。所有其他服务请求都被视为外部进程和线程。所有这些来自内核的服务请求都与RTOS中的有限延迟相关联。这确保了RTOS的高可预测性和快速响应。

这些都是实时操作系统和GPOS之间的基本区别。我从嵌入式系统的角度写了这篇文章,分析了哪个操作系统更适合嵌入式系统。如果我们更进一步,有许多许多点要讨论,但这不在本文的范围之内。作为一个例子,我可以说,现在市场上的很多GPOS,都有了实时扩展,旨在解决GPOS在实时系统中的缺点。一些供应商甚至引入了双内核系统——一个内核为GPOS服务,另一个内核为实时系统服务。

作者

18评论

  1. Mythili

    我从这篇文章中得到了一个独特的信息。
    谢谢你

  2. praveen

    非常好的例子和解释。

  3. Rac

    真的有用。谢谢

  4. bhavinkatira@gmail.com

    从Linux 2.6开始;内核代码仍然是完全抢占的

  5. Prabhudev

    不错的文章,真的很有帮助

  6. Divyanand

    谢谢各位,这篇文章很有帮助,特别是对初学者。

    • gnanaprabu

      谢谢,了解gpos和rtos....之间的区别非常有用

Baidu