Как стать автором
Обновить

Решение проблемы в управлении конкурентными вычислениями

Время на прочтение 4 мин
Количество просмотров 3.7K
Всего голосов 14: ↑14 и ↓0 +14
Комментарии 10

Комментарии 10

Можно было не полениться и вместо картинки дать программу текстом. Заодно и фразы на английском в ней перевести на русский, раз уж в остальном тексте слова "critical section" переведены.

Верстал это я, и насчёт этого вопроса не мог определиться: когда в оригинале и упомянутые вами фразы, и лигатуры, и кавычки вокруг кода, и названия секций, не понимал, насколько с хабровским редактором кода и его подсветкой всё это сочетается и насколько могу позволить себе что-то менять в Дейкстре.

Решил, что раз это часть академической работы, а не код с гитхаба, пусть от греха подальше будет «академической» картинкой, чтобы авторский замысел точно ни в чём не сломался)

Хоть код на псевдоязыке (или может, алголе?) выглядит по современным меркам коряво - алгоритм гарантированного получения монопольного доступа к ресурсу без аппаратной поддержки (типа xchg) - такой же красивый и фундаментальный кит computer science, как шифрование без обмена private-ключами. При всем суммарном количестве интеллекта, которое было приложено в золотые времена развития теории и практики аппаратного и программного построения компьютеров, вовлеченным большинством такие вещи воспринимались, как невозможные/невероятные.

Много лет назад что-то похожее я видел в реальной жизни. Чтобы попасть в критически важную дверь по одному, люди записываются на листочек по номерам, заходя помечаются, а выходя вычеркиваются.

Мы призываем пытливого читателя остановиться здесь ненадолго и попытаться подумать самому, поскольку только так можно прочувствовать все каверзные последствия того факта, что каждый компьютер за один раз может отправлять только одно одностороннее сообщение-запрос.  И только так читатель сможет осознать, до какой степени эта задача далека от тривиальной.

Только за одно это побуждение + в карму и к статье.

Было бы еще здорово рассказать суть алгоритма простым человеческим языком. Даже простой код для меня (мое мышление устроено так, о других людях судить не буду) понять сложно. Отделить, что называется, идею от реализации.

В остальном, пусть автор примет мою благодарность: его статья - была приятной зарядкой для моего ума). Буду рад, если в будущем увижу и другие похожие алгоритмические изюмики.
Желаю ему удачи.

Автор поникул нас 20 лет тому назад, это перевод. Алгоритм в принципе интуитивно понятный если включить воображение. Я попытался развернуть идею в комменте, но хабр подвесил браузер.

Конкурентный — соревновательный?

Concurrency в переводе означает одновременность, с латинским корнем - согласие. Основная идея здесь обозначить сам факт одновременного исполнения, которое может приводить к характерным противоречиям.

По английским корням и правда близко "одновременность", но это очень похоже по смыслу на "параллелизм".

По передаче смысла (русским корням) достойный претендент: "состязание". Посмотрев этимологию и каноничный спич Роба Пайка "Состязание - это не параллелизм", прям очень хорошо подходит. Если аллюзии "соревнования" не дают покоя, можно взять "состязательность", но она длиннее и чуть с другим акцентом.

Такая хорошая статья, а всего 12 плюсиков.

Дотумкал, на что это похоже. Это как я получал один из первых загранпаспортов. Там сначала надо было прийти в 4 часа утра к ФМС чтобы разобрать номерки, на которых был написан тайм-слот, когда прийти к инспектору с документами, чтобы их подать. При этом обеспечивалось условие, что номерков ровно столько, сколько и тайм-слотов. Поэтому номерки можно было раздавать вообще рандомно, а инспектора в любом случае были равномерно весь день загружены работой.

Зарегистрируйтесь на Хабре , чтобы оставить комментарий