Файл: Вопросы для подготовки к экзамену по дисциплине " Операционные системы ".docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 10.01.2024

Просмотров: 175

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
были ждать своей очереди наряду с прерванными, что является недостатком дисциплины.

От этого недостатка свободна дисциплина SRT (следующим выполняется задание, которому до полного выполнения необходимо меньше всех процессорного времени). Эта дисциплина относится также к циклическим приоритетным дисциплинам.

  1. Что такое карусельная дисциплина обслуживания? Как она реализуется?

Эти проблемы решает дисциплина RR (Round Robin), которая имеет и другое название: карусельная. Она использует циклический алгоритм с одной общей очередью задач на выполнение с предоставлением задачам процессорного времени квантами q. По истечении кванта времени задача снимается с процессора и ставится в конец очереди на равных условиях с вновь поступающими задачами. Величина кванта определяется на основании компромисса между приемлемым временем ожидания пользователями реакции системы на свои запросы и накладными расходами, вызванными слишком частыми переключениями между задачами при слишком малых квантах времени. В некоторых системах квант является фиксированной величиной, в некоторых можно указывать минимальное и максимальное значение кванта. В этом случае квант получает сначала минимальное значение, а в случае прерывания задачи, выделенный задаче квант увеличивается на некоторый шаг до тех пор, пока он не станет достаточным для завершения задачи или не получит максимальное значение.

  1. Чем отличается планирование процессов от диспетчеризации?

Планирование – долгосрочный подбор задач, ориентированных на разные ресурсы в целях повышения эффективности использования процессорного времени, а диспетчеризация – краткосрочный подбор задач.

  1. Какими способами обеспечивается гарантированное обслуживание процесса?

Существует три способа обеспечения гарантированного обслуживания процесса:

· выделение некоторой минимальной доли процессорного времени классу задач при наличии в классе хотя бы одного процесса, находящегося в состоянии готовности;

· выделение некоторого минимального времени любому процессу, находящемуся в состоянии готовности;

· выделение процессу такого количества процессорного времени, которое гарантирует завершение процесса к некоторому наперёд заданному сроку.

Применение описанных выше динамических приоритетов является одной из гарантий обслуживания процессов.


  1. По каким критериям сравниваются алгоритмы диспетчеризации?

Для сравнения алгоритмов диспетчеризации применяется ряд критериев:

· Загрузка центрального процессора (в среднем для персональных систем 2 – 3%, для серверов от 15 – 40% до 90 – 100%);

· Пропускная способность центрального процессора, измеряется количеством процессов, выполняемым за единицу времени;

· Время оборота – время, затраченное на выполнение процесса с момента его появления до момента исчезновения;

· Время ожидания – время нахождения процесса в очереди готовых процессов;

· Время отклика (для интерактивных программ) – время, прошедшее от момента попадания процесса во входную очередь до момента первого обращения к терминалу.

  1. Каковы пути повышения производительности мультипроцессорных систем?

В мультипроцессорных системах повышение производительности достигается вследствие применения:

· совместного планирования, при котором все неблокированные потоки одного приложения одновременно ставятся на выполнение процессорами и одновременно снимаются с выполнения;

· блокирования прерывания задач, находящихся в критической секции и запрета постановки в очередь на выполнение активно ожидающих задач до освобождения входа в секцию;

· планирование с учётом подсказок, в частности указаний процессов, подлежащих снятию с процессора и указаний процессов, которые следует поставить на процессор.

  1. Что такое параллельные, независимые и взаимодействующие процессы?

В современных мультипрограммных системах могут одновременно выполняться несколько последовательных вычислительных процессов, находящихся в активном состоянии. Такие процессы называются параллельными и могут выполняться как на независимых устройствах, так и разделять различные ресурсы и конкурировать за них между собой. Например, может существовать конкуренция за процессорное время. Параллельные процессы могут быть независимыми и взаимодействующими.

Независимыми процессами называются процессы, которые не имеют общих данных, располагающихся в оперативной и внешней памяти. Независимые процессы не оказывают влияния друг на друга посредством изменения данных. Однако они замедляют исполнение друг друга.

Взаимодействующие процессы имеют общие данные, расположенные как в оперативной памяти, так и во внешней памяти. Они могут также конкурировать за разделяемые ресурсы.



  1. Что такое разделяемые и разделяемые критические ресурсы?

Разделяемые ресурсы, которые в каждый конкретный момент времени могут находиться в распоряжении только одного процесса, называются критическими. Два процесса, конкурирующие за критический ресурс должны быть синхронизированы, т.е. согласованы во времени. Это означает, что их обращения к критическим ресурсам должны происходить в разные моменты времени, в противном случае появляются ошибки, которые трудно выявляются и устраняются. Дополнительные трудности в синхронизацию параллельных процессов вносит разная скорость их исполнения, причём процессы не имеют информации ни о содержании, ни о скорости выполнения друг друга.

  1. Опишите обобщённую модель взаимодействующих процессов.





  1. Что такое обычная и критическая секции программного кода процесса?

Программный код, реализуемый каждым процессом можно разбить на две секции. Секция, которая содержит обращение к критическому ресурсу, называется критической, а секция, которая не содержит такого обращения, может быть названа обычной секцией. Следует иметь в виду, что секции в свою очередь могут являться процессами.

  1. Как организуется передача данных между взаимодействующими процессами?

  2. Что такое синхронизация процессов и какой результат может получиться при неправильной синхронизации? Поясните примером.

