- •Список вопросов для подготовки к экзамену «Операционные системы, среды и оболочки»
- •Перечислите основные действия, которые нужно было выполнить пользователю для выполнения его программы до появления операционных систем.
- •Что такое операционная система, операционная среда, операционная оболочка? Дайте определение.
- •Что такое однопрограммная пакетная обработка? Как определить классическое мультипрограммирование?
- •Что относится к базовому программному обеспечению ранних компьютерных систем?
- •Что такое многопрограммная пакетная обработка?
- •Что такое мультипроцессорная обработка, чем она отличается от мультипрограммирования?
- •Перечислите поколения операционных систем. Назовите основные отличительные признаки поколений.
- •Первое поколение ос.
- •Второе поколение ос. Середина 60-х г.
- •Третье поколение ос.
- •Четвертое поколение ос.
- •Что такое архитектура операционной системы? Какие архитектуры ос вы можете охарактеризовать?
- •Что такое виртуальная машина? в чем Вы видите преимущества использования виртуальных машин?
- •Дайте определение процессу и потоку. Чем поток отличается от процесса?
- •Перечислите основные задачи ос по управлению процессами. Её задачи:
- •Как можно представить модель процесса и потока? Назовите возможные состояния процесса.
- •Дайте характеристику возможным уровням параллелизма выполнения программ.
- •Распараллеливание на уровне задач
- •Уровень параллелизма данных
- •Уровень распараллеливания алгоритмов
- •Параллелизм на уровне инструкций
- •Каким образом файлы, процессы и потоки могут быть использованы для синхронизации? Сотрудничество с использованием разделения:
- •Сотрудничество с использованием связи:
- •Какие методы могут использоваться для ликвидации тупиковых ситуаций?
- •Приведите пример использования семафора. Что такое мьютекс, как он используется?
- •Перечислите методы взаимоисключений процессов.
- •Когда возникает необходимость в синхронизации процессов?
- •Дайте определение иерархической памяти.
- •Назовите задачи распределения памяти.
- •Дайте определение виртуальной памяти. Перечислите варианты организации такой памяти.
- •Для виртуализации используют 2 возможных подхода:
- •Недостатки свопинга:
- •Достоинства свопинга:
- •Что такое подкачка страниц?
- •Охарактеризуйте проблему защиты памяти.
- •Нужно ли бороться с фрагментацией памяти? Какие методы для этого существуют?
- •Что такое прямой доступ к памяти?
- •Как организуется управляемый прерываниями ввод-вывод?
- •Что дает многоуровневая организация физической памяти современных эвм?
- •Как связан уровень мультипрограммирования с объемом оперативной памяти?
- •Что такое виртуальная память? Какие подходы к организации виртуальной памяти используются в эвм?
- •Для виртуализации используют 2 возможных подхода:
- •Недостатки свопинга:
- •Достоинства свопинга:
- •Что такое свопинг? Для чего он используется?
- •Назовите функции ос по управлению памятью.
- •Что понимается под дефрагментацией памяти?
- •Раскройте понятия: логический, математический, виртуальный и физический адреса.
- •В чем суть страничной организации виртуальной памяти?
- •В чем суть сегментной организации виртуальной памяти?
- •В чем суть сегментно-страничной организации виртуальной памяти?
- •Основные компоненты подсистемы ввода-вывода.
- •Основные функции подсистемы ввода-вывода.
- •Три основных метода организации параллельной работы устройств ввода-вывода и процессора.
- •Методы согласования скоростей работы периферийных устройств.
- •Понятие буферизации.
- •Понятие драйвера устройства.
Перечислите основные задачи ос по управлению процессами. Её задачи:
● создание процессов и потоков.
● обеспечение процессов и потоков необходимыми ресурсами.
● изоляция процессов.
● планирования выполнения процессов и потоков.
● диспетчеризация потоков.
● организация межпроцессного взаимодействия.
● синхронизация.
● завершение и уничтожение процессов и потоков.
Как можно представить модель процесса и потока? Назовите возможные состояния процесса.
Простейшая модель процесса предполагает, что он имеет 2 устойчивых состояния – выполняется и не выполняется. Если бы все процессы имели равный приоритет, всегда были готовы к выполнению, то очередь по данной схеме работала бы эффективно по принципу обслуживания в порядке поступления, а процессор обслуживал бы поступающие процессы круговым методом (Round-Robin). Каждому процессу отводится определенный промежуток времени (t кванта), после которого процесс возвращается в очередь или, если он решен полностью, выгружается из ОЗУ. Однако не все процессы одновременно готовы к выполнению – часть из них по какой-то причине заблокирована (например, ожидают соответствующий ресурс). Поэтому при наличии одной очереди диспетчер вынужден просматривать её всю для поиска первого незаблокированного процесса.
Для повышения качества управления процессами целесообразно разделить все процессы на два типа: готовые к выполнению и заблокированные. Поскольку процессор работает намного быстрее, чем устройство ввода-вывода, вскоре все находящиеся в памяти процессы перейдут в состояние ожидания.
Модели потоков:
А. Организация потоков на уровне пользователя.
Программа, состоящая из ULT потоков, все действия по управлению потоками выполняет само приложение. Ядро о таких потоках ничего не знает и управляет только процессами.
Б. Управление потоками на уровне ядра.
Процесс не имеет собственной системы управления потоками, управление ими осуществляется централизованно на уровне ядра. В ядре создается единая объединенная таблица потоков, отслеживающая все потоки в системе. Если системе необходимо создать новый поток или завершить имеющийся, он выполняет запрос ядра, который создает или завершает поток, внося соответствующие изменение в единую таблицу потоков.
Состояние процесса, определяющее готовность процесса к выполнению (выполняющийся, готовый к выполнению, ожидающий и приостановленный).
Дайте характеристику возможным уровням параллелизма выполнения программ.
Распараллелить решение задачи можно на нескольких уровнях. Между этими уровнями нет четкой границы и конкретную технологию распараллеливания, бывает сложно отнести к одному из них. Приведенное здесь деление условно и служит, чтобы продемонстрировать разнообразие подходов к задаче распараллеливания.
Распараллеливание на уровне задач
Часто распараллеливание на этом уровне является самым простым и при этом самым эффективным. Такое распараллеливание возможно в тех случаях, когда решаемая задача естественным образом состоит из независимых подзадач, каждую из которых можно решить отдельно. Хорошим примером может быть сжатие аудио-альбома. Каждая запись может обрабатываться отдельно, так как она никак не связана с другими.
Распараллеливание на уровне задач нам демонстрирует операционная система, запуская на многоядерной машине программы на разных ядрах. Если первая программа показывает нам фильм, а вторая является файлообменным клиентом, то операционная система спокойно сможет организовать их параллельную работу.