Распределение ресурсов
Когда каждый процесс запрашивает ресурсы, доступные в системе, операционная система выделяет необходимые ресурсы для целей его выполнения. Выделенными ресурсами могут быть жесткий диск, сканер, любые файлы в памяти или даже принтер. Любая программа, которая переходит в состояние готовности или выполнения, называется процессом. Эта программа требует ресурсов от того или иного процесса для выполнения поставленной задачи.
В мультипрограммной среде процесс может запрашивать несколько ресурсов одновременно, поэтому этим процессам приходится ждать, пока он не получит все ресурсы. Распределитель ресурсов, присутствующий в операционной системе, обычно отвечает за распределение ресурсов по запросу пользователя и их освобождение после завершения между различными процессами. Распределение ресурсов должно быть распределено таким образом, чтобы все процессы имели достаточно ресурсов, необходимых для работы над своей задачей.
Распределение ресурсов
Когда ресурсы выделяются, для процесса на основе запроса возникают различные проблемы при многопользовательской обработке, из-за которых было бы дорого предоставлять ресурсы, которые не подлежат совместному использованию, чтобы компенсировать более высокие требования. Операционная система должна распределять ресурсы без потери целостности системы.
Рассмотрим практический пример пользователя, работающего с файлом Excel, который хочет распечатать некоторые данные с помощью принтера, подключенного к системе. Затем операционная система выделяет принтер процессу Excel в зависимости от его доступности. Процесс переходит в состояние ожидания, если принтер используется другим процессом в системе.
Механизмы распределения, используемые операционной системой для выделения ресурсов процессу, приведены ниже –
Выделение памяти - Когда программа запрашивает ресурсы у операционной системы, процесс и входные данные должны быть сохранены в основной памяти для выполнения его выполнения. Диспетчер памяти несет ответственность за распределение ресурсов в соответствии с доступными или свободными местами, и после предоставления памяти запрошенному процессу начинается выполнение программы. Управление памятью имеет два разных подхода к распределению процесса в системе. При непрерывном подходе процессы назначаются фиксированным блокам памяти большего размера и хранятся в ячейках памяти с последовательными адресами, тогда как при несмежном подходе процессы хранятся в разных блоках, расположенных в разной памяти. части не обязательно должны располагаться последовательно, что кажется эффективным методом, поскольку он использует области памяти только при необходимости.
Процессоры
В операционной системе есть дескриптор процесса, который определяет процесс получения ресурсов от процессоров. Обычно присутствует один центральный процессор, тогда как в многопроцессорной среде может одновременно работать множество процессоров, обслуживающих запрос пользователя. Блок управления процессом содержит информацию о состоянии ресурсов при создании каждого процесса. Это предоставляет состояния каждого процесса, такие как новый, запущенный, ожидающий, готовый, заблокированный или завершенный.
Права доступа к файлам
Файлы состоят из набора пользовательской информации, которую иногда называют программами. Ресурсы выделяются файлу вместе с правами доступа, указанными владельцем для отдельного пользователя или группы пользователей. Такие операции, как чтение, запись и выполнение, также выделяются вместе с файлом, хранящимся в памяти. Если одновременно запрашивается несколько файлов, то какой-то процесс попадает в очередь до истечения срока ее действия.
Резервное копирование памяти
Ресурсы могут быть выделены диспетчером памяти, как было сказано ранее. Виртуальную память также можно использовать для хранения недавно использованных файлов. В резервном хранилище запрос пользователя не может быть поставлен в очередь, так как для процесса запроса будут выделены свободные места.
Методы распределения
Методы распределения Когда ресурсы выделяются процессу, операционная система имеет две политики для методов распределения:
С взаимоблокировкой — взаимоблокировка возникает, когда процесс ожидает набора ресурсов, удерживаемых другими процессами, и ожидает получения всех запрошенных ресурсов, прежде чем он будет разблокирован. Взаимная блокировка может возникнуть в определенных условиях, таких как удержание и ожидание, взаимное исключение, отсутствие вытеснения и циклическое ожидание.
Рассмотрим пример, когда два процесса P1 и P2 нуждаются в ресурсах X и Y. В этом случае P1 ждет ресурса Y, где P2 удерживает ресурс Y, а P2, в свою очередь, ждет ресурса X, который должен быть освобожден P1, удерживающим его. . Итак, здесь создается цикл, когда P1 нужен ресурс Y и он ждет, пока P2 его освободит, а P2 нужен X и ждет, пока P2 его освободит. Тупики можно разрешить такими методами, как обнаружение, предотвращение, избегание и проблема страуса.
Без взаимоблокировки — Если ресурсы, доступные в памяти, достаточны и обслуживают несколько процессов одновременно, тупиковой ситуации может не возникнуть.
Заключение
Распределение ресурсов управляется и контролируется операционными системами на основе механизма распределения. Он определяет методы распределения различных типов ресурсов для памяти, процессора, периферийных устройств и резервного хранилища. Ресурс, выделенный каждому процессу, может входить или не входить в состояние взаимоблокировки, поэтому необходимо реализовать механизмы обнаружения и предотвращения для выхода из возникшей взаимоблокировки.