Читаем Linux API. Исчерпывающее руководство полностью

Работа в разнородной среде. В сети различные клиенты и сервер могут быть запущены на различном оборудовании и на разных платформах операционных систем.

2.18. Выполнение действий в реальном масштабе времени

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

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

Обеспечение быстроты реагирования в реальном масштабе времени, особенно когда важно сохранить короткое время отклика, требует поддержки от базовой операционной системы. Большинство операционных систем в силу присущих им особенностей не в состоянии предоставить такую поддержку, поскольку требования быстроты реагирования в реальном масштабе времени могут конфликтовать с требованиями, предъявляемыми к многопользовательским операционным системам с разделением времени. Традиционные реализации UNIX не являются операционными системами реального масштаба времени, хотя и были разработаны их версии с подобными характеристиками. Кроме того, были созданы варианты Linux, отвечающие требованиям, предъявляемым к системам реального масштаба времени, и самые новые ядра Linux разрабатываются так, чтобы полноценно поддерживать приложения реального масштаба времени.

В POSIX.1b определено несколько расширений к POSIX.1 для поддержки приложений реального масштаба времени. В их числе асинхронный ввод/вывод, совместно используемая память, отображаемые в памяти файлы, блокировка памяти, часы и таймеры реального масштаба времени, альтернативные политики диспетчеризации, сигналы, очереди сообщений и семафоры реального масштаба времени. Но даже притом, что большинство современных реализаций UNIX еще не могут называться системами реального масштаба времени, они поддерживают некоторые или даже все эти расширения. (По ходу повествования вам еще встретятся описания этих особенностей POSIX.1b, поддерживаемых Linux.)

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

2.19. Файловая система /proc

Как и в некоторых других реализациях UNIX, в Linux предоставляется файловая система /proc, состоящая из набора каталогов и файлов, смонтированных в каталоге /proc.

/proc — виртуальная файловая система, предоставляющая интерфейс структуре данных ядра в форме, похожей на файлы и каталоги файловой системы. Тем самым предоставляется простой механизм для просмотра и изменения различных системных атрибутов. Кроме того, набор каталогов с именами в форме /proc/PID, где PID является идентификатором процесса, позволяет нам просматривать информацию о каждом процессе, запущенном в системе.

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

По мере рассмотрения различных частей интерфейса программирования Linux будут также рассматриваться и относящиеся к ним файлы каталога /proc. Дополнительная общая информация по этой файловой системе приводится в разделе 12.1. Файловая система /proc не определена никакими стандартами, и рассматриваемые здесь детали относятся только к системе Linux.

2.20. Резюме

В этой главе был перечислены основные понятия, относящиеся к системному программированию Linux. Усвоение этих понятий должно предоставить пользователям с весьма скромным опытом работы с Linux или UNIX теоретическую базу, вполне достаточную для того, чтобы приступить к изучению системного программирования.

<p>3. Общее представление о системном программировании</p>

В текущей главе рассматриваются различные темы, без изучения которых невозможно перейти к системному программированию. Сначала будут описаны системные вызовы и подробно рассмотрены этапы их выполнения. Затем будет уделено внимание библиотечным функциям и их отличиям от системных вызовов, после чего все это будет увязано с описанием GNU-библиотеки C.

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных