Слово о невидимом.
Софте.

Версия 2.1.4

© Copyright 2006 - 2010
Грибов Игорь,
e-mail: gribov@depni.sinp.msu.ru
http://vserv.sinp.msu.ru/invisiblebook/PMC_main.html

Изменения в версиях книги.
Авторское право.
Вступительное слово.
Малые замечания.
Критические разделяемые ресурсы.
Процесс пошел.
Сигнало-безопасная память.
Асинхронный клиент.
Регистрация событий, ошибок и статусов.
Динамические базы данных.
Достоинства ложного положения.
Обозначение основных типов данных.

Изменения в версиях книги.

Полная версия книги задается как версия.подверсия.выпуск.

Номер версии книги увеличивается при появлении новых разделов в виде отдельных документов (файлов). Подверсия увеличивается, когда в существующие документы добавляются новые главы. А при внесении любых правок в имеющиеся главы (изменение подверсии или выпуска разделов) увеличивается номер выпуска книги.

Версия 1.1.0. Завершено написание раздела «Асинхронный клиент».

Версия 1.2.0. Завершено написание раздела «Регистрация событий, ошибок и статусов».

Версия 1.3.0. Завершено написание раздела «Динамические базы данных».

Версия 2.0.0. Добавлен новый раздел «Достоинства ложного положения».

Версия 2.1.0. Добавлены новые главы в разделы «Критические разделяемые ресурсы» и «Сигнало-безопасная память».


Авторское право.

Авторское право на данную книгу устанавливается разделом VII «Права на результат интеллектуальной деятельности и средства индивидуализации» части четвертой Гражданского Кодекса Российской Федерации.

При использовании материалов книги целесообразно руководствоваться двумя основными правилами:

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

  2. Полное либо частичное использование любых материалов книги в коммерческих целях требует заключения дополнительного соглашения с владельцем авторского права.


Вступительное слово.

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

Все примеры алгоритмов и программ используют стандартный язык С1. Автор не дает никаких гарантий отсутствия ошибок, опечаток и оплошностей в примерах программ.

Книга подготовлена с использованием пакета OpenOffice.


Малые замечания.

Характеристика реального времени.
Счетчики.
Кольцевой буфер (FIFO).
Полное чтение данных.
Против микро-оптимизации.

Критические разделяемые ресурсы.

Критические ресурсы.
Семафоры.
Пример использования критических ресурсов.
Не атомарные семафоры.
Пример с не атомарными семафорами.

Сигнало-безопасная память.

Организация сигнало-безопасной памяти.
Программное решение.
Вариант с не атомарными семафорами и многопоточностью.

Процесс пошел.

О процессах с любовью.
Другим путем.
Программное решение.

Асинхронный клиент.

Задачи клиента.
Программное решение.

Регистрация событий, ошибок и статусов.

Свойства регистратора.
Программная реализация регистратора.

Динамические базы данных.

Базы данных для встроенных приложений.
Программная реализация неупорядоченного списка.
Упорядоченный массив с первичным ключем.
Упорядоченный массив с внешними ключами.

Достоинства ложного положения.

Управление объектом.
Алгоритм regula falsi.
Программа.

Обозначение основных типов данных.

int8                  Целое 8 бит со знаком.
unsigned8       Беззнаковое целое 8 бит.
int16                Целое 16 бит со знаком.
unsigned16     Беззнаковое целое 16 бит.
int32                Целое 32 бита со знаком.
unsigned32     Беззнаковое целое 32 бита.
int64                Целое 64 бита со знаком.
unsigned64     Беззнаковое целое 64 бита.
real32             32-х разрядное с плавающей точкой.
real64             64-х разрядное с плавающей точкой.


1Б.Керниган, Д.Ритчи «Язык программирования Си» М., Финансы и статистика, 1992.