В данном случае синхронизация процессов состоит в ведении обоими процессами совместного учёта занятых и свободных буферов и обеспечении чтения сообщений потребителем при непустой очереди и посылки сообщений поставщиком при наличии пустых буферов. Для ведения подобного учёта процессы должны иметь общие переменные, доступ к которым регулируется опять-таки на основе взаимных исключений.

  1. Что такое конкурирующие и сотрудничающие процессы?

По способу взаимного влияния взаимодействующие процессы можно разделить на конкурирующие и сотрудничающие. Конкурирующие процессы могут в принципе выполняться поодиночке. Однако при параллельном выполнении они начинают конкурировать за разделяемый критический ресурс и оказывать влияние друг на друга. Сотрудничающие процессы совместно обрабатывают общие данные и содержат в явном виде операторы передачи данных из одного процесса в другой.

  1. Что такое взаимное исключение и какими методами оно реализуется?


Взаимное исключение – обеспечение невозможности обращения к критическому ресурсу более одного процесса в один и тот же момент времени.

Методы реализации:

  • блокировка памяти;

    • специальные команды типа "проверка и установка";

    • средства, предоставляемые системой управления прерываниями:

  • семафорные операции;

  • мониторы;

  • почтовые ящики, конвейеры и очереди сообщений.

  1. Опишите схему взаимодействия "поставщик–потребитель".

Сотрудничающие процессы строятся по схеме "поставщик – потребитель". Для них так же, как и для конкурирующих процессов, справедлив механизм взаимных исключений, регулирующий доступ к критическим ресурсам. Однако, должны быть и средства синхронизации процессов, согласующих выполнение процессов во времени и позволяющие осуществить обмен данными. При обмене данными поставщик посылает потребителю сообщение. Однако потребитель может оказаться не готовым к принятию сообщения. Поэтому сообщение поступает в специально выделенную для обмена данными область памяти, называемую буфером, и ждёт выборки процессом-потребителем.

  1. Какие требования предъявляются к критическим секциям программного кода процессов?

Основные требования, предъявляемые к критическим секциям:

    • в любой момент времени только один процесс должен находиться в своей критической секции;

    • продолжительность нахождения процесса в критической секции не может быть бесконечно долгой;

    • ни один процесс не должен бесконечно долго ожидать разрешения вхождения в свою критическую секцию, для чего должно обеспечиваться выполнение правил:

  • процесс, работающий вне своей критической секции не должен блокировать критическую секцию другого процесса;

  • принятие решения о порядке вхождения в критическую секцию процессов, конкурирующих за критический ресурс, не должно быть бесконечно долгим;

  • если процесс, находящийся в критической секции завершён естественным или аварийным путём, то режим взаимного исключения должен быть отменён.

  1. Что такое блокировка памяти? В чём смысл метода одной общей переменной?

Все вычислительные машины и системы поддерживают блокировку памяти, запрещающую одновременное обращение к одной и той же ячейке памяти двух и более команд. Однако механизм блокировки памяти не исключает чередование поочерёдный доступ к ячейке памяти двух и более процессов. Для обеспечения чередование доступа процессов к общей переменной, расположенной в памяти возможны три варианта:


· применение одной общей переменной (переключателя);

· применение двух общих переменных;

· применение двух общих переменных с усилением взаимных исключений;

· применение трёх общих переменных (алгоритм Декера).

Применение одной общей переменной предусматривает создание переменной, называемой "переключателем" и могущей принимать значения 1 или 2.

  1. Поясните метод двух и трёх общих переменных.

Применение двух переменных предусматривает создание двух общих для процессов Р1 и Р2 логических переменных, которые называются флагами, могут иметь значения True или False. Эти переменные называются переключателями.

Алгоритм Декера предусматривает создание трёх переменных перекл_1, перекл_2 и Очередь. Переменные перекл_1 и перекл_2, как и ранее, гарантируют выполнение взаимного исключения. Переменная очередь, указывает какой из процессов, конкурирующих за критический ресурс, должен войти в свою критическую секцию. Переменная очередь не изменяется во время принятия решения о порядке вхождения процессов в критические секции. Еаё изменение присходит в конце выполнения критической секции. Таким образом, согласно алгоритму Деккера возможны три ситуации вхождения процессами в критические секции:

· перекл_1=True и перекл_2=False;

· перекл_1=False и перекл_2=True;

· перекл_1=True и перекл_2=True и оба процесса желают сойти в критическую секцию.

  1. Что такое команды "проверка-установка"? Чем они отличаются от обычных команд "проверка" и "установка"?

Операция «проверка – установка» осуществляется двухадресной командой, которая записывает данные по двум адресам и исключает выполнение каких-либо команд во время своего выполнения.

Причиной возникновения проблем при реализации взаимного исключения посредством блокировки памяти является реализация механизма двумя командами "проверить флаг" и "становить флаг". Во время исполнения этой пары операций доступ к флагам имеют все процессы, конкурирующие за критический ресурс. Попытка решить эту проблему аппаратными средствами была сделана ещё в знаменитых машинах IBM 360 и IBM 370. В них появилась единая неделима команда TS (Test and Set) проверки и установки переменных. Т.к. эта команда неделима, то на время её использования одним процессом проверяемая переменная становится недоступна другим процессам.