Читаем 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 теоретическую базу, вполне достаточную для того, чтобы приступить к изучению системного программирования.

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

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

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

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

C++ Primer Plus
C++ Primer Plus

C++ Primer Plus is a carefully crafted, complete tutorial on one of the most significant and widely used programming languages today. An accessible and easy-to-use self-study guide, this book is appropriate for both serious students of programming as well as developers already proficient in other languages.The sixth edition of C++ Primer Plus has been updated and expanded to cover the latest developments in C++, including a detailed look at the new C++11 standard.Author and educator Stephen Prata has created an introduction to C++ that is instructive, clear, and insightful. Fundamental programming concepts are explained along with details of the C++ language. Many short, practical examples illustrate just one or two concepts at a time, encouraging readers to master new topics by immediately putting them to use.Review questions and programming exercises at the end of each chapter help readers zero in on the most critical information and digest the most difficult concepts.In C++ Primer Plus, you'll find depth, breadth, and a variety of teaching techniques and tools to enhance your learning:• A new detailed chapter on the changes and additional capabilities introduced in the C++11 standard• Complete, integrated discussion of both basic C language and additional C++ features• Clear guidance about when and why to use a feature• Hands-on learning with concise and simple examples that develop your understanding a concept or two at a time• Hundreds of practical sample programs• Review questions and programming exercises at the end of each chapter to test your understanding• Coverage of generic C++ gives you the greatest possible flexibility• Teaches the ISO standard, including discussions of templates, the Standard Template Library, the string class, exceptions, RTTI, and namespaces

Стивен Прата

Программирование, программы, базы данных
1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

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

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

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

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки. Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

Герберт Шилдт

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