- •Модуль 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. Опишите подход функционирования ос на каждом cpu - метод персональной копии. Дайте графическую интерпретацию и основные замечания. В чем состоят достоинства и недостатки.
Простейший способ организации мультипроцессорных ОС состоит в том, чтобы статически разделить ОЗУ по числу CPU и дать каждому CPU свою собственную память с собственной копией ОС. В результате CPU будут работать как независимые. В качестве очевидного варианта оптимизации можно позволить всем CPU совместно использовать код ОС и хранить только индивидуальные копии данных.
Тем не менее, такая схема лучше, чем независимых компьютеров, так как она позволяет всем машинам совместно использовать набор дисков и других устройств ввода-вывода, а также обеспечивает гибкое совместное использование памяти. Например, одному из CPU может быть выделена большая порция памяти на время выполнения этой программы.
Но с точки зрения ОС наличие ОС у каждого CPU является крайне примитивным подходом.
Следует отметить четыре аспекта данной схемы, возможно, не являющихся очевидными:
Когда процесс обращается к системному вызову, СВ перехватывается и обрабатывается его собственным CPU при помощи структур данных в таблицах ОС.
У каждой ОС есть свои собственные таблицы, у нее есть также и свой набор процессов, которые она сама планирует. Совместного использования процессов нет.
Совместного использования страниц также нет. Нет никакого способа занять свободные страницы у соседнего CPU, так как выделение памяти статически фиксировано.
Если ОС поддерживает буферный кэш недавно использованных дисковых блоков, то каждая ОС будет выполнять это независимо от остальных.
4. Организация коллективных операций в mpi.
Коллективные операции и их исполнение
Коллективные операции в MPI выполняют следующие функции:
MPI_Reduce,
MPI_Allreduce,
MPI_Reduce_scatter
MPI_Scan.
Помимо встроенных, пользователь может определять использовать свои собственные коллективные операции. Для этого служат функции MPI_Op_create и MPI_Op_free, а также специальный тип данных MPI_Usr_function.
Алгоритм исполнения всех коллективных функций одинаков: в каждом процессе имеется массив с данными и над элементами с одинаковым номеров в каждом из процессов производится одна и та же операция (сложение, произведение, вычисление максимума/минимума и т.п.). Встроенные коллективные функции отличаются друг от друга способом размещения результатов в процессах.
MPI_Reduce
Данная функция выполняет коллективную операцию во всех процессах группы и помещает результат в процесс с рангом root.
MPI_Allreduce
Применяет коллективную операцию и рассылает результат всем процессам в группе.
MPI_Reduce_scatter
Функция применяет вначале коллективную операцию к векторам всех процессов в группе, а затем результирующий вектор разбивается на непересекающиеся сегменты, которые распределяются по процессам. Данная операция эквивалентна вызову функции MPI_Reduce, за которым производится вызов MPI_Scatter.
MPI_Scan
Данная операция аналогична функции MPI_Allreduce в том отношении, что после ее выполнения каждый процесс получает результирующий массив. Главное отличие данной функции состоит в том, что содержимое результирующего массива в процессе i является результатом выполнения коллективной операции над массивами из процессов с номерами от 0 до i включительно.
