Введение в QNX/Neutrino 2. Руководство по программированию приложений реального времени в QNX Realtime Platform | страница 10



Спасибо Ким Фрейзер (Kim Fraser) за уже вторую прекрасную обложку для моей книги.

Отдельное спасибо Джону Острандеру (John Ostander) за его превосходные предложения по грамматике и внимательное чтение корректуры :-).

И, конечно, особую благодарность я хочу выразить моему редактору, Крису Херборту — за то, что он нашел время редактировать эту книгу, помогать мне иногда с применением мрачных SGML/LaTeX, умудряясь при этом еще делать дюжину вещей одновременно! («Ну я же тебя просил напомнить мне, чтобы я не делал так больше!» — цитата из Криса.)

Я также хотел бы выразить глубокую благодарность за поддержку и понимание моей жене Кристине за то, что она каждый раз терпела мое многочасовое торчание в подвале с полнейшим ее игнорированием!

Типографские соглашения

В тексте данной книги для обеспечения различимости технической терминологии используется ряд типографских соглашений. В целом, примененные здесь стандарты оформлении текстового материала соответствуют таковым в публикациях документов POSIX. Ниже в таблице приведены образцы принятых типографских соглашений.

Тип текстаПример оформления
Тексты программ>if (stream == NULL)
Опции команд>-lR
Команды>make
Переменные окруженияPATH
Файлы и имена путей>/dev/null
Имена функцийexit()
Комбинации клавишCtrl-Alt-Del
Клавиатурный ввод>Текст, который вы набираете
КлавишиEnter
Вывод программ>login:
Именованные константыNULL
Типы данных>unsigned short
Литералы>0xFF, "message string"
Имена переменныхstdin

Этот значок указывает на что-либо важное или полезное в тексте книги.

Глава 1

Процессы и потоки

Основные понятия о процессах и потоках

Прежде, чем мы начнем обсуждать потоки, процессы, кванты времени и другие замечательные «концепции диспетчеризации», давайте поговорим об аналогиях.

Сначала я хотел бы проиллюстрировать, как функционируют потоки и процессы. На мой взгляд, лучший способ (о глубинном изучении систем реального времени сейчас речь не идет) — это вообразить поведение наших потоков и процессов в некоторой привычной для нас обстановке.

Процесс как жилой дом

Давайте используем для построения аналогий о процессах и потоках объект, который мы используем повседневно — наш собственный дом.

Дом реально представляет собой контейнер с некоторыми атрибутами (общая площадь дома, число спален, и т.д.).

Если рассматривать жилой дом с этой точки зрения, он ничего не делает сам по себе. Дом — пассивный объект, в этом он аналогичен процессу. Поговорим об этом вкратце.