ПОЗНАВАТЕЛЬНОЕ Сила воли ведет к действию, а позитивные действия формируют позитивное отношение Как определить диапазон голоса - ваш вокал
Игровые автоматы с быстрым выводом Как цель узнает о ваших желаниях прежде, чем вы начнете действовать. Как компании прогнозируют привычки и манипулируют ими Целительная привычка Как самому избавиться от обидчивости Противоречивые взгляды на качества, присущие мужчинам Тренинг уверенности в себе Вкуснейший "Салат из свеклы с чесноком" Натюрморт и его изобразительные возможности Применение, как принимать мумие? Мумие для волос, лица, при переломах, при кровотечении и т.д. Как научиться брать на себя ответственность Зачем нужны границы в отношениях с детьми? Световозвращающие элементы на детской одежде Как победить свой возраст? Восемь уникальных способов, которые помогут достичь долголетия Как слышать голос Бога Классификация ожирения по ИМТ (ВОЗ) Глава 3. Завет мужчины с женщиной 
Оси и плоскости тела человека - Тело человека состоит из определенных топографических частей и участков, в которых расположены органы, мышцы, сосуды, нервы и т.д. Отёска стен и прирубка косяков - Когда на доме не достаёт окон и дверей, красивое высокое крыльцо ещё только в воображении, приходится подниматься с улицы в дом по трапу. Дифференциальные уравнения второго порядка (модель рынка с прогнозируемыми ценами) - В простых моделях рынка спрос и предложение обычно полагают зависящими только от текущей цены на товар. | Условия возникновения тупиков. Основные направления борьбы с тупиками. В 1971 г. Коффман, Элфик и Шошани сформулировали следующие четыре условия для возникновения тупиков. 1. Условие взаимоисключения (Mutual exclusion). Каждый ресурс выделен в точности одному процессу или доступен. Процессы требуют предоставления им монопольного управления ресурсами, которые им выделяются. 2. Условие ожидания ресурсов (Hold and wait). Процессы удерживают за собой ресурсы, уже выделенные им, ожидая в то же время выделения дополнительных ресурсов (которые при этом обычно удерживаются другими процессами). 2. Условие неперераспределяемости (No preemtion). Ресурсы, данные ранее, не может быть принудительно забраны у процесса; освобождены они могут быть только тем процессом, который их удерживает. 3. Условие кругового ожидания (Circular wait). Существует кольцевая цепь процессов, в которой каждый процесс удерживает за собой один или более ресурсов, требующихся другим процессам цепи. Для тупика необходимо выполнение всех четырех условий. Основные направления борьбы с тупиками: · Игнорировать данную проблему · Обнаружение тупиков · Восстановление после тупиков · Предотвращение тупиков за счет тщательного выделения ресурсов или нарушения одного из условий возникновения тупиков. Игнорирование тупиков Простейший подход - игнорировать проблему тупиков (алгоритм страуса). Различные люди реагируют на подобную стратегию по-разному. Математики находят ее неприемлемой и утверждают, что тупики должны быть предотвращены любой ценой. Инженеры задают вопрос: как часто возникает данная проблема и как часто система виснет по другим причинам? Если тупик встречается раз в пять лет, но аварийный останов системы из-за отказов оборудования, ошибок компиляторов или ОС происходит раз в месяц, большинство инженеров не пожелают пожертвовать производительностью или удобством, чтобы ликвидировать тупик. Например, ОС Unix, имеющая в ядре ряд массивов фиксированной размерности, потенциально страдает от тупиков, даже если они не обнаружены. Например, суммарное число процессов в системе определяется размерностью таблицы процессов. Если таблица заполнена, вероятность этого ничтожна, но такое может произойти, то для программы, которая делает вызов fork, резонно подождать некоторое время и попытаться осуществить этот вызов вновь. Следует ли отказываться от вызова fork, чтобы решить эту проблему? Максимальное число открытых файлов аналогичным образом ограничено размером таблицы индексных узлов. С ними может произойти аналогичная ситуация. Пространство выгрузки на диске - другой лимитируемый ресурс. Фактически любая таблица в ОС - конечный ресурс. Подход Unix состоит в том, чтобы игнорировать данную проблему в предположении, что большинство пользователей предпочтут случайный тупик нелепым правилам заставляющих их иметь один процесс, один открытый файл и т.п. ... Таким образом, мы сталкиваемся с нежелательным выбором между строгостью и удобством. Трудно найти общее, устраивающее всех решение. Обнаружение тупиков Обнаружение тупика это установление факта, что возникла тупиковая ситуация и определение процессов и ресурсов, вовлеченных в эту ситуацию. Как правило, алгоритмы обнаружения применяются, когда выполнены первые три необходимых условия возникновения тупиковой ситуации. Затем проверяется наличие режима кругового ожидания. Рассмотрим модельную ситуацию: · Процесс A удерживает ресурс R и ожидает ресурс S. · Процесс B претендует на ресурс T. · Процесс C претендует на ресурс S. · Процесс D удерживает ресурс U и ожидает ресурсы S и T. · Процесс E удерживает ресурс T и ожидает ресурс V. · Процесс F удерживает ресурс W и ожидает ресурс S. · Процесс G удерживает ресурс V и ожидает ресурс U. Вопрос состоит в том, является ли данная ситуация тупиковой, и если да, то какие процессы в ней участвуют. Построим граф ресурсов (рис. 18а): прямоугольники соответствуют процессам, эллипсы – ресурсам, входящая стрелка – удержание ресурса, исходящая стрелка – ожидание ресурса.  Рис. 18 (а) Граф ресурсов. (б) Цикл, извлеченный из графа (a). Из рисунка видно, что имеется цикл (рис. 18б), моделирующий условие кругового ожидания, и процессы D,E,G в тупиковой ситуации. Таким образом, проблема обнаружения тупиков сводится к проблеме анализа графов ресурсов на предмет наличия в них циклов (алгоритм редукции графа распределения ресурсов, матричный алгоритм и др). |