ааа. Документ Microsoft Word. Руководство по изучению дисциплины Операционные системы (Информатика бк)
![]()
|
Управление ресурсами.Как уже упоминалось ранее, в рамках проблемы управления вычислительными ресурсами необходимо решать две задачи: · планирование ресурса – определение, кому, когда и в каком количестве, необходимо выделить данный ресурс; · отслеживание состояния ресурса, то есть поддержание оперативной информации о том, занят или не занят ресурс, а для делимых ресурсов, какое количество ресурса уже распределено. Вычислительные ресурсы можно разделить на две категории — выгружаемые и невыгружаемые ресурсы. Ресурс считается выгружаемым, если его можно во время работы процесса-владельца передать другому процессу без ущерба для процесса-владельца. Память является выгружаемым ресурсом. А вот устройство записи компакт-дисков является невыгружаемым ресурсом. Взаимоблокировкой называется ситуация, когда одни процессы блокируют доступ другим процессам к различным ресурсам. Она обусловлена тем, что в каждый конкретный момент времени один и тот же ресурс может быть использован только в рамках одной задачи. Это особенно заметно при использовании периферийного оборудования, к примеру, в случае сканирования или печати документа, или же при работе с файловой системой. Взаимоблокировка выгружаемых ресурсов разрешается путем перераспределения ресурсов между процессами. Взаимоблокировка невыгружаемых ресурсов может быть решена путем блокировки процесса до тех пор, пока не освободится запрошенный ресурс. С точки зрения операционной системы, использование ресурса можно разделить на три этапа – запрос, использование и возврат ресурса. Для каждого их этих этапов должны существовать определенные механизмы защиты процессов от взаимоблокировки. Если процесс запрашивает ресурс, который в данный момент уже используется другим процессом, то процесс попадает в короткий цикл – запрос ресурса, отказ, ожидание. Механизм использования ресурсов различен в разных операционных системах. В одних системах существует специальный системный вызов, который позволяет процессам в явном виде запрашивать использование ресурса. В других системах каждому ресурсу сопоставлен файл или канал, посредством которого процесс может использовать ресурс. Концепция каналов широко распространена в UNIX-системах. Для возникновения взаимоблокировки должны выполняться ВСЕ следующие условия: o Взаимное исключение – каждый ресурс либо доступен, либо используется одним процессом; o Удержание и ожидание – процесс, уже получивший какой-либо ресурс и, не освобождая его, запрашивает новый ресурс; o Отсутствие принудительной выгрузки ресурса – отсутствует механизм принудительного освобождения ресурсов у занимающих их процессов; o Циклическое ожидание – каждый из процессов в системе ожидает освобождения ресурса, занятого другим процессом. При решении данной проблемы может использоваться любой из следующих подходов – игнорирование проблемы, реакция на возникшую взаимоблокировку, аккуратное управление ресурсами или структурное опровержение каждого из условий для предотвращения возникновения взаимоблокировок. Первый подход применим в том случае, если при решаемых задачах вероятность возникновения взаимоблокировки минимальна либо невозможна. К примеру, необходимые для возникновения взаимоблокировки условия выполняются в среднем раз в год, а замена оборудования и операционной системы по причине различных сбоев и поломок происходит раз в месяц. В таком случае, механизм предотвращения взаимоблокировок в системе не реализовывается, дабы не жертвовать производительностью системы, поскольку любой защитный механизм отнимает у системы ресурсы и время, которые можно потратить на решение поставленных задач. Большинство современных операционных систем, включая Windows, предпочитает не заниматься вопросами предотвращения взаимоблокировок. При втором подходе система не предотвращает взаимоблокировки, но производит мониторинг всех действий, выполняемых системой, чтобы после возникновения взаимоблокировки откатить систему к моменту ее возникновения и скорректировать работу системы таким образом, чтобы избежать повторения ситуации в дальнейшем. Задача определения тупиковых ситуаций и выхода из них при таком подходе требует серьезных знаний в области системного анализа и высшей математики, поэтому в данной теме она не рассматривается. Уклонение от взаимоблокировок возможно только в том случае, когда операционная система владеет информацией о том, когда и в каком объеме каждый процесс будет запрашивать ресурсы, а это невозможно. Предотвращение взаимоблокировок возможно, когда вероятность каждого из необходимых условий сведена к минимуму. Первое условие может быть заблокировано следующим образом – принудительное ограничение числа процессов-претендентов на каждый ресурс. Второе условие блокируется, если обязать процессы резервировать все ресурсы перед выполнением. Если какой-либо ресурс недоступен, процессу отказывают в исполнении до тех пор, пока ресурс не освободится. Недостаток этого способа в том, что процесс зачастую не знает, сколько и каких ресурсов ему понадобится в каждый момент времени исполнения. Из этого следует также тот факт, что ресурсы при таком подходе будут использоваться неэффективно. Третье условие блокировке не поддается, потому что может привести к самым непредсказуемым последствиям, вплоть до поломки оборудования. Четвертое условие поддается блокировке сравнительно простым способом. Для этого необходимо определить порядок использования ресурсов процессами во избежание заведомо тупиковых ситуаций. К примеру, процесс не может обратиться к принтеру, не прочитав данные с диска, или процесс не может осуществлять запись на диск, не получив предварительно данные с другого устройства. |