Реально все это за вас делает библиотека
Реально все это за вас делает библиотека
Как вариант начального знакомства с библиотекой, давайте посмотрим, что делают вызовы, использованные в администраторе ресурсов /dev/null:
dispatch _create()
Создает структуру диспетчеризации; она будет использоваться для блокирования по приему сообщения.
iofunc_attr_init()
Инициализирует используемую устройством атрибутную запись. Мы обсудим атрибутные записи в подробностях несколько позже, а вкратце так: атрибутная запись содержит информацию об устройстве, и на каждое имя устройства имеется по одной атрибутной записи.
iofunc_func_init()
Инициализирует две структуры данных, cfuncs и ifuncs, которые содержат соответственно указатели на функции установления соединения и функции ввода/вывода. Это, пожалуй, самый «магический» вызов, поскольку именно он назначает подпрограммы обработки сообщений, привязывая их к структурам данных. Заметьте, что никакого кода обработки сообщений установления соединения или сообщений ввода/вывода, генерируемых функциями read(), stat() или им подобными, в администраторе нет. Дело в том, что библиотека содержит для всех сообщений готовые POSIX-обработчики по умолчанию, и как раз функция iofunc_func_init()-то и привязывает их к двум передаваемым ей таблицам.
resmgr_attach()
Создает канал, который администратор ресурса будет использовать для приема сообщений, и говорит администратору процессов, что мы намерены отвечать за «/dev/null». Параметров тут много, но к этой головной боли мы вернемся несколько позже. Сейчас же важно отметить, что именно здесь связываются воедино дескриптор диспетчера (dpp), имя пути (строка «/dev/null») и обработчики функций установления соединения (cfuncs) и ввода/вывода (ifuncs).
resmgr_context_alloc()
Выделяет внутренний контекстный блок администратора ресурса. Мы рассмотрим этот блок в подробностях несколько позже, а вкратце — он содержит информацию, относящуюся к обрабатываемому сообщению.
resmgr_block()
Это блокирующий вызов администратора ресурса — функция, с помощью которой мы ожидаем сообщение от клиента.
resmgr_handler()
После того как сообщение от клиента получено, для его обработки вызывается эта функция.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Глава 16 Тёрнер делает телевидение
Глава 16 Тёрнер делает телевидение Летом 2008 г. я разговаривал с Ральфом Ли Смитом, горячим сторонником кабельного ТВ и фолк-музыкантом, виртуозно играющим на цимбалах. Мне захотелось спросить, оправдал ли кабель его ожидания. Помолчав, Смит ответил, что «с ним уж точно
Глава 10 Реально ли заработать в Интернете
Глава 10 Реально ли заработать в Интернете – Аукцион eBay – Баннеры и баннерные показы – Интернет-магазины – Партнерские программы Google – «Халява» в Сети – Как получать деньги, отвечая на вопросы – Сертификаты Brainbench – Системы электронных платежей Да, реально. На
Путешествуем виртуально и реально
Путешествуем виртуально и реально Многие пенсионеры, выйдя на заслуженный отдых, мечтают о путешествиях, посещении разных стран. А почему бы и нет? И совсем не обязательно тратить на это деньги, куда-то ехать — ведь можно посетить любое место, не вставая со стула!Хотели бы
Двадцать пять капитанов App Store: реально ли пробиться в топы магазина приложений Apple Олег Парамонов
Двадцать пять капитанов App Store: реально ли пробиться в топы магазина приложений Apple Олег Парамонов Опубликовано 27 мая 2013 Магазин приложений Apple с самого начала оброс множеством мифов. Оптимисты видели в нём простой путь к обогащению, а пессимисты
Что делает BIOS?
Что делает BIOS? Далее мы приведем список элементов, из которых состоит BIOS материнской платы:• диагностика при включении питания;• утилита конфигурации системы;• программа загрузки;• интерфейс BIOS.Когда вы включаете компьютер, BIOS инициирует тест POST (диагностику при
Тег video делает Firefox устаревшим браузером Андрей Письменный
Тег video делает Firefox устаревшим браузером Андрей Письменный Спор о том, как должен быть реализован тег video в спецификации HTML5, оказался неожиданно жарким и чуть ли не политическим. Изначально планировалось выбрать один формат кодирования видео, который поддерживали бы все
Что делает BIOS?
Что делает BIOS? Далее мы приведем список элементов, из которых состоит BIOS материнской платы:• диагностика при включении питания;• утилита конфигурации системы;• программа загрузки;• интерфейс BIOS.Когда вы включаете компьютер, BIOS инициирует тест POST (диагностику при
Palm жив: HP делает вторую версию WebOS Андрей Письменный
Palm жив: HP делает вторую версию WebOS Андрей Письменный ОпубликованоАндрей Письменный Битва операционных систем для мобильных устройств ещё далека от завершения. Но пока все гадают, победит ли в ней Apple iOS или Google Android и достанется ли что-нибудь
Что делает программа
Что делает программа Книга Excel разбита на несколько листов (таблиц). Листы можно удалять или добавлять новые. Как и всякая таблица, лист Excel состоит из строк и столбцов, пересечения которых образуют ячейки. В нижней части окна книги находится несколько кнопок (так
Введение Google делает нас глупее?
Введение Google делает нас глупее? «Google делает нас глупее?» — таков заголовок критического очерка о средствах массовой информации и коммуникации, вышедшего из-под пера американского публициста и эксперта в области Интернета Николаса Карра. Однако, занимаясь цифровыми
Делает ли многозадачность умнее?
Делает ли многозадачность умнее? Как влияет на нас это одновременное обращение с несколькими СМИиК? Становимся ли мы умнее благодаря мультимедийному окружению?Наш мозг — это биологическое «аппаратное обеспечение» мыслительного процесса, которое постоянно
Тег video делает Firefox устаревшим браузером
Тег video делает Firefox устаревшим браузером Автор: Андрей ПисьменныйОпубликовано 25 марта 2010 годаСпор о том, как должен быть реализован тег video в спецификации HTML5, оказался неожиданно жарким и чуть ли не политическим. Изначально планировалось выбрать один формат кодирования
Глава 24. Что делает ХР сложной?
Глава 24. Что делает ХР сложной? Несмотря на то что отдельные методики без труда могут исполняться обычными программистами в индивидуальном порядке, соединение всех кусков воедино и поддержание их в этом состоянии – далеко не простая задача. Сложной ХР становится в