Тупик и голодание в операционной системе
Операционная система является самым фундаментальным программным обеспечением, которое работает на компьютере. Он отвечает за управление памятью и процессами компьютера, а также защищает детали аппаратного обеспечения от прикладных программ, используя его. Операционная система компьютера также обеспечивает справедливое распределение ресурсов пользователям и программам, а не равное распределение между процессами. Справедливая система планирования позволяет одному процессу использовать процессор, а другой - в очереди. В результате каждый поток получает достаточный доступ к ограниченным ресурсам, предотвращающим два наиболее распространенных условия, которые в противном случае задерживали бы процесс: Deadlock and Starvation. Оба являются связанными понятиями, когда процессы не имеют доступа к ресурсам. В этой статье освещаются некоторые ключевые моменты, сравнивающие их по разным фронтам.
Что такое тупик?
Тупик - это условие, когда набор потоков блокируется, потому что каждый процесс, содержащий ресурс, пытается получить доступ к некоторым другим ресурсам, которые удерживаются другим процессом, что в конечном итоге предотвращает справедливое планирование системы. Ситуация с тупиком возникает, когда выполняются следующие четыре условия: взаимное исключение означает, что только один процесс может получить доступ к ресурсу за раз; Никакое условие преимущественности означает, что ресурс может быть освобожден только добровольно процессом, содержащим ресурс; Удержание и ожидание означает, что ресурсы, удерживающие процесс, могут запрашивать дополнительные ресурсы, удерживаемые другими процессами; Циклическое ожидание означает, что два или более процесса застревают в круговой цепочке, ожидая, что каждый процесс освободит свои соответствующие ресурсы.
Что такое голод?
Голодание - это условие, которое возникает, когда процесс переходит в период ожидания бесконечно, поскольку процесс с низким приоритетом никогда не получает доступа к ресурсу из-за постоянного потока высокоприоритетных процессов, обращающихся к одному и тому же ресурсу. Это проблема управления ресурсами, потому что процессу отказывают в доступе к ресурсу, который он требует, тем самым подталкивая процесс к неопределенному периоду ожидания. Это происходит потому, что ресурс, который он требует, никогда не выделяется процессу, заставляя процесс голодать за ресурсы, отсюда и название. Лучший способ избежать голода - использовать метод старения, который постепенно увеличивает приоритет процессов, которые находятся в ожидании в течение длительного времени, чтобы обеспечить справедливую систему планирования.
Разница между Deadlock и Starvation в ОС
Как тупик, так и голод - это связанные концепции, которые препятствуют справедливому планированию системы, когда процессы блокируются от доступа к ресурсам. Тупик, как следует из названия, относится к условию блокировки набора потоков или процессов, потому что каждый процесс ожидает получения ресурса, который удерживается другим процессом, что приводит к ситуации взаимоблокировки, когда программы перестают функционировать. С другой стороны, голодание инициируется тупиком, из-за которого процесс замирает, потому что низкоприоритетный процесс лишен доступа к ресурсу, который выделяется высокоприоритетному процессу.
Тупик относится к определенному условию, которое возникает, когда поток или процесс переходит в период ожидания, потому что запрашиваемый системный ресурс удерживается другим процессом, который, в свою очередь, ждет, пока другой процесс освободит свой ресурс, тем самым создав тупик. Это связано с плохим использованием ресурсов. Голодание - неопределенное условие отсрочки, когда низкоприоритетный процесс лишается доступа к ресурсам, которые он требует, поскольку ресурсы распределяются на другой высокоприоритетный процесс. Это проблема управления ресурсами, которая заставляет систему выделять ресурсы только на высокоприоритетные процессы.
Тупик - это конечная форма голодания, которая возникает, когда одновременно возникают следующие четыре условия: взаимное исключение, отсутствие выкупа, удержание и ожидание и круговая ожидание. Условие взаимоблокировки происходит только в системах, в которых все четыре условия сохраняются. Голодание происходит на основе различных условий, например, когда ресурсов недостаточно, и приоритет процессов начинает снижаться или когда процессы начинают передавать ресурсы другим процессам без контроля. Если процесс с низким приоритетом запрашивает ресурс, зарезервированный для процессов с наивысшим приоритетом, процесс голодает навсегда. Голодание также возникает, когда ресурсы распределяются произвольно, заставляя процессы ждать более длительного периода времени.
Голодание может быть предотвращено с помощью надлежащего алгоритма планирования с приоритетной очередью, который на самом деле также использует метод старения - метод планирования, который добавляет фактор старения к приоритету каждого запроса, что означает, что он увеличивает уровень приоритета низкоприоритетных процессов, которые ожидали в течение долгого времени. Кроме того, предоставление дополнительных ресурсов программам должно избегать продолжения перегруженности ресурсов. Чтобы система не зашла в тупик, процессам необходимо запретить доступ к одному или нескольким ресурсам, одновременно ожидая других, и только один процесс должен иметь доступ к ресурсу за раз.
Тупик против голодания: сравнительная таблица
Резюме тупика VS. голодание
Как тупик, так и голод - это связанные понятия в многопроцессорных операционных системах или распределенных системах, которые заставляют один или несколько потоков или процессов застревать в ожидании ресурсов, в которых они нуждаются. Тупик - это ситуация, которая возникает, когда один или несколько процессов запрашивают доступ к одному и тому же ресурсу, заставляя процесс замораживаться, тогда как голодание вызвано тупиковой ситуацией, которая отталкивает процесс до неопределенного состояния отсрочки, поскольку процессам отказано в доступе к ресурсу, высокоприоритетный процесс и нужно ждать вечно.