Управление памятью

Тупики

Способы реализации взаимного исключения

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

Недостаток: это аналогично не вытесняющему режиму.

2) Использование блокирующих переменных. С каждым разделяемым ресурсом связывается двоичная переменная, которая принимает значение “1” – если ресурс свободен, и “0” – если ресурс занят. Перед входом в критическую секцию процесс проверяет значение переменной. Если оно равно “0”, то проверка циклически повторяется, если ресурс свободен, то значение переменной устанавливается в “0” и процесс входит в критическую секцию.

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

3) Аппарат событий. Используются системные функции:

WAIT(x), где x – идентификатор некоторого события

POST(x)

Если ресурс занят, то процесс не выполняет циклический опрос, а вызывает системную функцию WAIT(x) – это ожидание освобождения ресурса x. Эта функция переводит активный процесс в состояние ожидания и делает пометку в его дескрипторе о том, что процесс ожидает события x.

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

Пример:

Процесс 1 Процесс 2

………………………….
получить доступ к диску С:
получить доступ к принтеру
………………………….
………………………….
получить доступ к принтеру
получить доступ к диску С:
………………………….

Пусть двум процессам, выполняющимся в режиме мультизадачности, для выполнения их работы нужно два ресурса, например, принтер и диск. Допустим, процесс 1 занял принтер (установил блокирующую переменную), после этого он был прерван. Управление получил процесс 2, который сначала занял диск, но при выполнении следующей команды был заблокирован, так как принтер оказался уже занятым процессом 1. Управление снова получил процесс 1, который в соответствии со своей программой сделал попытку занять диск, и был заблокирован: диск уже распределен процессу 2. В таком положении процессы 1 и 2 могут находиться сколь угодно долго, и возникает неразрешимая ситуация – тупик.

Способы борьбы с тупиками:

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

2) Динамическое устранение тупиков. Создается таблица общих ресурсов с указанием процессов их использующих.

3) Контрольные точки. Состояние операционной системы сохраняется в контрольных точках и при возникновении тупика действия повторяются заново.

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

Функции операционной системы по управлению памятью:

1) Отслеживание свободной и занятой памяти

2) Выделение памяти процессам и освобождение памяти при завершении процессов

3) Вытеснение кодов и данных процессов из оперативной памяти на диск и обратная операция

4) Настройка адресов программы на конкретную область физической памяти


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: