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

  • Методы борьбы с тупиками в среде ОС, алгоритм «банкира»

  • Страничная схема управления оперативной память

  • Ответы к операционным системам. Вопросы по дисциплине Операционные системы


    Скачать 1.44 Mb.
    НазваниеВопросы по дисциплине Операционные системы
    АнкорОтветы к операционным системам
    Дата25.10.2019
    Размер1.44 Mb.
    Формат файлаdocx
    Имя файлаotvetymez (1).docx
    ТипДокументы
    #91797
    страница6 из 14
    1   2   3   4   5   6   7   8   9   ...   14

    Тупики при обработке процессов

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

    Состояние тупика – блокировки для двух процессов – показано на рис. 3.1.



    Направление стрелки от процесса к ресурсу означает его запрос, а от ресурса к процессу – его выделение процессу. Рис. 3.1. Состояние тупика – блокировки: Р1 и Р2 – ресурсы Рассмотрим следующую ситуацию. Пусть данная ЭВМ обладает одним печатающим устройством (ПУ). На диске ЭВМ имеется файл D. Процессор ЭВМ выполняет две программы – процесса A и B. Процесс А делает попытку прочитать файл D и распечатать его на ПУ. Процесс B получил доступ к ПУ и делает попытку распечатать файл, в результате получим схему запроса процессами ресурсов, показанную в табл. 3.1.



    Когда процесс A запрашивает ПУ, то ОС сообщает, что оно выделено процессу B. Когда процесс B запрашивает файл D, ОС сообщает, что он занят процессом A.Условия возникновения тупиков были сформулированы в 1970 г. Коффманом, Элфиком и Шошани.

    Условия возникновения тупиков:

    - условие взаимоисключения (Mutual exclusion). Одновременно использовать ресурс может только один процесс;

    - условие ожидания ресурсов (Hold and wait). Процессы удерживают ресурсы, уже выделенные им, и могут запрашивать другие ресурсы;

    - условия закрепления ресуросов (No preemtion). Ресурс, выделенный ранее, не может быть принудительно забран у процесса. Освобождены ресурсы могут быть только процессом, который их удерживает;

    - условие кругового ожидания (Circular wait). Существует кольцевая цепь процессов, в которой каждый процесс ждет доступа к ресурсу, удерживаемому другим процессом цепи.


    1. Методы борьбы с тупиками в среде ОС, алгоритм «банкира»

    Основные направления борьбы с тупиками:

    - игнорирование проблемы в целом;

    - предотвращение тупиков;

    - обнаружение тупиков;

    - восстановление после тупиков;

    - алгоритм банкира.

    Среди перечисленных наибольший интерес представляет собой алгоритм, предложенный Э.Б. Дейкстрой, который базируется на так называемых безопасных или надежных состояниях (safe state). Безопасное состояние – это такое состояние, для которого имеется по крайней мере одна последовательность событий, которая не

    приведет к взаимоблокировке.

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

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

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

    Пусть в системе 3 пользователями и 11 устройствами:

    - 9 устройств задействовано;

    - 2 имеется в резерве.



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

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


    1. Страничная схема управления оперативной память

    Оперативная память ЭВМ подразделяется на блоки, такие блокиназываются сегментами. Сегменты могут иметь постоянный или переменный размер. Тогда логическое адресное пространство ЭВМ –набор сегментов.

    Каждый сегмент имеет имя, размер и другие параметры (уровень привилегий, разрешенные виды обращений, флаги присутствия воперативной памяти и т.д.).

    Схема сегментной адресации представлена на рис. 4.10.



    Организация доступа к памяти ЭВМ требует определения физического адреса – номера ячейки оперативной памяти. Программа использует логический адрес, который состоит из двух частей: номерасегмента и смещения к ячейке памяти внутри сегмента. Номер сегмента – его идентификатор, дескриптор. Учет сегментов ведется спомощью таблицы дескрипторов. Каждая строка таблицы – запись,соответствующая определенному сегменту. В этой записи хранятсяхарактеристики сегмента (атрибуты) и адрес начала сегмента в оперативной памяти.

    Страничная память

    Описанная выше схема недостаточно эффективно использует память ЭВМ, более выгодно не размещать процесс одним непрерывным блоком. Вместо сегментов используют набор страниц. Страница – блок памяти фиксированной длины небольшого размера. Так, у процессоров семейства Intel – размер блока 4 Кб. Логический адрес в страничной системе – упорядоченная пара (p, d), где p – номер страницы; d – смещение в рамках страницы p к ячейке памяти. Схема страничной адресации представлена на рис. 4.11.Учет страниц ведется с помощью таблицы. Каждая строка таблица – это запись с атрибутами страницы и номером – адресом страницы.



    1. 1   2   3   4   5   6   7   8   9   ...   14


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