QNX-分布式实时操作系统初识

一、QNX系统概述

QNX是加拿大一个叫QNX Software System Ltd公司开发的分布式实时操作系统,类似于其他操作系统能运行在X86,、PowerPC、MIPS、ARM等CPU环境下。分布式,顾名思义,运行QNX系统的局域网上的每个用户都可使用该网络上任何资源,与使用自己本机资源无异。另一方面QNX又是一个实时操作系统,它提供优先级驱动的,抢占式的调度方式(时间片轮转)。同时QNX系统本身的开销小,上下文切换快,相比其他操作系统,在相同硬件基础上能给应用程序留下更大的余地。在一些时间敏感的应用领域有蛮大的市场份额。同时QNX是一个嵌入式的操作系统,具体而言,QNX架构由微内核和一组进程构成,可灵活裁剪,最小配置只需要十几个KB内存,因而在许多嵌入式设备上有广泛使用。QNX是一个符合POXIS标准和实时标准的操作系统,因此在移植性和可靠性有较好的表现。

1.1、操作系统简介

QNX在许多功能上和UNIX操作系统极为类似,既支持多个用户同时访问,也支持多个任务同时执行,既是一个多任务操作系统,也是一个多用户操作系统。现在出现和多处理器结构的计算机,随之出现了支持多处理器的操作系统体系结构。在多处理器操作系统的统一支配下,整个系统按照多指令方式实现作业,任务的并行执行,以提高系统的计算能力和速度。

多个进程在多个处理器上的并行处理才称为正真的同时执行,而在当初你上多任务系统中常说的“同时执行”,指的是,用户感觉上的同时执行,实际上是多个进程按照某种规则轮流占有CPU资源。对于后者我们常常称之为并发执行。QNX的RTOS版本提供了单处理器的操作系统,Neutrino版本可支持多处理器。

QNX运行在多台计算机组成的局域网上,它使得任何一台计算机的任何一个进程都可以和其他该局域网内的任何计算机上的任何进程通讯,就像与本机进程通信一样,它使得任何一个计算机的任何一个进程可以使用其他任何计算机上的资源,就像使用本计算机的资源一样。用户在这样的环境工作时,可以把任务分散到到网络中,交给任何计算机来完成,用户不会有任何差别,只是一台计算机可以使用更多资源而已,这样的操作系统叫做分布式操作系统。这样带来一个直接的好处,利用QNX操作系统,很容易建立高可用机制,将任务都安排到两台不同的计算机上去执行,只要两台机器不同时故障,任务总能完成。

我们从操作系统能否满足对时间敏感的应用来区分,把操作系统分为普通相等时间片轮转的分时操作系统-分时操作系统和用户可控制进程优先级的实时操作系统,分时操作系统的任务优先级由调度器自动计算优先级,主要考虑的是一个任务的公平性。实时操作系统主要体现在时间的可控性,以及提供了一些用户能够控制进程调度的手法。使得进程能够在规定的时间内执行完规定的任务,并能在执行任务的同时对外部异步事件做出响应。执行完规定的任务和响应外部事件所需要的时间长短是衡量系统实时性强弱的一个重要指标。在实时系统下用户可以自由支配实时应用,使得系统在资源有限下,尽可能支持更多的实时应用,榨干系统最后一滴资源。这就要求用户在设计进程任务优先级时候必须仔细斟酌。在实时性方面QNX的支持还算比较好的,它基本具备一个实时系统所需要的基本条件:多任务、优先级抢占式的任务调度方式、快速的上下文切换。允许用户根据需要实施特定设计,使得各种对实时性要求不一的应用在QNX系统得以良好的运行。

QNX的嵌入式性能。在嵌入式领域,出于对产品体积、成本、功耗等因素影响下,往往需要操作系统能占据较少的内存,这种系统被称为嵌入式系统。

QNX系统架构设计为一个微内核加上一些可裁剪的系统模块组成。QNX内核一般十几个KB,加上其他必要模块,占用资源相对很少了,且实时性、多任务的系统特性也得到保证(这点和ucos比较好像有点差距)。

二、QNX操作系统设计理念

大多数操作系统都有内核层和用户层。内核提供基本功能例如:文件系统、设备管理、进程管理、网络管理等。这些功能以系统调用API的方式提供给用户。系统内核不以进程方式工作,应用程序通过系统API请求内核服务,系统调用的API在内核态执行期间不进行进程调度,只有当它们从内核服务API退出时候,进程才被调度器调度。通常操作系统设计者规定哪些功能被放入内核。系统必须对内核调用进行保护,这需要硬件的支持,指定内核私有地址空间。一些特权指令只有在内核态才能执行,这就保证了系统安全。QNX-分布式实时操作系统初识_第1张图片

QNX被设计为由一个体积很小的内核加上一组系统管理的进程组成。各个管理器和其指挥者-内核之间都是可以操作的。同时,QNX提倡把一个任务划分为多个子任务。每个进程执行一个子任务。协同操作的进程完成整个任务。

QNX内核负责主要有:

1.进程间通信----代理、信号

2.低层的网络通信----节点之间的消息传递

3.进程调度

4.一级中断处理---中断从定向

QNX-分布式实时操作系统初识_第2张图片

如图所示,硬件触发中断,PC指针转到内核中断异常向量表,进行中断重定向再交由指定进程处理。


QNX系统服务进程主要有:进程管理器、文件系统管理器、设备管理器、网络管理器。



你可能感兴趣的:(操作系统,内核,QNX)