- •Тула 2010
- •1.1 Принципы построения и основные требования. Особенности.
- •1.2 Ос рв qnx. Поддержка срв ос Linux.
- •1. 3 Функциональные требования к осрв
- •2. "Жесткие" и "мягкие" системы реального времени
- •3. Нити и приоритеты
- •4. Предсказуемость системных вызовов Win32 api
- •5. Управление прерываниями в nt
- •6. Управление памятью в nt
- •7. Может ли Windows nt использоваться в качестве ос рв?
- •Лекция №2.
- •Коммерческие решения, расширяющие nt возможностями обработки в реальном времени
- •Использование nt
- •3. Реализация Win32 api над другой ос рв
- •4. Совместная работа на одном процессоре nt и ос рв
- •5. Использование многопроцессорной архитектуры
- •6. Необходимые требования к ос для обеспечения предсказуемости
- •Лекция №3.
- •Лекция №4.
- •1. Разработка приложений жесткого реального времени
- •2. Модификация ядра
- •3. Модификация уровня аппаратных абстракций Windows nt (hal)
- •4. Применение ос рв
- •Лекция №5. Операционная система qnx. Системная архитектура.
- •Лекция № 6.
- •Лекция №7. Связь между процессами по сети посредством виртуальных каналов.
- •Лекция №8. Построение очереди процессов
- •Лекция №9. О работе в реальном времени
- •Лекция №10. Сопоставление и передача путей между процессами.
- •2. Префиксы управления вводом – выводом
- •5. Передача путей между процессами
- •2. Префиксы управления вводом – выводом
- •5. Передача путей между процессами
- •2. Относительные пути
- •3. Текущий рабочий каталог
- •Примечание относительно cd
- •4. Описатели файлов пространства
- •Лекция №12 Аппаратное и программное обеспечение промышленных систем реального времени (псрв)
- •Введение
- •1. Организация промышленных систем
- •2. Аппаратная архитектура
- •3. Стандарты шин
- •4. Технологии vme и pci
- •5. Мезонинные технологии
- •6. Полевые системы
- •7. Программное обеспечение промышленных систем
- •8. Управление производством
- •Лекция №13 Использование средства nt в качестве Web-сервера для iis (Internet Information Server)
- •Введение
- •Общие черты intranet-систем
- •3. Система управления доступом
- •4. Прикладное программирование в intranet
- •Лекция 14 Операционная система ос рв см эвм (rsx-11)
- •Введение
- •Основные компоненты системы ос рв
- •2. Диспетчер памяти
- •3. Многопользовательская защита
- •4. Выполнение задач под управлением ос рв
- •5. Внешние устройства и файловая система на дисках
- •Лекция 15 Управление прерываниями.
- •Вектора прерываний
- •Программирование контроллера прерываний 8259.
- •Запрет/разрешение отдельных аппаратных прерываний
- •Лекция 16 Управление Тема: прерываниями (продолжение).
- •Написание собственного прерывания
- •Дополнение к существующему прерыванию
- •Лекция 17 Синхронные методы проектирования срв
- •Система упорядоченного опроса
- •Основной цикл с прерываниями
- •Лекция 18 Синхронные методы проектирования срв (продолжение)
- •1 . Циклические планировщики
- •2. Выбор метода построения системы
- •3. Измерение быстродействия компьютера
- •4. Мультизадачный режим в операционной системе ms-dos
- •5. Условия существования мультизадачного режима в персональном компьютере ibm pc/at
- •X. Библиографический список рекомендуемой литературы
- •13.1 Ос рв usix: основные принципы построения и структура.
- •13.2 Поддержка рв в usix
- •13.3 Управление виртуальной памятью в usix
- •14.1 Процессы, связанные с выполнением программ
- •14.2 Функции ос рв usix, не связанные с управлением процессами
- •15.1 Программирование коммуникационных устройств.
- •15.2 Драйверы коммуникационных устройств
- •16.1 Файловая система
- •16.2 Средства защиты от несанкционированного доступа
- •16.3 Поддержка протоколов и окружений usix
15.2 Драйверы коммуникационных устройств
Программирование коммуникационных устройств в USIХ (сетевые карты, терминалы) основано на так называемом механизме «потоков», который является расширением хорошо известной подсистемы ядра операционной системы USIX SУSТЕМ V
- SТRЕАМS.
Механизм «потоков» определяет правила программирования драйверов коммуникационных устройств, а также предоставляет набор средств для их разработки. Этот механизм полностью совместим с подсистемой SТRЕАМS на уровне системных вызовов, но имеет некоторые дополнительные возможности.
Дадим основные термины и определения.
Потоком мы будем называть полностью дуплексный путь данных от пользовательского процесса к драйверу «потока». На рис. 4.4 представлен вид потока, образованного путем связывания модуля «заголовок» и модуля «драйвер». Между этими модулями могут располагаться дополнительные модули обработки данных.
Рис. 4.4. К определению механизма «потоков»
Модули в потоке являются основными элементами обработки данных, поступающих как от пользовательского процесса, так и от самого драйвера.
Стандартный модуль «заголовок» реализует интерфейс с пользовательским процессом, осуществляя первичную обработку данных, поступающих от драйвера к пользователю. Модуль «драйвер» реализует собственно сам драйвер. Драйвер может быть как драйвером некоторого физического устройства, так и программным (или псевдо-) драйвером.
Модули представляют собой наборы процедур для обработки данных, а также структур, описывающих сам модуль и определяющих порядок обработки данных. Каждый модуль функционально не зависит от других компонентов потока, за исключением двух соседних модулей. Взаимодействие между соседними модулями осуществляется путем обмена сообщениями, которые могут содержать как сами данные для обработки, так и некоторую управляющую информацию, определенную межмодульными интерфейсами. Каждый поток содержит по крайней мере два стандартных модуля. Дополнительные модули могут быть добавлены или исключены из потока в любое время пользовательским процессом.
Каждый модуль состоит из двух частей, каждая из которых ответственна за обработку данных, передаваемых в двух разных направлениях.
Основным элементом каждой из частей модуля является структура «очередь», или просто очередь. Очереди наряду с модулями являются одними из важнейших компонентов «потоков». Очереди содержат указатели на процедуры обработки данных, а также список сообщений, поступивших на обработку в данную очередь. Помимо этого очереди включают различную управляющую информацию для организации обработки поступивших сообщений. Как уже было сказано, сообщения, передаваемые между модулями, содержат как данные для обработки, так и управляющую информацию. Сообщения имеют два буфера с указателями на области памяти, называемыми чанками. Чанки, в свою очередь, включают информацию об областях памяти, предназначенных для хранения данных. Чанки могут быть связаны друг с другом, образуя цепочки. Чанки содержат указатели на область памяти, начало данных, длину данных и другую информацию. Такая организация хранения данных в сообщениях позволяет эффективно (во многих случаях без дополнительных перезаписей) их обрабатывать.
Сообщения могут быть сформированы любым модулем потока и переданы в необходимом направлении к соседнему модулю. Большинство системных вызовов, относящихся к подсистеме «потоков» (write(), ioctl(), рutmsg(), ...), приводят к созданию сообщений с соответствующими кодами. При этом, если требуется, происходит перезапись данных из адресного пространства пользовательского процесса в область памяти, указанную буфером соответствующего сообщения. Этот процесс называется буферизацией данных. Затем эти сообщения передаются на обработку нижележащим модулям. С другой стороны, модули «драйверов» со здают сообщения с данными, поступающими от физических устройств, которые они обслуживают, и направляют их в выше находящиеся модули. При поступлении таких сообщений в модуль «заголовка» данные могут быть переписаны в адресное пространство процесса, выдавшего системный запрос на чтение данных (геаd(), getmsg(), ...). Другая часть сообщений используется для передачи данных между модулями и организации межмодульных интерфейсов.
Важной характеристикой сообщений является приоритет. Приоритет сообщений определяет порядок их обработки. При поступлении сообщений в модули они обрабатываются в соответствии с их приоритетом. Вначале обрабатываются сообщения с более высоким приоритетом, затем — с более низким.
Сообщения могут передаваться не только в пределах одного потока. Сами потоки могут быть объединены в сложные иерархические системы. Эта возможность обеспечивается механизмом мультиплексирования. Любой драйвер «потока» состоит, по крайней мере, из одного потока. Потоки, относящиеся к разным драйверам-мультиплексорам, могут быть связаны друг с другом с помощью специального системного вызова. В этом случае сообщения передаются из одного потока в другой, каждый из которых осуществляет их обработку в соответствии со своим функциональным назначением. Данная возможность используется при создании драйверов сетевых протоколов, имеющих также многоуровневую иерархическую структуру.
Лекция 16. Файловая система USIX. Средства защиты от несанкционированного доступа.