ОС - КР2
.pdfОперационные системы
Теоретический опрос по материалам второго раздела
Дайте определение процессу (3 балла);
Процесс – некоторая деятельность, связанная с исполнением программного кода на центральном процессоре.
Классифицируйте процессы (4 балла); Раскройте одну из классификаций процессов (4 балла);
1.По принадлежности к ЦП:
Внутренние (исполняются на конкретном ЦП)
Внешние (на другом ЦП)
2.По принадлежности к ОС:
Системные
Прикладные (пользовательские)
3.По генеалогическому признаку:
Порождающие (родительские)
Порожденные (дочерние)
4.По результативности
Различные процессы
Эквивалентные процессы. Эквивалентные процессы при обработке одинаковых данных приводят к одному и тому же результату, при этом могут развиваться поразному, на разных компьютерах, разных трассах и т.п.
Тождественные процессы – эквивалентные процессы, развивающиеся на одинаковых трассах.
Равные процессы
5.По относительности
Последовательные процессы. Интервалы существования не пересекаются во времени.
Параллельные процессы. На рассматриваемом интервале времени развиваются строго одновременно.
Комбинированные процессы. Все остальные.
6.По связанности
Изолированные процессы
Информационно-независимые процессы. Связь только по управлению.
Взаимодействующие процессы. Связь по всем видам.
Конкурирующие процессы. Конкурируют за одни и те же ресурсы.
7.По требованиям к обслуживанию
Процессы реального времени – процессы, которые необходимо завершить до наступления конкретного момента времени.
Интерактивные процессы – процессы, время существования которых не превышает времени допустимой реакции на запросы пользователя.
Вычислительные процессы – все остальные.
Дайте определение потоку (3 балла);
Наименьшая единица обработки, исполнение которой может быть назначено операционной системой. В большинстве операционных систем поток выполнения находится внутри процесса.
Состав дескриптора процесса (4 балла);
1.Идентификатор процесса (PID)
2.Идентификатор родительского процесса (PPID)
3.Переменная состояния процесса (определяет, в каком состоянии находится процесс)
4.Счетчик команд (инструкция, которая должна быть выполнена следующей)
5.Приоритет
6.Указатель на родительский процесс, на дочерние процессы, на области памяти, выделенные процессом под ресурсы; полномочия процесса.
7.Контекст процесса (защищенная область памяти или адрес такой зоны, в которой хранятся текущие значения регистров процессора, если процесс прерывается, не закончив работы)
Трасса процесса (3 балла);
Трасса процесса – это последовательность состояний, через которые проходит процесс в ходе своей работы. Пример:
1 -> 3 -> 2 -> 5
1.Порождение процесса
2.Активное состояние
3.Готовность
4.Ожидание
5.Завершение
Диаграмма состояния процесса (3 балла);
Диаграмма состояний процесса – графическое представление состояний, через которые проходит процесс в процессе своего развития.
Граф существования потока (3 балла);
7
1 4 2
6
5 |
3 |
1.Порождение
2.Счёт
3.Блокировка (поток ждет освобождения ресурсов)
4.Готовность
5.Окончание
6.Ожидание
7.Сон
Граф существования процесса (3 балла);
1 |
4 |
2 |
3 |
5
1.Порождение
2.Активное состояние (счёт)
3.Ожидание
4.Готовность (ресурсы доступны, но нет доступа к ЦП)
5.Завершение
Опишите процесс порождения процесса (4 балла);
В обычных ОС процесс появляется при запуске какой-нибудь программы. ОС организует для нового процесса соответствующий дескриптор процесса и процесс начинает назвиваться.
Раскройте концепцию многопоточности (6 баллов);
Многопоточность позволяет нескольким потокам в рамках одного процесса выполняться одновременно. Эти потоки совместно используют ресурсы процесса или работают самостоятельно и выполняются в одном адресном пространстве процесса. Каждый процесс имеется как минимум один поток. Одно из применений многопоточности – реализация распараллеливания процессорных вычислений и операций ввода-вывода. Другое применение, актуальное, в том числе и для однопроцессорных систем – обеспечение возможности для приложения реагировать на ввод данных. В однопоточных программах, если основной поток выполнения заблокирован выполнением длительной задачи, все приложение может оказаться в замороженном состоянии. Перемещение таких длительных задачи в рабочий поток, который выполняется параллельно с основным потоком, делает возможным для приложений продолжать реагировать на действия пользователя во время выполнения задач в фоновом режиме.
Дайте определение ресурсу (3 балла);
Ресурсы – 1) средство вычислительной системы, которое может быть выделено процессу на некоторое время; 2) Повторно используемые, относительно стабильные и часто недостающие объекты, которые запрашиваются, используются и освобождаются процессами в период их активности.
Классифицируйте ресурсы (4 балла); Раскройте одну из классификаций ресурсов (4 балла);
Классификация:
1.по форме реализации
Аппаратные ресурсы (процессорное время, объем ОЗУ, жестких дисков)
Программные ресурсы (библиотеки функций)
Информационные ресурсы (содержимое файлов баз данных)
Ресурсы ОС (пайп – pipe)
Иные ресурсы
2.По реальности существования
Физические ресурсы – реально существующие объекты, при распространении обладающие всеми реальными параметрами
Виртуальные ресурсы – модель физических ресурсов. Могут обладать набором характеристик, не присущих физическим ресурсам.
3.По возможности расширения свойств
Жесткие
Эластичные
4.По степени активности
Активные (способны выполнять действия над другими ресурсами). Пример: ЦП
Пассивные (не способны). Пример: ОЗУ
5.Пор времени существования
Постоянные
Временные
С точки зрения процесса постоянный ресурс существует до его появления и существует после исполнения. Временный появляется во время исполнения процесса.
6. Воспроизводимые и потребляемые.
Раскройте концепцию виртуализации ресурсов (6 баллов);
Виртуализация осуществляется в рамках централизованной схемы распределения ресурсов. Путем виртуализации осуществляются две формы «обмана» пользователей:
1.Пользователь обеспечивается при обслуживании своего процессам ресурсом, которые реально не существует, или существует, но с худшими характеристиками. При этом остается в выигрыше, т.к. получает ресурсы с наиболее устраивающими характеристиками.
2.Для нескольких параллельных процессов создается иллюзия одновременного использования нескольких экземпляров того, что реально существует в системе в единственном экземпляре. Тем самым, снимается ограничение на количество распределяемых ресурсов, что увеличивает скорость развития процессов и обеспечивает гибкость по управлению ими.
Пример: доступ к данным на компакт-диске современные ОС организуют таким образом, что у пользователя создается иллюзия работы с магнитным диском; спулинг – процесс обработки выходных данных, направляемых на печатающее устройство (принтер). Создаваемые виртуальные печатающие устройства моделируются с помощью буферов, представляющих собой области внешней памяти. Фактическая передача информации на принтер происходит после того, как заканчивается процесс, являющийся поставщиком информации в выходной буфер.
Одной из основных функций ОС является предоставление прикладным программам системных сервисов, не зависящих от особенностей используемых внешних устройств, объема имеющейся памяти, применяемых файловых систем и т.д. Благодаря этому появляется возможность создавать переносимые программы, работоспособные на любой минимально достаточной аппаратной конфигурации.
Исторически, первой «абстракцией» была возможность указывать устройства ввода-вывода не при создании программы в ее исходном тексте, а при запуске ее на выполнение с помощью соответствующих параметров командного языка ОС. В дальнейшем степень абстрагирования программ от оборудования постоянно возрастала.
Виртуализация обеспечивает объединение и консолидацию ресурсов для совместного пользования.
Дайте определение прерыванию (3 балла);
Прерывание – механизм, координирующий параллельное функционирование отдельных устройств вычислительной системы как единого целого и позволяющий реагировать на особые состояния, возникающие внутри этой системы.
Классифицируйте прерывания (4 балла);
1.Аппаратные
Внутренние. Вызваны событиями в самом процессе. В свою очередь подразделяются на: ловушки, промахи, аварийные завершения.
Внешние. Вызваны событиями, которые исходят от внешних источников (например, периферийных устройств): прерывание по питанию, от таймера, по нажатию клавиатуры и т.д. IRQ
2.Программные.
Классификация по причинам возникновения:
Прерывания 1-го рода возникают у процесса в активном состоянии при необходимости выполнять какие-то действия с ресурсами.
Прерывания 2-го рода – для синхронизации параллельных процессов.
Прерывания 3-го рода.
Дайте определение маскированию прерываний (3 балла);
Маскирование прерываний – это программный механизм запрета обработки некоторых прерываний. Он осуществляется двумя способами. Первый запрещает некоторое конкретное прерывание. Второй – запрещает обрабатывать прерывания, приоритет которых ниже заданного.
Опишите механизм обработки прерывания (4 балла);
Механизм обработки прерываний включает следующие элементы
1.Идентификация прерывания
2.Сохранение контекста прерванного процесса
3.Вызов обработчика прерывания
4.Сохранение информации о прерванной программе, которую не удалось спасти на шаге 2 с помощью действия аппаратуры.
5.Выполнение кода обработчика прерывания.
6.Восстановление контекста прерванного процесса.
7.Возврат в прерванную программу.
Шаги 1-3 реализуются аппаратно, а шаги 4-7 – программно.
Перечислите принципы построения операционных систем (4 балла); Раскройте один из принципов построения ОС (5 баллов);
Принципы построения ОС:
1.Частотный принцип. Наиболее часто встречающиеся операции выполняются наиболее быстро.
2.Принцип модульности. ОС создают на основе объединения самостоятельных функциональных элементов.
3.Принцип функциональной избирательности. Наиболее значимые и часто используемые модули выделяют в ядро.
4.Принцип генерируемости. Настройка системных программ исходя из конкретной конфигурации ЭВМ и круга решаемых задач.
5.Принцип «по-умолчанию». ОС самостоятельно задает параметры работы вычислительной системы, если их не задает пользователь.
6.Принцип перемещаемости. Построение модулей, исполнение которых не зависит от расположения в ОЗУ.
7.Принцип защиты. Необходимо разрабатывать меры, защищающие программы и данные от искажения и виляния друг на друга, а также пользователей ОС.
8.Принцип независимости программ от внешних устройств. Осуществление операций управления внешними устройствами независимо от их конкретных физических характеристик.
9.Принцип наращиваемости и открытости. Открытая ОС доступна для анализа специалистам, наращиваемая – для модификации и совершенствования.
1.Частотный принцип. Для действий, которые часто встречаются при работе с ОС, обеспечиваются условия наиболее быстрого их выполнения. Для данных, к которым происходит наиболее частое обращение, обеспечивается наиболее быстрый доступ.
2.Принцип модульности. Составные части ОС должны быть обособлены друг от друга в отдельные модули. Чаще всего разделение происходит по функциональному признаку. Модульность предполагает возможность без труда заменить один модуль другим при наличии заданных интерфейсов.
(Под модулем в общем случае понимается функционально законченный элемент системы, выполненный в соответствии с принятыми межмодульными интерфейсами.)
3.Принцип функциональной избирательности. В ОС выделяется некоторая часть важных модулей, которые всегда должны быть «под рукой» (в ОЗУ) для эффективной организации вычислительного процесса. Эту часть в ОС называют ядром. Ядро включает в себя модули по управлению системой прерываний, средства по переводу программ из состояния счета в состояние ожидания, готовности и обратно, средства по распределению ресурсов (ОЗУ и ЦП). Ядро всегда находится в оперативной памяти.
4.Принцип генерируемости ОС. ОС настраивается исходя из конкретной конфигурации конкретной машины и круга решаемых задач.
5.Принцип функциональной избыточности. Принцип учитывает возможность проведения одной и той же работы различными средствами. Наличие, к примеру, нескольких типов мониторов (моделей супервизора, управляющих тем или иным видом ресурса) или систем управления памятью позволяет пользователя быстро и наиболее адекватно адаптировать ОС к определенной конфигурации ЭВМ и обеспечить максимально эффективную загрузку технических средств при решении определенных задач.
6.Принцип «по-умолчанию». Принцип основан на хранении в системы некоторых базовых описаний структур процессов, модулей, конфигураций оборудования и данных. Эта информация используется в качестве заданной, если пользователь не изменит и не конкретизирует ее. Суть принципа – следует делать так, если не оговорено иначе.
7.Принцип перемещаемости программ. Модули ОС построены так, что их исполнение не зависит от места расположения в оперативной памяти. Перед исполнением программы или в процессе ее исполнения происходит настройка текста модуля в соответствии с его расположением в памяти.
8.Принцип защиты. Принцип подразумевает разработку мер, ограждающих программы и данные от искажений и нежелательного влияния друг на друга, а также от нежелательного вмешательства пользователя в работу ОС.
9.Принцип виртуализации. Принцип позволяет представить структуру системы в виде определенного набора планировщиков процессов и распределителей ресурсов (мониторов) и использовать единую централизованную схему распределения ресурсов.
10.Принцип независимости программ от внешних устройств. Принцип позволяет одинаково осуществлять операции управления внешними устройствами независимо от их конкретных физических характеристик. Связь программ с конкретными устройствами осуществляется не на уровне трансляции программ, а во время их выполнения.
11.Принцип совместимости. Способность ОС выполнять программы, написанные для других ОС или для более ранних версий данной ОС, а также для другой аппаратной платформы.
12.Принцип открытой и наращиваемой ОС. Открытая ОС доступна для анализа пользователям и специалистам, обслуживающим ЭВМ. Наращиваемая ОС позволяет не только использовать возможности генерации, но и вводить в ее состав новые модули, совершенствовать существующие
ит.д.
13.Принцип мобильности (переносимости). ОС относительно легко должна переноситься с процессора одного типа на процессор другого типа.
14.Принцип обеспечения безопасности вычислений. Защита ресурсов одного пользователя от других
иустановление квот по ресурсам для предотвращения захвата одним пользователем всех системных ресурсов. Обеспечение защиты информации от несанкционированного доступа.
Перечислите свойства уровней абстракции по Майерсу (4 балла);
На каждом уровне ничего не известно о свойствах и даже о существовании более высоких уровней.
На каждом уровне ничего не известно о внутреннем строении других уровней.
Каждый уровень представляет собой группу модулей.
Каждый уровень представляет собой группу модулей.
Каждый уровень располагает определенными ресурсами и либо скрывает их от других уровней, либо представляет уровням некоторые их абстракции.
Каждый уровень может обеспечивать некоторую абстракцию данных в системе.
Предположения, которые на каждом уровне делаются относительно других уровней, должны быть минимальны.
Связи между уровнями ограничены явными аргументами.
Каждый уровень должен иметь высокую прочность и слабое сцепление.
Опишите диспетчеризацию процессов (6 баллов);
Диспетчеризация – предоставление всем процессам в системе по очереди в определенном порядке квантов процессорного времени. Главной целью диспетчеризации является максимальная нагрузка процессора.
Планировщик – компонента ОС, планирующая выделение квантов времени процессам по определенной стратегии.
Диспетчер – компонента ОС, выполняющая само переключение процессора с одного процесса на другой. Время, которое на это требуется, должно быть минимизировано. Диспетчеризация без перераспределения процессорного времени ,т.е. не вытесняющая многозадачность – это такой способ диспетчеризации процессов, при котором активный процесс выполняется до тех пор, пока он не отдаст управление диспетчеру задач для выбора из очереди другого. Диспетчеризация с перераспределением процессорного времени, т.е. вытесняющая многозадачность – такой способ, при котором решение о переключении процессора с выполнения одного процесса на выполнение другого принимается диспетчером задач, а не самой активной задачей (применяется в современных ОС).
При диспетчеризации процессов должно гарантироваться обслуживание всех процессов в очереди.
Альтернативный ответ:
Диспетчеризация процессов – краткосрочное планирование, выбор процессов на исполнение.
Диспетчеризация осуществляется с помощью очереди и приоритета.
Свойства очереди:
1.Равноправие
2.Предсказуемость
3.Масштабируемость
Диспетчеризация может осуществляться на основе приоритетов процессов. Приоритет в свою очередь может определяться, например, временем ожидания исполнения: чем выше время ожидания, тем выше приоритет.
Приоритет fожидания fисполнения fожидания
Перечислите дисциплины диспетчеризации процессов (3 балла);
Дисциплины диспетчеризации
1.Бесприоритетные
Линейные: в порядке очереди; случайный выбор процесса
Циклические: циклический алгоритм; многоприорететный циклический
2.Приоритетные
С фиксированным приоритетом: с относительным приоритетом; с абсолютным приоритетом; адаптивное обслуживание
С динамическим приоритетом: приоритет зависит от времени ожидания; приоритет зависит от времени обслуживания
Перечислите способы распределения памяти (3 балла); Опишите один из способов распределения памяти (4 балла);
1.Простое непрерывное распределение. Каждый процесс занимает непрерывную область памяти, а система принимает к обслуживанию дополнительные процессы до тех пор, пока все они помещаются в основной памяти.
2.Распределение с перекрытием (оверлейное распределение). В памяти держатся только те инструкции, которые нужны в данный момент.
3.Распределение с фиксированными границами. Память предварительно разбивается на несколько разделов фиксированной величины. Поступающие процессы помещаются в тот или иной раздел. Для каждого раздела может существовать своя очередь процессов, или очередь может быть общей. Недостатки: число одновременно исполняемых процессов ограничено числом разделов; возникает фрагментация, т.к. процесс может занимать выделенный ему раздел не полностью.
4.Страничное распределение. Программа разбивается на одинаковые фрагменты за исключением, возможно, последнего. Для размещения фрагментов программы создаются одинаковые единицы памяти – страницы. Программ разбивается на виртуальные страницы, память – на физические.
5.Сегментное распределение. Программа разбивается на части – сегменты, и уже каждой такой части выделяют физическую память. Обращение к элементам программы логически
представляет собой указание сегмента и смещения относительно начала этого сегмента. А физически имя сегмента соответствует базовому адресу, а смещение – добавка к нему.
6.Сегментно-страничное распределение. Программа разбивается на логически законченные части – сегменты, каждый из которых размещается на некотором количестве стандартных страниц памяти. Виртуальный адрес состоит из трех составляющих: сегмент, страница, индекс.
Синхронизация исполнения процессов (4 балла);
Синхронизация процессов – приведение двух или нескольких процессов к такому их протеканию, когда определенные стадии разных процессов совершаются в определенном порядке, либо одновременно. Синхронизация необходима в любых случаях, когда параллельно протекающим процессам приходится взаимодействовать. Для ее организации используются средства межпроцессорного взаимодействия.
Взаимоблокировки процессов и борьба с ними (4 балла)
Ситуация в многозадачной среде, при которой несколько процессов находятся в состоянии бесконечного ожидания ресурсов, занятых самими этими процессами.
Классический способ борьбы – разработка иерархии блокировок, установление правила, что некоторые блокировки никогда не могут захватываться в состоянии, в котором уже захвачены какие-то другие блокировки. Способы избегания:
1.Не бери ложку, если не положил вилку.
2.Бери ложку и вилку сразу.
Опишите подсистему управления процессами (10 баллов);
Два вида планировщиков:
1.Планировщик высокого уровня (долгосрочное планирование). На высоком уровне объектом управления являются не отдельные процессы, а некоторые их объединения, рассматриваемые как единое целое, объединенное функциональным назначением. Такие объединения называют заданиями. Задание может рассматриваться как процесс, программа которого выполняется на виртуальной машине. Задание, рассматриваемое как процесс, характеризуется совокупностью состояний:
Порождение
Состояние готовности
Состояние активности
Состояние окончания
2.Планировщик низкого уровня (краткосрочное планирование). Процесс представляет собой совокупность отдельных состояний. Переходы между этими состояниями планируются и осуществляются под управлением планировщика нижнего уровня, называемого диспетчером задач.
Объектом планирования является ЦП, цель планирования – обеспечение функционирования некоторого множества процессов.
Каждый процесс характеризуется дескриптором.