Приоритеты
Приоритеты
А что если ванная комната в настоящее время заперта, и множество людей ожидают момента, чтобы ею воспользоваться? Очевидно, все они располагаются вне ее, ожидая, когда же тот, кто в ней находится, наконец выйдет. Закономерный вопрос: «А что произойдет, когда дверь откроется? Кто должен войти следующим?»
Можно предположить, что было бы «справедливым» позволить войти следующим тому, кто ожидает более длительное время. Или было бы «справедливо» позволить войти в ванную следующим тому, кто бы был, например, самый старший по возрасту, или самый высокий, или самый главный. Имеется множество способов определить то, что признавать «справедливым».
Применительно к потокам, мы решаем эту проблему с учетом только двух факторов: приоритета и продолжительности ожидания.
Предположим, что одновременно два человека оказываются у запертой двери в ванную комнату. Одного из них уже «поджимает» время (он опаздывает на совещание), в то время как другой тоже опаздывает, но не так уж сильно. Разве не имело бы смысл позволить тому, кого поджимает время, войти в ванную следующим? Разумеется, имело бы. Остается единственный вопрос о том, как вы принимаете решение о том, кто более «важен» в такой ситуации. Это можно сделать, например, назначив приоритет (давайте использовать номера приоритетов такие, какие приняты в QNX/Neutrino: для рассматриваемой версии QNX/Neutrino номер 1 — самый низкий, номер 63 — самый высокий). Людям в доме, которые имеют неотложные дела, следовало бы дать более высокий приоритет, а тем, у которых таких дел нет, — более низкий. Так же дела обстоят и с потоками. Если бы на момент разблокировки мутекса в ожидании находилось множество потоков, мы бы отдали этот мутекс ожидающему потоку с наивысшим приоритетом. Предположим, однако, что оба человека имеют тот же самый приоритет. Что делать? Хорошо, в этом случае было бы «справедливо» позволить человеку, который ожидал более длительное время, войти следующим. Это было бы не только «справедливо», но и так же, как это делает ядро в QNX/ Neutrino. В случае, когда в ожидании находится группа потоков, мы выстраиваем их сначала по приоритету, а уже в пределах каждого приоритета — по продолжительности ожидания.
Мутекс, конечно же, не единственное средство синхронизации из тех, которые нам доведется встретить. Давайте же рассмотрим и некоторые другие тоже.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Приоритеты процессов и потоков и планирование выполнения
Приоритеты процессов и потоков и планирование выполнения Ядро Windows всегда запускает тот из потоков, готовых к выполнению, который обладает наивысшим приоритетом. Поток не является готовым к выполнению, если он находится в состоянии ожидания, приостановлен или
Расставляем приоритеты
Расставляем приоритеты Оптимизация скорости загрузки веб-страницы сосредоточена на двух ключевых аспектах: ускорение предзагрузки и ускорение основной загрузки. Все основные методы сфокусированы именно на этом, потому что «загрузка» веб-страницы воспринимается
8.4.3. Приоритеты, значение nice и команда renice
8.4.3. Приоритеты, значение nice и команда renice О том, что такое приоритет, мы уже кратко говорили в начале этой главы, Но некоторые факты надо изложить дополнительно. Приоритет для каждого процесса устанавливается в тот момент, когда процесс порождается. Приоритет процесса
Приоритеты прерываний и процессов первого плана
Приоритеты прерываний и процессов первого плана Существует возможность указания системе приоритета для конкретного прерывания. В зависимости от использования прерывания повышение его приоритета может повысить скорость работы компьютера. Можно также указать
Как определить приоритеты
Как определить приоритеты Даже при неограниченных кадровых ресурсах невозможно реализовать все идеи сразу. Гораздо более разумным будет поэтапное внедрение технологических и маркетинговых решений с тестированием и оценкой промежуточных результатов. Вопрос только в
Приоритеты начинающего инфобизнесмена
Приоритеты начинающего инфобизнесмена Скачайте эту интеллект-карту по адресу: http://smartinfomarketing.ru/book-leads.htmСледующая интеллект-карта – главные приоритеты начинающего инфобизнесмена, на которых нужно сконцентрировать
1.2.4. Операторы и приоритеты
1.2.4. Операторы и приоритеты Познакомившись с основными типами данных, перейдем к операторам в языке Ruby. В приведенном ниже списке они представлены в порядке убывания приоритета::: Разрешение области видимости[] Взятие
Приоритеты операций отношения
Приоритеты операций отношения Приоритет операций отношения считается меньшим, чем у операций + и -, и больше, чем у операции присваивания. Например, значение выражения: х > y + 2то же, что и выражения х > (у + 2)Это означает также, что выражение ch = getchar( ) != EOF эквивалентно ch
Приоритеты
Приоритеты Операция ! имеет очень высокий приоритет, он выше, чем у умножения, такой же, как у операций увеличения, и только круглые скобки имеют более высокий приоритет. Приоритет операции && больше чем операции ||, а обе они имеют более низкий приоритет, чем
Понять цели и установить их приоритеты
Понять цели и установить их приоритеты Цели и приоритеты вашей компании и соседних организаций могут взаимно отличаться. Главным при этом будет то, что при сложных инцидентах не будет времени оценивать приоритеты. Поэтому ваши цели при обнаружении взлома должны быть
Приоритеты проектов
Приоритеты проектов В предыдущих разделах были описаны способы расстановки приоритетов отдельных задач. Теперь я приведу некоторые полезные приемы присваивания приоритетов проектам.Достижение наибольшего эффектаПредположим, вы со своими коллегами-сисадминами по