Главная страница
Навигация по странице:

  • Применение

  • Вопросы к экзамену по дисциплине Операционные системы. [2 курс] Вопросы к экзамену Операционные системы. Вопросы для подготовки к экзамену по дисциплине " Операционные системы "


    Скачать 297.66 Kb.
    НазваниеВопросы для подготовки к экзамену по дисциплине " Операционные системы "
    АнкорВопросы к экзамену по дисциплине Операционные системы
    Дата18.04.2023
    Размер297.66 Kb.
    Формат файлаdocx
    Имя файла[2 курс] Вопросы к экзамену Операционные системы.docx
    ТипДокументы
    #1069993
    страница3 из 6
    1   2   3   4   5   6

    Процессы и управление ими. Тупики.

    1. Что такое мультипрограммный и мультизадачный режимы работы операционной системы?

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

    Поскольку процессы могли содержать разные задачи, то появился многозадачный режим. В мультизадачном режиме в противовес мультипрограммному режиму обеспечивается взаимодействие между вычислениями. Для подчёркивания этой разницы были введены термины "легковесные процессы" (thin), они же потоки выполнения, нити и треды (threads). Легковесными они называются потому, что процессору не требуется для их реализации организовывать полноценную виртуальную машину. Единственно, что имеют легковесные процессы своего, это процессорное время, всё остальное у связанных легковесных процессов общее. Наличие легковесных процессов позволило организовать многопоточное выполнение задач.

    1. Что такое дескриптор процесса? Какова его роль при прерывании процесса?

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

    1. В каких состояниях могут находиться процессы в операционной системе?

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

    Активный процесс имеет три состояния:

    · готовность – все ресурсы могут быть предоставлены, если процесс перейдёт в состояние выполнения;

    · выполнение – все ресурсы выделены, происходит выполнение команд программы;

    · ожидание – затребованные ресурсы не могут быть выделены или не завершена операция ввода-вывода.

    1. Поясните пожалуйста основные функции операционной системы при управлении процессами.

    Таким образом, при управлении процессами операционная система выполняет следующие основные функции:

    · создание и удаление задач в обобщающем смысле слова (это и процесс, и поток выполнения, т.к. они при управлении задачами не имеют существенных различий);

    · планирование процессов;

    · диспетчеризация задач;

    · синхронизация задач и обеспечение их средствами коммуникаций.

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

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

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

    Актуальность долгосрочного планирования процессов с развитием вычислительных систем снизилась. И, наоборот, возросла актуальность краткосрочного (динамического) планирования процессов и задач, которое приходится осуществлять практически при появлении каждого события. Динамическое планирование принято называть диспетчеризацией задач. Диспетчеризация – краткосрочный подбор задач, ориентированных на разные ресурсы в целях повышения эффективности использования процессорного времени.

    Диспетчеризацию задач осуществляет другой блок супервизора – диспетчер задач. Диспетчер запускается раз 30 – 100 мс.

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

    1. Что такое стратегия планирования? На каких принципах она основана?

    И долгосрочное и динамическое планирование осуществляются на основании ряда принципов, которые называют "стратегия планирования" (или "стратегия обслуживания") и "дисциплина обслуживания".

    Стратегия планирования основана на следующих основных принципах:

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

    · отдавать предпочтение более коротким вычислительным задачам;

    · предоставлять всем процессам пользователей одинаковое время ожидания.

    1. Что означает термин "Задача переднего плана"?

    В стратегии планирования используется понятие "задача переднего плана" (foreground task). Этот термин родился из предположения "параллельная работа одного пользователя со множеством задач маловероятна". Поэтому из множества задач одного пользователя самый высокий приоритет имеет текущая задача, т.е. задача с которой он работает в текущий момент времени. В то же время для обеспечения нормальной работы коммуникационных процессов задачи ввода-вывода и управления должны иметь более высокий приоритет, чем задачи пользователя.

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

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

    1. Поясните линейные дисциплины обслуживания.

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

    Линейная дисциплина осуществляет выбор процессов из очереди в хронологическом порядке их появления в ней (FCFS – первым пришёл, первым обслужен) или случайным образом.

    1. Поясните циклические дисциплины обслуживания.

    Циклические алгоритмы порождаются действием механизма прерывания. Существуют два варианта таких алгоритмов:

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

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

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

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

    1. Что такое приоритетные дисциплины обслуживания? Перечислите и поясните группы дисциплин, относящихся к приоритетным дисциплинам.

    Приоритетные дисциплины предоставляют отдельным задачам право попасть на первоочередное обслуживание. Приоритет может быть постоянным и изменяемым (динамическим).

    1. Что такое дисциплины с фиксированным приоритетом?

    Приоритет, присвоенный задаче, является постоянной величиной в дисциплинах с фиксированным приоритетом.

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

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

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

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

    1. Что такое вытесняющие и невытесняющие дисциплины обслуживания?

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

    1. Что такое дисциплины SJN и SRT?

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

    От этого недостатка свободна дисциплина 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) проверки и установки переменных. Т.к. эта команда неделима, то на время её использования одним процессом проверяемая переменная становится недоступна другим процессам.

    1. Поясните принцип действия семафоров

    Семафор – специальная переменная, которая своим значением сигнализирует о состоянии критического ресурса и позволяет выполнить с собой два действия, называемые семафорными примитивами:

    • P(S) – декремент значения семафора и проверка нового значения, если оно не меньше нуля, то выполняется критическая секция процесса, иначе процесс переводится в состояние ожидания;

    • V(S) – увеличение значения семафора на единицу и перевод в состояние готовности процессов, ожидающих критический ресурс.

    Существует множество «семафорных» алгоритмов, создающих значения семафора с разными областями возможных целочисленных значений.
    Семафоры, имеющие бинарное значение называются МЬЮТЕКСАМИ. Мьютексы имеют два состояния «Отмечен» (открыт) и «Не отмечен» (закрыт).

    Недостатком механизма семафоров является примитивность семафоров: они не содержат ни непосредственного указания на синхронизирующий механизм, ни непосредственного указания на ресурс, который они контролируют.

    1. Поясните принцип действия мониторов.

    Монитором в параллельном программировании называют пассивный набор разделяемых переменных и повторно входимых процедур (см. раздел 1.6). Повторно входимые процедуры обеспечивают доступ к разделяемым переменным. В каждый момент времени монитором может пользоваться только один процесс. Процедуры монитора исполняются только по требованию процессов.

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

    1. Поясните принцип действия почтовых ящиков.

    Множество буферов сообщений (гнёзд), предназначенных для одного процесса, называются почтовым ящиком. Почтовый ящик является информационной структурой и состоит из головного элемента и нескольких гнёзд. Головной элемент содержит сведения о почтовом ящике (количество гнёзд и их объёмы), которые задаются при создании почтового ящика.

    1. Поясните работу конвейеров и очередей сообщений.

    Конвейеры, иначе транспортёры или каналы связи, представляют собой потоки байтов, передающихся между двумя и более процессами. Физически конвейеры реализуются как буферная память, работающая по принципу FIFO, но они не являются очередями. Как информационная структура конвейеры описываются идентификатором, размером (не более 64К), указателем начала данных и указателем конца данных, которые определяют адреса начала и конца данных. Конвейер представляет собой закольцованную очередь (рис. 3.8).

    В исходном состоянии оба указателя равны нулю. При добавлении в конвейер данных оба указателя увеличиваются на единицу. Дальнейшее добавление данных увеличивает значение указателя на конец данных (рис. 3.8,а). Чтение и удаление данных происходит всегда с начала. Поэтому при чтении и удалении данных приходится изменять значения указателей. В итоге указатели движутся от начала конвейера к её концу. Серым цветом на рис. 3.8 показаны записанные данные. Свободная область в начале конвейера образовалась в результате удаления и чтения данных.

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

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

    Второй особенностью очереди сообщений является сохранение в ней прочитанных записей, в то время как из конвейера они удаляются. Третьей особенностью очереди является присутствие в очереди не сообщений, а их адреса в памяти и размер. Эти данные хранятся в области памяти, которая является общей для процессов, обменивающихся сообщениями. Каждый процесс, пользующийся очередью должен получить доступ к общему разделу памяти через системные запросы API, т.к. очередь – это системный механизм.

    1. Что такое тупик? Приведите примеры.

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

    Процессы Р1 и Р2 вошли в критические секции и захватили ресурсы R1 и R2 соответственно. Впоследствии P1 затребовал R2, а P2 – ресурс R1. Но ресурсы уже заняты. Критические секции процессов не завершены, процессы в режиме ожидания.

    Тупик проявляется отсутствием реакции системы на управляющие сигналы, возможности ввода и вывода данных.

    1. Каковы условия возникновения тупика?

    Для появления тупиков должны одновременно выполняться четыре условия:

    • взаимное исключение не запрещает монопольный доступ к разделяемым ресурсам (условие взаимного исключения);

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

    • невозможность перераспределения ресурсов, захваченных процессами, находящимися в режиме ожидания (условие отсутствия перераспределения);

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



    1. Какова классификация разделяемых ресурсов в модели Холта?



    1. В чем разница между системными ресурсами и расходуемыми ресурсами?

    Системные ресурсы SR представляют собой множество идентичных единиц некоторого вида ресурсов. Это множество единиц конечно и неизменно в операционной системе. Каждая единица ресурса либо доступна, либо выделена какому-либо процессу. Никакой процесс не может влиять на ресурс (или на его единицу), который ему не принадлежит. К системным ресурсам относятся основная и внешняя память, периферийные устройства, иногда процессоры, программное обеспечение, файлы данных, таблицы и разрешение войти в критическую секцию.

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

    1. Поясните как возникновение тупика при кольцевом обмене процессов сообщениями через почтовые ящики.

    При обмене процессами сообщениями через почтовые ящики по кольцевой схеме (рис. 4.2) возможно возникновение тупика. Процессы ПР1, Пр2, Пр3 создают сообщения М1, М2 и М3 соответственно. Посылка сообщения является запросом разделяемого ресурса типа CR, приём сообщения – освобождением запрошенного ресурса. Следует помнить, что процесс может послать сообщение только в почтовый ящик при наличии свободного гнезда. Взаимодействие процессов осуществляется посредством получения сообщений от предшествующего процесса и посылкой сообщения последующему.

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

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

    1. Приведите пример возникновения тупика в системе с семафорами.

    2. Приведите пример возникновения тупика в системе с мониторами.

    3. Что такое сеть Петри? Из каких элементов она состоит?

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

    Элементы сети Петри:

    • вершины-переходы, соответствующие событиям,
      происходящим в системе;

    • вершины-позиции, соответствуют условиям
      возникновения событий;

    • направленные дуги (стрелки);

    • фишки (точки в вершинах-позициях) – средства
      активизации переходов.

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

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

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

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

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

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

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

    1. Как исключить условие кругового ожидания для предотвращения тупика?

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

    1   2   3   4   5   6


    написать администратору сайта