- •Тула 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
Лекция №10. Сопоставление и передача путей между процессами.
План лекции.
1. Пространство ввода - вывода
2. Префиксы управления вводом – выводом
3. Сетевой корень
4. Сетевой корень по умолчанию.
5. Передача путей между процессами
1. Пространство ввода - вывода
Ресурсы ввода - вывода QNX не встроены в ядро. Вместо этого, службы ввода - вывода снабжаются процессами, которые могут быть начаты динамически, во время функционирования системы. Так как файловая система QNX произвольна, путь к выделенному пространству не встроен в файловую систему, как это сделано в большинстве монолитных систем.
Вместе с QNX, выделяемое пространство разделено на области полномочий. Любой процесс желающий быть обеспеченным файловыми службами ввода - вывода регистрирует префикс в администраторе обработки, определяющим часть дискового пространства, которым может управлять этот процесс (то есть область полномочия). Эти префиксы создают префиксное дерево, которое поддерживается в памяти на каждом компьютере, функционирующем QNX.
2. Префиксы управления вводом – выводом
Когда процесс открывает файл, путь сопоставляется с префиксным деревом, чтобы направить open() соответствующему администратору ресурса ввода - вывода. Например, администратор устройств (Dev ) обычно регистрирует префикс /dev. Если обработка вызывает open() с /dev/xxx, произойдет префиксное соответствие с /dev, и open() будет направлен к Dev ( как к владельцу).
Префиксное дерево может содержать частично перекрывание областей полномочий . В этом случае, предпочтение отдается более длинному. Например, предположите, что мы имеем три зарегистрированных префикса :
/ находящийся на диске файловая система (Fsys)
/dev устройство системы (Dev)
/dev/hd0 необработанный дисковый объем (Fsys)
Файловый администратор зарегистрирует два префикса, один для установленной QNX файловой системы (то есть /) и один для необработанного дискового объема, который представляет собой жесткий диск (то есть /dev/hd0). Администратор устройства зарегистрирует один префикс. Это иллюстрирует правило «длинного имени пути».
-
ПутьПараСопоставление
/dev/con1/devDev
/dev/hd0/dev/hd0Fsys
/usr/dtdodge/test/Fsys
Префиксное дерево управляется как список префиксов, отделенных двоеточиями следующим образом:
prefix=pid, unit: prefix=pid, unit: prefix=pid, unit
где pid – обрабатывающийся ID администратора ресурса ввода - вывода, и unit - одиночный символ, используется администратором, чтобы выбрать один из нескольких имеющихся префиксов. В слудующем примере, если Fsys обрабатывает 3, и Dev обрабатывает 5, то системное префиксное дерево могло бы выглядеть следующим образом:
/dev/hd0=3, a: /dev=5, a : / = 3, e
-
Если вы хотитеиспользуйте
Показать дерево префиксовPrefix утилиту
Получить префиксное дерево в пределах программы Cqnx_prefix_query() функцию
3. Сетевой корень
QNX поддерживает суперконцепцию или концепцию сетевого корня, которая позволяет сопоставлять имя пути с префиксным деревом определенного узла, которое определено именем пути, начинающееся двумя наклонными чертами вправо, сопровождаемое номером узла. Это также позволяет легко обращаться к файлам и устройствам, которые не находятся на вашем узле. Например, в типичной QNX сети следующие пути отобразили бы так:
/dev/ser1 локальный последовательный порт
//10/dev/ser1 последовательный порт на узле 10
//0/dev/serl локальный последовательный порт
//20/usr/dtdodge/test файл на узле 20
Обратите внимание, что //0 всегда относится к локальному узлу.
4. Сетевой корень по умолчанию.
Когда программа выполняется дистанционно, вы обычно хотите, чтобы любые пути были получены в пределах контекста имени вашего собственного узла. Например, эта команда:
// 5 ls /,
которая вызывает 1s на узле 5, должен возвратить то же самое как:
ls /,
который вызывает 1s , находящийся на вашем узле.
В обоих случаях, / должен быть определен через префиксное дерево вашего узла, но не через дерево узла 5. Иначе, вообразите хаос, который был бы результатом того, что если корень узла 5 (/) локальный жесткий диск, и ваш корень узла жесткий диск, локальный для вашей машины — выполняющий процедуру дистанционно получит файлы от полностью различных файловых систем.
Чтобы определять пути должным образом, каждый процесс связывает с ними корень сети по умолчанию, который определяет префиксное дерево узла для использования, чтобы определить любые пути, начинающиеся с отдельной наклонной черты вправо. Когда путь, начинающееся с / это означает, что корень сети по умолчанию – привязан к нему. Например, если процесс имел корень сети по умолчанию // 9, то:
/usr/home/luc
был бы определен как:
// 9/usr/horoe/luc,
который может интерпретироваться как " определить через префиксное дерево узла 9
/usr/home/luc.
Корень сети значения по умолчанию наследуются новыми процессами, когда они создаются, и инициализируются к вашему локальному узлу при запуске. Например, скажем, вы используете узел 9, находясь в оболочке с заданным по умолчанию сетевым корневым набором к узлу 9 (очень типичный случай). Если вы должны были выполнить команду:
1s /
команда наследовала бы значение корня сети по умолчанию // 9, и Вы вернете эквивалент:
1s // 9/
Аналогично, если Вы должны были ввести команду:
// 5 1s /
Вы запустили бы команду 1s на узле 5, но еще наследуется корень сети значения по умолчанию // 9, так что вы снова должны использовать эквивалент - //9/. В обоих случаях путь определен решено согласно тому же самому пробелу имени пути.
-
Если Вы хотитеиспользуйте
Получить ваш потокqnx_prefix_getroot() функция C
Установить ваш сетевой корень по умолчаниюqnx_prefix_setroot() функция C
Выполнить программу с новым сетевым корнем по умолчанию оn утилита