QNX基础教程

本文详细介绍了QNX操作系统的基础知识,包括其实时系统特性、微内核架构、进程调度和通信机制。QNX采用微内核设计,实现高效的多任务管理和上下文切换。微内核负责进程间通信、网络管理和设备驱动,支持消息、代理和信号等多种通信方式。此外,文章还探讨了QNX的进程管理、文件系统、设备驱动以及网络管理器的功能和API,强调了其在实时性和模块化方面的优势。
摘要由CSDN通过智能技术生成

体系结构

QNX具有实时系统的基本特征

  • 多任务
  • 基于优先级的抢占式调度
  • 快速的上下文切换

QNX是通过如下两个基本原理实现它独特的高效性、模块化和简易性

  • 微内核(microkernel architecture)
  • 基于消息的进程间通信(message-based interprocess communication)

QNX的微内核概述

qnx有一个非常高效的微内核,它负责管理一组同时工作的进程。   

QNX微内核是个真正的微内核。首先,它非常小;其次,它的两个重要的任务是:

  • 消息传递:处理操作系统所有进程间的消息传递  
  • 任务调度:当进程的状态改变或者中断发生时进行调度  

QNX的系统进程包括  

  • ProcessManager(Proc)——进程管理器  
  • FilesystemManager(Fsys)——文件系统管理器  
  • DeviceManager(Dev)——设备管理器  
  • NetworkManager(Net)——网络管理器  

    除此之外,用户自定义进程(如inetdftp„)、设备驱动(如串、并口)等等。  

QNX的微内核体系

 QNX微内核的“软总线”体系结构(像硬件一样可“热插拔”)

 

QNX微内核负责如下任务

  • 进程间通信(IPC)——微内核监督消息的路由(传递);同时还管理另外两种形式的IPC:代理(proxy)和信号(signal)
  • 低级网络通信(low-level network communication)——微内核负责不同节点间消息的分发
  • 进程调度(process scheduling)——微内核调度器决定接下去哪一个进程将会执行
  • 一级中断处理(first-level interrupt handling)——所有的硬件中断和故障都将在第一时间路由到微内核然后传递到适当的驱动或系统管理器。  

进程间通信IPC

QNX支持三种基本的IPC消息、代理和信号。  

  • 消息(Message)——QNX最基本的IPC,提供进程间同步通信,发送者和接收者有应答
  • 代理(proxy)——消息的一种特殊形式,非常适合事件通知,发送者不用和接收者进行交互
  • 信号(signal)——IPC的一种传统形式,通常用于支持异步IPC。  

 1.基于消息(Messages)的IPC  

    发送者必须得到接收者的应答,否则进程将被阻塞。也就是说,这种通信是同步通信。  

    函数原型

  •    Send()——发送消息
  •    Receive()——接收消息
  •   Reply()——给发消息者回消息(应答) 

2.基于代理(proxies)的IPC

代理(proxy)是一种非阻塞性的消息机制,特别适合进行事件通知,发送进程不需要和接收进程进行交互。  

使用代理的一些情况  

    评论 1
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值