Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Full_OS (1).doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
6.1 Mб
Скачать

3.Задача

Применить алгоритм обнаружения взаимоблокировки к приведенным данным.

Доступность = (2100),

2001 0010

Требования = 1010 , Распределение = 2001

  1. 0120

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

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

Итак, будем выбирать процесс, который при данном количестве свободных ресурсов может получить необходимое ему для выполнения количество ресурсов. Выбираем строку из матрицы Требования, которая была бы меньше строки доступных ресурсов. В данном случае возможно выделение 2 единиц первого ресурса и 1 единицы второго ресурса процессу 3 (третья строка матриц). После завершения этот процесс освободит дополнительную единицу ресурса 2 и две единицы ресурса 3, занятые им на момент начала анализа состояния системы. После завершения процесса 3 вектор доступных ресурсов составит (2100) + (0120) = (2220). Пометим этот процесс как завершенный и не участвующий в дальнейшем анализе.

Вновь ищем процесс, требования которого по предоставлению ресурсов система может выполнить, находясь в текущем состоянии. Это процесс 2 (вторая строка матриц). И после завершения он освободит дополнительно две единицы ресурса 2 и одну единицу ресурса 4. Вектор доступных ресурсов после завершения процесса 2:

(2220) + (2001) = (4221) Помечаем 2 процесс выполненным. Остался лишь процесс 1, которому теперь система может предоставить требуемое количество ресурсов. Процесс 1 успешно завершается. Помечаем его выполненным. После анализа состояния с помощью алгоритма обнаружения тупиков не осталось не помеченных нами процессов. Это означает, что существует последовательность, при которой все процессы могут быть выполнены. Следовательно система не находится в состоянии взаимоблокировки.

Билет 5

    1. Явление фрагментации памяти. Фрагментация памяти, обусловленная методом распределения памяти. Внутренняя и внешняя фрагментация. Методы борьбы с фрагментацией памяти.

    2. Согласование скоростей обмена и кэширование данных. Виды буферизации. Количественная оценка различных методов буферизации.

  1. Явление фрагментации памяти. Фрагментация памяти, обусловленная методом распределения памяти. Внутренняя и внешняя фрагментация. Методы борьбы с фрагментацией памяти.

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

Появление или непоявление фрагментации зависит от метода организации памяти.

Внутренняя фрагментация – при заполнении страниц в среднем половина последней страницы остаётся незаполненной. Эти «дыры» и есть внутренняя фрагментация.

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

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]