Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы по ОС.doc
Скачиваний:
22
Добавлен:
26.09.2019
Размер:
196.1 Кб
Скачать

26. Проблемы тупиков и методы борьбы с ними

Пусть двум процессам, выполняющимся в режиме мультипрограммирования, для выполнения их работы нужно два ресурса, например, принтер и диск. И пусть после того, как процесс А занял принтер (установил блокирующую переменную), он был прерван. Управление получил процесс В, который сначала занял диск, но при выполнении следующей команды был заблокирован, так как принтер оказался уже занятым процессом А. Управление снова получил процесс А, который в соответст-вии со своей программой сделал попытку занять диск и был заблокирован: диск уже распределен процессу В. В таком положении процессы А и В могут находиться сколь угодно долго., т.е. тупик.Способы борьбы с тупиками.1) Предотвращение и предупреждение образования тупиков. Например: путем обеспечения обхода устрой-ства в одном и том же порядке кажд процессом.2) Динамическое устранение. Создается таблица общих ресурсов с указанием процессов их использующих.3) Контрольные точки. Состояние ОС сохраняет в контрольных точках и при возникновении тупика действие повторяется заново.

27. Управление памятью. Функции ос по управлению памятью.

Оперативная Память(ОП) является важнейшим ресурсом, требующим тщательного управления со стороны ОС. Особая роль памяти объясняется тем, что процессор может выполнять инструкции программы только в том случае, если она находится в оперативе. Функциями ОС по управлению памятью являются: отслеживание свободной и занятой памяти, выделение памяти процессам и освобождение памяти при заверше-нии процессов, вытеснение процессов из оперативной памяти на диск, и возвращение их в оперативную память, когда в ней освобождается место, а также настройка адресов программы на конкретную область физической памяти. Типы адресов. На разных этапах жизненного цикла проги требуется 3 типа адресов:!)Символьные имена. Присваиваются пользователем при написании проги. Например: имена переменных. 2) Виртуальные адреса. Генерируются транслятором, переводимым прогу машинный язык. 3)Физические адреса. Номера ячеек ОП, где в действительно-сти расположены переменные и команды. Виртуальное адресное пространство- совокупность виртуальных адресов процесса. Диапазон возможных адресов у всех процессов является одним и тем же и задается границами 0000000016 и FFFFFFFFF16. Каждый процесс имеет свое виртуальное адресное пространство. Существует 2 способа преобразования виртуальных адресов в физические:1)Замена виртуальн адресов на физические выполняется 1 раз для кажд процесса во время начальной загрузки в память. Используется перемещающий загрузчик, который на основании имеющейся инфы о начальном адресе свободной физической памяти выполняет загрузку проги, совмещая ее с заменой виртуальн адресов физическими. Недостаток: при необходимости переместить процесс в другой участок ОП необходима его выгрузка и повторная загрузка. Когда прога загружается в память в измененном виде ОС запоминает смещение фактического расположения программного вода относи-тельно виртуального адресного пространства. Во время выполнения проги при каждом обращении к ОП выполняется преобразование виртуального адреса в физический. Преимущество: более гибкий способ, допускает перемещение процесса по памяти. Недостаток: увеличиваются затраты на постоянный пересчет адресов. Необходимо различать:1)Максимально возможное виртуальное адресно е простран-ство процессора. Определяется архитектурой компа и разрядностью его схем адреса-ции: 32 и 64-битные.Например: 32-разрядный процессор-232-4Гб. 2)Предназначенное выделенное процессу виртуальное адресное пространство. Представляет собой набор виртуальных адресов, нужных процессору для работы.

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