Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Литература / sys_arch

.pdf
Скачиваний:
1348
Добавлен:
02.04.2015
Размер:
3.14 Mб
Скачать

List of Figures

Conventional executives offer no memory protection.

 

7

 

In a monolithic OS, system processes have no protection.

7

 

A microkernel provides complete memory protection.

 

7

 

The QNX Neutrino architecture.

8

 

 

 

 

 

 

The QNX Neutrino microkernel.

15

 

 

 

 

 

 

QNX Neutrino preemption details.

17

 

 

 

 

 

Sparse matrix (tid,key) to value mapping.

 

21

 

 

 

Possible thread states.

22

 

 

 

 

 

 

 

 

The ready queue.

25

 

 

 

 

 

 

 

 

 

Thread A blocks; Thread B runs.

26

 

 

 

 

 

 

FIFO scheduling.

27

 

 

 

 

 

 

 

 

 

Round-robin scheduling.

27

 

 

 

 

 

 

 

 

A thread’s budget is replenished periodically.

 

29

 

 

 

A thread drops in priority until its budget is replenished.

29

 

A thread oscillates between high and low priority.

30

 

 

Interrupt handler simply terminates.

 

45

 

 

 

 

 

Interrupt handler terminates, returning an event.

46

 

 

Stacked interrupts.

47

 

 

 

 

 

 

 

 

Changes of state for a client thread in a send-receive-reply transaction.

54

Changes of state for a server thread in a send-receive-reply transaction.

55

A multipart transfer.

56

 

 

 

 

 

 

 

 

Scatter/gather of a read of 1454 bytes.

57

 

 

 

 

 

Connections map elegantly into file descriptors.

60

 

 

Pulses pack a small payload.

61

 

 

 

 

 

 

 

Threads should always send up to higher-level threads.

63

 

A higher-level thread can “send” a pulse event.

 

64

 

 

 

The client sends a sigevent to the server.

65

 

 

 

Signal delivery.

67

 

 

 

 

 

 

 

 

 

Arguments to mmap().

75

 

 

 

 

 

 

 

 

Instrumentation at a glance.

90

 

 

 

 

 

 

 

The IDE helps you visualize system activity.

 

93

 

 

 

Virtual address mapping (on an x86).

 

115

 

 

 

 

 

Full protection VM (on an x86).

118

 

 

 

 

 

 

The SCOID and FD map to an OCB of an I/O Manager.

126

 

October 16, 2008

List of Figures xi

2008, QNX Software Systems GmbH & Co. KG.

Two processes open the same file. 127

A process opens a file twice. 128

Object file format: linking view and execution view. 133

Process memory layout on an x86. 134

A resource manager is responsible for three data structures. 146 Multiple clients opening various devices. 147

Encapsulation. 148

QNX Neutrino filesystem layering. 153

ETFS is a filesystem composed entirely of transactions. 158 The io-char module is implemented as a library. 177 Device I/O in QNX Neutrino. 178

Conditions for satisfying an input request. 180

Pseudo-ttys. 184

A detailed view of the io-pkt architecture. 190

A simple network where the client and server reside on separate machines. 198 A client-server message pass across the network. 200

Qnet and a single network. 203

Qnet and physically separate networks. 204

The io-pkt suite and its dependents. 212

Embedded web server. 216

Static partitions guarantee that processes get the resources specified by the system designer. 237

Without adaptive partitioning, a DOS attack on one process can starve other critical functions. 241

With scheduler partitions, a DOS attack is contained. 242

Photon regions. 248

Opaque regions are clipped out. 251

High-level view of the MME components. 271

MME architecture showing mme and qdb resource managers. 275

xii

List of Figures

October 16, 2008

About This Guide

October 16, 2008

About This Guide xiii

2008, QNX Software Systems GmbH & Co. KG.

What you’ll find in this guide

What you’ll find in this guide

The System Architecture guide accompanies the QNX Neutrino realtime OS and is intended for both application developers and end-users.

The guide describes the philosophy of QNX Neutrino and the architecture used to robustly implement the OS. It covers message-passing services, followed by the details of the microkernel, the process manager, resource managers, the Photon microGUI, and other aspects of QNX Neutrino.

Note that certain features of the OS as described in this guide may still be under development for a given release.

For the latest news and information on any QNX product, visit our website (www.qnx.com). You’ll find links to many useful areas — Foundry 27, software downloads, featured articles by developers, forums, technical support options, and more.

The following table may help you find information quickly:

To find out about:

Go to:

OS design goals; message-passing IPC

The Philosophy of QNX Neutrino

System services

The QNX Neutrino Microkernel

Sharing information between processes

Interprocess Communication (IPC)

System event monitoring

The Instrumented Microkernel

Working on a system with more than one processor

Multicore Processing

Memory management, pathname management, etc.

Process Manager

Shared objects

Dynamic Linking

Device drivers

Resource Managers

Image, RAM, QNX 4, DOS, CD-ROM, Flash, NFS,

Filesystems

CIFS, Ext2 filesystems

 

Serial and parallel devices

Character I/O

Network subsystem

Networking Architecture

Native QNX Neutrino networking

Native Networking (Qnet)

TCP/IP implementation

TCP/IP Networking

Fault recovery

High Availability

Sharing resources among competing processes

Adaptive Partitioning

continued. . .

October 16, 2008

About This Guide xv

Typographical conventions

2008, QNX Software Systems GmbH & Co. KG.

 

To find out about:

Go to:

 

 

 

 

 

Graphical environment

The Photon microGUI

 

Multimedia Engine (MME)

Multimedia

 

Terms used in QNX documentation

Glossary

For information about programming in Neutrino, see Getting Started with QNX Neutrino: A Guide for Realtime Programmers and the Neutrino Programmer’s Guide.

Typographical conventions

Throughout this manual, we use certain typographical conventions to distinguish technical terms. In general, the conventions we use conform to those found in IEEE POSIX publications. The following table summarizes our conventions:

Reference

Example

Code examples

if( stream == NULL )

Command options

-lR

Commands

make

Environment variables

PATH

File and pathnames

/dev/null

Function names

exit()

Keyboard chords

Ctrl-Alt-Delete

Keyboard input

something you type

Keyboard keys

Enter

Program output

login:

Programming constants

NULL

Programming data types

unsigned short

Programming literals

0xFF, "message string"

Variable names

stdin

User-interface components

Cancel

We use an arrow () in directions for accessing menu items, like this:

You’ll find the Other... menu item under PerspectiveShow View.

We use notes, cautions, and warnings to highlight important messages:

xvi

About This Guide

October 16, 2008

2008, QNX Software Systems GmbH & Co. KG.

Technical support

 

Notes point out something important or useful.

!

CAUTION: Cautions tell you about commands or procedures that may have

unwanted or undesirable side effects.

WARNING: Warnings tell you about commands or procedures that could be dangerous to your files, your hardware, or even yourself.

Note to Windows users

In our documentation, we use a forward slash (/) as a delimiter in all pathnames, including those pointing to Windows files.

We also generally follow POSIX/UNIX filesystem conventions.

Technical support

To obtain technical support for any QNX product, visit the Support + Services area on our website (www.qnx.com). You’ll find a wide range of support options, including community forums.

October 16, 2008

About This Guide xvii

Chapter 1

The Philosophy of QNX Neutrino

In this chapter. . .

Design goals

3

 

 

 

Why QNX Neutrino for embedded systems?

5

Microkernel architecture

6

 

 

Interprocess communication

 

10

 

Network distribution of kernels

11

 

October 16, 2008

Chapter 1 The Philosophy of QNX Neutrino 1

Соседние файлы в папке Литература