- •Модуль 4 Вариант 1
- •1. Опишите подход к планированию в мультипроцессорах посредством разделения времени. В чем суть единой структуры данных для планирования, каковы достоинства и недостатки.
- •2. В чем суть механизма умного планирования, приоритетного планирования, родственного планирования, двухуровневого планирования.
- •3. Опишите подход функционирования ос на каждом cpu - метод персональной копии. Дайте графическую интерпретацию и основные замечания. В чем состоят достоинства и недостатки.
- •4. Организация коллективных операций в mpi.
- •Вариант 2
- •1. Опишите подход к функционированию ос на мультипроцессорах – персональная копия ос лишь cpu-хозяину, остальные – cpu-подчиненные.
- •3. Опишите подход к планированию в мультипроцессорах посредством совместного использования адресного пространства.
- •Вариант 4
- •Модуль 5 Вариант 1
- •Модель операционной системы
- •3 Вариант
- •1) Понятие масштабируемости. Особенности многопроцессорной Windows.
- •2) Графическая интерпретация этапов создания процесса в Windows
- •3) Основные функции Win32 api по работе с потоками
- •4) Функции Win32 api для работы с основными сервисами диспетчера памяти.
- •5) Защита объектов и протоколирование обращений к ним. Олицетворение: описание, назначение
- •6) Драйверы устройств. Типы драйверов устройств: пользовательский режим и режим ядра. Wdm-драйверы. Многоуровневые драйверы.
- •7) Пространство имен томов. Диспетчер монтирования. Точки монтирования. Монтирование томов.
- •8) Схема взаимодействия компонентов фс при вводе-выводе. Явный файловый ввод- вывод.
- •4 Вариант
- •1. Ключевые подсистемы ос Windows и их описание.
- •2. Этапы создания процесса.
- •3. Этапы создания потока в Windows.
- •5 Вариант
- •6 Вариант
- •Вариант 2
- •3. Особенности реализации потоков в Linux. Системный вызов clone.
- •Некоторые системные вызовы, относящиеся к безопасности
- •Вариант 5
- •Основные вызовы стандарта posix для управления терминалом
- •Вариант 6
- •Алгоритмы замещения страниц
3 Вариант
1) Понятие масштабируемости. Особенности многопроцессорной Windows.
Масштабируемость - такое свойство вычислительной системы, которое обеспечивает предсказуемый рост системных характеристик, например, числа поддерживаемых пользователей, быстроты реакции, общей производительности и пр., при добавлении к ней вычислительных ресурсов. В случае сервера СУБД можно рассматривать два способа масштабирования - вертикальный и горизонтальный. При горизонтальном масштабировании увеличивается число серверов СУБД, возможно, взаимодействующих друг с другом в прозрачном режиме, разделяя таким образом общую загрузку системы. Такое решение, видимо, будет все более популярным с ростом поддержки слабосвязанных архитектур и распределенных баз данных, однако обычно оно характеризуется сложным администрированием.
Многопроцессорные ОС. Важным свойством ОС является отсутствие или наличие в ней средств поддержки многопроцессорной обработки - мультипроцессирование. Мультипроцессирование приводит к усложнению всех алгоритмов управления ресурсами.
В наши дни становится общепринятым введение в ОС функций поддержки многопроцессорной обработки данных. Такие функции имеются в операционных системах Solaris 2.x фирмы Sun, Open Server 3.x компании Santa Crus Operations, OS/2 фирмы IBM, Windows NT фирмы Microsoft и NetWare 4.1 фирмы Novell.
Многопроцессорные ОС могут классифицироваться по способу организации вычислительного процесса в системе с многопроцессорной архитектурой: асимметричные ОС и симметричные ОС. Асимметричная ОС целиком выполняется только на одном из процессоров системы, распределяя прикладные задачи по остальным процессорам. Симметричная ОС полностью децентрализована и использует весь пул процессоров, разделяя их между системными и прикладными задачами.
2) Графическая интерпретация этапов создания процесса в Windows
Основные этапы создания процесса в Windows. Графическая интерпретация этапов создания процесса в Windows.
Этап 1: открытие образа, подлежащего выполнению. На первом этапе CreateProcess должна найти нужный Windows-образ, который будет выполнять файл, указанный вызвавшим процессом, и создать объект «раздел» для его последующего проецирования на адресное пространство нового процесса. В Windows XP и Windows Server 2003 CreateProcess проверяет, не запрещает ли политика безопасности на данной машине запуск этого образа.
Этап 2: создание объекта процесс. К началу второго этапа функция CreateProcess уже открыла допустимый исполняемый файл Windows и создала объект «раздел» для его проецирования на адресное пространство нового процесса. После этого она создает объект «процесс», чтобы запустить образ вызовом внутренней функции NtCreateProcess.
Этап 3: создание первичного потока, стека и контекста. К началу третьего этапа объект «процесс» исполнительной системы полностью инициализирован. Однако у него еще нет ни одного потока, поэтому он не может ничего делать. Прежде чем создать поток, нужно создать стек и контекст, в котором он будет выполняться. Эта операция и является целью данного этапа. Размер стека первичного потока берется из образа—другого способа задать его размер нет.
Этап 4: уведомление подсистемы Windows о новом процессе. Если заданы соответствующие правила, для нового процесса создастся маркер с ограниченными правами доступа. К этому моменту все необходимые объекты исполнительной системы созданы, и Kernel32.dll посылает подсистеме Windows сообщение, чтобы она подготовилась к выполнению нового процесса и потока. Сообщение включает следующую информацию: описатели процесса и потока; флаги создания; идентификатор родительского процесса; флаг, который указывает, относится ли данный процесс к Windows-приложениям (что позволяет Csrss определить, показывать ли курсор запуска).
Этап 5: запуск первичного потока. К началу этого этапа окружение процесса уже определено, его потокам выделены ресурсы, у процесса есть поток, а подсистеме Windows известен факт существования нового процесса. Поэтому для завершения инициализации нового процесса (см. этап 6) возобновляется выполнение его первичного потока, если только не указан флаг CREATE_SUSPENDED
Этап 6: инициализация в контексте нового процесса. Новый поток начинает свою жизнь с выполнения стартовой процедуры потока режима ядра, KiThreadStartup, которая понижает уровень IRQL потока с «DPC/dispatch» до «АРС», а затем вызывает системную стартовую процедуру потока, PspUserThreadStartup. Параметром этой процедуры является пользовательский стартовый адрес потока.
