
- •1) Основные понятия в спо. Классификация ос. Функции ос. Схема состояний задачи в вс.
- •2)Вычислительный ресурс и схема его выделения. Многозадачный режим работы вс. Схема ос жрв, платформенные, встраиваемые. Общая структура ос (уровни ос )
- •3)Основные элементы пк. Регистры процессора. Схема и пример исполнения команд.
- •4)Прерывания. Аппаратные, программные пользовательские и системные. Схема обработки прерывания
- •6) Архитектура ос Windows. Среда разработки программного обеспечения ms Visual Studio.
- •7)Архитектура ос qnx. Операционная среда Photon ос qnx6. Схема каталогов фс unix
- •8) Среда разработки программного обеспечения ide Momentics
- •10) Процессы в qnx6: типы (системные, демоны, прикладные), атрибуты, управление (process.C, fork.C, exec.C, spawn.C).
- •11)Функции создания процесса (p2-1.Cc). Затраты на порождение и переключение процесса (p5.Cc).
- •12) Жизненный путь потока. Потоки в qnx6: атрибуты, состояния, управление, диспетчеризация. (p5t.Cc)
- •14) Функции создания потока. Затраты на порождение нового протока. Сигналы. (p2-2.Cc)
- •15) Взаимодействие процессов. Механизмы параллельных вычислений. Синхронизация в Windows. Синхронизация в qnx6. (shm_creator.C, shm_user.C)
- •16)Принципы планирования потоков. Диспетчеризация в Windows и qnx6. Инверсия приоритетов. (prio.C)
- •17) Принципы функционирования smp и кластеров (prio.C)
- •18) Управление памятью. Модели памяти: сегментная, страничная, сегментно-страничная. (shm_creator.C, shm_user.C)
- •19) Виртуальная память. Организация памяти в Windows и qnx6. (shm_creator.C, shm_user.C)
- •20) Файловые системы. Fat. Ntfs. Qnx4. Схема доступа к кластерам в fat16. (t1.Cc
- •21)Raid массивы. Устройства io. Io в Windows
- •21) Принципы построения и защиты от сбоев и несанкционированного доступа
8) Среда разработки программного обеспечения ide Momentics
QNX Momentics IDE ‑ Интегрированная среда разработки приложений для операционной системы QNX Neutrino (рис.40). QNX Momentics IDE представляет собой профессиональный комплект разработчика, который поддерживает различные языки программирования (С, С++, Embedded С++ и Java), различные инструментальные ОС (Windows, Linux, или QNX Neutrino) и различные целевые процессоры (ARM, MIPS, PowerPC, SH-4 и x86) и позволяет существенно сократить время разработки встраиваемого проекта независимо от его масштаба и сложности.
Для разработки нестандартных драйверов применяются комплекты разработки драйверов (DDK), содержащие большую базу исходных текстов и готовых шаблонов. Отладка приложений вместе с драйверами выполняется с помощью одного и того же графического символьного отладчика [15].
Рис.40. Структура и функции QNX Momentics IDE
QNX Momentics IDE позволяет оптимизировать производительность приложений с использованием профайлера приложений и анализатора ОЗУ, которые тесно интегрированы с остальными инструментами среды разработки. Системный профайлер и отладочная версия микроядра позволят визуально отслеживать проблемы синхронизации, взаимные блокировки и прочие часто возникающие ошибочные ситуации
9)Процессы и потоки в Windows. Атрибуты и методы. Состояния потоков. Структура потока. Функции Win32 управления процессами и потоками. Таблица процессов и потоков в Windows . Функций Win32 и их атрибуты. (process.c, fork.c, exec.c, spawn.c).
С точки зрения программирования каждый процесс win32/64 включает компоненты (рис. 22):
один или несколько потоков;
виртуальное адресное пространство, отличное от адресных пространств других процессов, за исключением случаев явного разделения памяти;
один или более сегментов кода, включая код DLL;
Рис. 22. Структура процесса и его потоков
один или более сегментов данных, содержащих глобальные переменные;
строки окружения с информацией о переменных окружениях, таких как текущий путь поиска файла и др.;
память кучи процесса;
ресурсы процесса (открытые дескрипторы, файлы, другие кучи).
Атрибуты процесса и потока в Windows приведены в табл. 2.
Атрибуты процесса и потока в Windows Таблица 2
Процесс |
Поток |
Идентификатор процесса - уникальное значение, идентифицирующее процесс в ОС |
Идентификатор потока - уникальное значение, идентифицирующее поток, когда он вызывает сервис. |
Дескриптор защиты – описывает, кто создал процесс, права доступа и пр. |
Контекст потока – набор значений регистров, которыми определяется состояние выполняемого потока. |
Базовый приоритет – базовый приоритет для потоков |
Динамический приоритет - приоритет выполняемого потока в данный момент. Базовый приоритет – нижний приоритет динамического приоритета потока. |
Родственность процессов по умолчанию – заданный по умолчанию набор процессов, где возможно выполнение потоков. |
Родственность процессов по потоку – множество процессов, где возможно выполнение потоков. |
Время выполнения – суммарное время, затраченное на выполнение всех потоков в процессе. |
Время выполнения потока - совокупное время, затраченное на выполнение потока в пользовательском режиме и режиме ядра. |
Счётчик ввода/вывода - переменные, в которые заносятся сведения о количестве и типе операций ввода/вывода, выполненных потоками процесса. |
Статус извещения (оповещения) – этот флаг, который указывает, следует ли потоку выполнять асинхронный вызов процедуры. |
Счётчик операций с виртуальной памятью – это переменные, в которые заносятся сведения о количестве и типе операций с виртуальной памятью выполненных потоками процесса. |
Счётчик приостановок – в нём указывается, сколько раз выполнение потока было приостановлено без последующего возобновления. |
Квоты – максимальное количество страничной памяти и процессорного времени доступного процессу |
Маркеры режима анонимного воплощения – это временный признак доступа. |
Порты исключения/отладки – это каналы обмена информацией между процессами, в которые диспетчер процессов должен отправлять сообщения при возникновении исключительных ситуаций одного из потоков процесса. |
Порт завершения – это канал обмена информацией между процессами, куда диспетчер процессов отправляет сообщения при завершении потока. |
Статус выхода – причины завершения процесса |
Статус выхода – причины завершения потока |
Все потоки процесса совместно используют код, глобальные переменные, строки окружения и ресурсы процесса [3]. Каждый поток планируется независимо. Поток включает следующие элементы:
стек вызова процедур, переменных, обработчиков исключений и автоматических данных;
локальная память потока – это массивы указателей, которые дают возможность процессу выделить память для создания собственного уникального окружения данных потока;
структура контекста, управляемая ядром, содержащая значение аппаратных регистров.
В Windows NT реализован планировщик с вытеснением и гибкой системой уровней приоритетов, включая круговое планирование на каждом уровне, а для уровней «переменных приоритетов» – динамическое изменение приоритета на основе текущей активности потоков. В Windows NT две группы (класса) приоритетов: реального времени и переменные, по 16 уровней в каждом (рис. 25). При появлении потока (в состоянии готов) с большим приоритетом, чем у выполняющегося потока, выполняющийся поток вытесняется и начинает выполняться поток с большим приоритетом.
Рис. 25 Приоритеты потоков в Windows
В классе РВ все потоки имеют ориентированные приоритеты от 16 до 31, которые никогда не изменяется. Все активные потоки с определенным уровнем приоритета располагаются в круговой очереди данного уровня. Приоритеты потоков в период исполнения остаются постоянными [3].