- •Список вопросов для подготовки к экзамену «Операционные системы, среды и оболочки»
- •Перечислите основные действия, которые нужно было выполнить пользователю для выполнения его программы до появления операционных систем.
- •Что такое операционная система, операционная среда, операционная оболочка? Дайте определение.
- •Что такое однопрограммная пакетная обработка? Как определить классическое мультипрограммирование?
- •Что относится к базовому программному обеспечению ранних компьютерных систем?
- •Второе поколение ос. Середина 60-х г.
- •Что такое многопрограммная пакетная обработка?
- •Что такое мультипроцессорная обработка, чем она отличается от мультипрограммирования?
- •Перечислите поколения операционных систем. Назовите основные отличительные признаки поколений.
- •Первое поколение ос.
- •Третье поколение ос.
- •Четвертое поколение ос.
- •Что такое архитектура операционной системы? Какие архитектуры ос вы можете охарактеризовать?
- •Что такое виртуальная машина? в чем Вы видите преимущества использования виртуальных машин?
- •Дайте определение процессу и потоку. Чем поток отличается от процесса?
- •Перечислите основные задачи ос по управлению процессами. Её задачи:
- •Как можно представить модель процесса и потока? Назовите возможные состояния процесса.
- •Дайте характеристику возможным уровням параллелизма выполнения программ.
- •Распараллеливание на уровне задач
- •Уровень параллелизма данных
- •Уровень распараллеливания алгоритмов
- •Параллелизм на уровне инструкций
- •Каким образом файлы, процессы и потоки могут быть использованы для синхронизации? Сотрудничество с использованием разделения:
- •Сотрудничество с использованием связи:
- •Какие методы могут использоваться для ликвидации тупиковых ситуаций?
- •Приведите пример использования семафора. Что такое мьютекс, как он используется?
- •Перечислите методы взаимоисключений процессов.
- •Когда возникает необходимость в синхронизации процессов?
- •Дайте определение иерархической памяти.
- •Назовите задачи распределения памяти.
- •Дайте определение виртуальной памяти. Перечислите варианты организации такой памяти.
- •Для виртуализации используют 2 возможных подхода:
- •Недостатки свопинга:
- •Достоинства свопинга:
- •Что такое подкачка страниц?
- •Охарактеризуйте проблему защиты памяти.
- •Нужно ли бороться с фрагментацией памяти? Какие методы для этого существуют?
- •Что такое прямой доступ к памяти?
- •Как организуется управляемый прерываниями ввод-вывод?
- •Что дает многоуровневая организация физической памяти современных эвм?
- •Как связан уровень мультипрограммирования с объемом оперативной памяти?
- •Что такое виртуальная память? Какие подходы к организации виртуальной памяти используются в эвм?
- •Для виртуализации используют 2 возможных подхода:
- •Недостатки свопинга:
- •Достоинства свопинга:
- •Что такое свопинг? Для чего он используется?
- •Назовите функции ос по управлению памятью.
- •Что понимается под дефрагментацией памяти?
- •Раскройте понятия: логический, математический, виртуальный и физический адреса.
- •В чем суть страничной организации виртуальной памяти?
- •В чем суть сегментной организации виртуальной памяти?
- •В чем суть сегментно-страничной организации виртуальной памяти?
- •Основные компоненты подсистемы ввода-вывода.
- •Основные функции подсистемы ввода-вывода.
- •Три основных метода организации параллельной работы устройств ввода-вывода и процессора.
- •Методы согласования скоростей работы периферийных устройств.
- •Понятие буферизации.
- •Понятие драйвера устройства.
Что такое виртуальная машина? в чем Вы видите преимущества использования виртуальных машин?
Виртуальная машина—
программная и/или аппаратная система, эмулирующая аппаратное обеспечение некоторой платформы и исполняющая программы для этой платформы (target — целевая или гостевая платформа) на другой платформе (host — хост-платформа, платформа-хозяин)
или виртуализирующая некоторую платформу и создающая на ней среды, изолирующие друг от друга программы и даже операционные системы (см.: песочница);
также, спецификация некоторой вычислительной среды (например: «виртуальная машина языка программирования C»).
Виртуальная машина исполняет некоторый машинно-независимый код (например, байт-код, шитый код, p-код) или машинный код реального процессора. Помимо процессора, ВМ может эмулировать работу, как отдельных компонентов аппаратного обеспечения, так и целого реального компьютера (включая BIOS, оперативную память, жёсткий диск и другие периферийные устройства). В последнем случае в ВМ, как и на реальный компьютер, можно устанавливать операционные системы (например, Windows можно запускать в виртуальной машине под Linux или наоборот). На одном компьютере может функционировать несколько виртуальных машин (это может использоваться для имитации нескольких серверов на одном реальном сервере с целью оптимизации использования ресурсов сервера).
Процесс не может определить, монопольно ли он использует процессор или же в режиме мультипрограммирования вместе с другими процессами. В виртуальной машине ни один процесс не может монопольно использовать никакой ресурс, и все системные ресурсы считаются ресурсами потенциально совместного использования. Кроме того, использование виртуальных машин обеспечивает развязку между несколькими пользователями, работающими в одной вычислительной системе, обеспечивая определённый уровень защиты данных.
Виртуальные машины могут использоваться для:
защиты информации и ограничения возможностей программ (см.: песочница);
исследования производительности ПО или новой компьютерной архитектуры;
эмуляции различных архитектур (например, эмулятор игровой приставки);
оптимизации использования ресурсов мейнфреймов и прочих мощных компьютеров (см., например: IBM eServer);
вредоносного кода для управления инфицированной системой: вирус PMBS, обнаруженный в 1993 году, а также руткит SubVirt, созданный в 2006 году в Microsoft Research, создавали виртуальную систему, которой ограничивался пользователь и все защитные программы (антивирусы и прочие).
моделирования информационных систем с клиент-серверной архитектурой на одной ЭВМ (эмуляция компьютерной сети с помощью нескольких виртуальных машин).
упрощения управления кластерами — виртуальные машины могут просто мигрировать с одной физической машины на другую во время работы.
Тестирования и отладки системного программного обеспечения;
Дайте определение процессу и потоку. Чем поток отличается от процесса?
Процесс – это систематическое, последовательное определение функциональных операций, которые приносят специфический результат.
Потоки — это наборы команд, которые могут получать время процессора. Время процессора выделяется квантами. Квант времени — это минимальный интервал, в течение которого только один поток использует процессор.
Когда мы говорим "программа", то обычно имеем в виду понятие, в терминологии операционной системы обозначаемое как "процесс". Процесс состоит из виртуальной памяти, исполняемого кода, потоков и данных. Процесс может содержать много потоков, но обязательно содержит по крайней мере один. Поток, как правило, имеет "в собственности" минимум ресурсов; он зависит от процесса, который и распоряжается виртуальной памятью, кодом, данными, файлами и другими ресурсами ОС.
Почему мы используем потоки вместо процессов, хотя, при необходимости, приложение может состоять и из нескольких процессов? Дело в том, что переключение между процессами — значительно более длительная операция, чем переключение между потоками. Другой довод в пользу применения потоков — то, что они специально задуманы для совместного использования ресурсов; разделить ресурсы между процессами (имеющими раздельное адресное пространство) не так-то просто.
