Автор |
Тема: Системно-программистский глюк||Miracles (Прочитано 1678 раз) |
|
Guest is IGNORING messages from: .
Emigrant
Administrator
Из Новой Хазарии пишут:
Просмотреть Профиль »
Сообщений: 2914
|
|
Системно-программистский глюк||Miracles
« В: 11/19/04 в 23:10:49 » |
Цитировать » Править
|
Как открыл наш великий соотечественник, "сколько бы где в одном месте ни убавилось, столько же прибавится в другом" (или как-то похоже). С другой стороны, всякому программисту, слушавшему когда-либо курс по операционным системам, известно, что для обеспечения этого свойства в "виртуальном мире" требуется потратить немалые усилия на так называемую синхронизацию одновременно выполняемых процессов. Пока один процесс читает некоторую переменную, выражающую количество объектов, и что-то с ней делает -- скажем, отнимает единицу и перекладывает ее в другой карман -- другой процесс может делать то же самое, прочитав ту же самую переменную до того, как ее уменьшенное значение будет записано обратно в переменную первым процессом. В результате общий счет объектов увеличится на единицу, назло Ломоносову-Лавуазье. Во избежание этого эффекта (подумаем, например, про банкоматы) употребляются всякие locks, семафоры, мониторы и т.д., заставляющие один процесс ждать, пока другой полностью закончит свои операции. Это присказка, а вот и сказка. Недавно мне пришлось отлаживать именно такую проблему, в результате которой "вещи" пропадали в никуда и появлялись ниоткуда, умножаясь. И тут мне стало понятно, как проще всего осуществить Чудо об Умножении Хлебов ("И ели все и насытились; и набрали оставшихся кусков семь корзин полных"). Для этого надо всего лишь локально нарушить синхронизацию мира! Я думаю, что при тщательной проверке выяснилось бы, что умножались (или исчезали непонятно куда) и другие предметы, с которыми люди в том момент что-то делали. Это классический hack, известный также под названием time-to-check-to-time-to-use (TOCTTOU), т.е. между проверкой условия и собственно действием вклинивается другое действие (несколько нечеткое описание, ну да ладно). Geeky revelations
|
« Изменён в : 11/20/04 в 00:31:47 пользователем: Emigrant » |
Зарегистрирован |
Human beings were created by water to transport it uphill. (c) /usr/bin/fortune
|
|
|
Mithrilian
Beholder Живет здесь
Watchrabbit
Просмотреть Профиль » WWW »
Сообщений: 1693
|
|
Re: Системно-программистский глюк||Mirac
« Ответить #1 В: 11/20/04 в 00:42:16 » |
Цитировать » Править
|
Т.е. по-твоему, Он - программист? А Христос - Сын Программиста? Ой. 8) Тогда понятно, про кого анекдот "Папа, а солнце на востоке всегда встает и на западе всегда заходит?" - "Проверял - работает?" - "Проверял." - "Только ничего не трогай, сынуля, ничего не меняй!!!"
|
|
Зарегистрирован |
На земле прекрасной нету места Для недобрых и для забияк! (с) кот Леопольд
|
|
|
Antrekot
Bori-tarkhan Живет здесь
CНС с большой дороги
Просмотреть Профиль »
Сообщений: 16204
|
|
Re: Системно-программистский глюк||Mirac
« Ответить #2 В: 11/20/04 в 02:51:33 » |
Цитировать » Править
|
Ну конечно делали - делили же. Вот куски в процессе деления и размножались. Высокий класс... С уважением, Антрекот
|
|
Зарегистрирован |
Простите, я плохо вижу днём. Позвольте, моя лошадь посмотрит на это. (c) Назгул от R2R
|
|
|
R2R
Administrator
STMS
Просмотреть Профиль » email
Сообщений: 5667
|
|
Re: Системно-программистский глюк||Mirac
« Ответить #3 В: 11/20/04 в 03:19:47 » |
Цитировать » Править
|
В ADnD так магические и прочие ценные предметы у партии умножаются. "Один записал, другой не вычеркнул".
|
|
Зарегистрирован |
"Кто играет с динамитом, тот придёт домой убитым"
|
|
|
Antrekot
Bori-tarkhan Живет здесь
CНС с большой дороги
Просмотреть Профиль »
Сообщений: 16204
|
|
Re: Системно-программистский глюк||Mirac
« Ответить #4 В: 11/20/04 в 03:26:14 » |
Цитировать » Править
|
Так программирование оно вообще, по существу, магия и есть - целевое изменение мира посредством правильно организованного текста. С уважением, Антрекот
|
|
Зарегистрирован |
Простите, я плохо вижу днём. Позвольте, моя лошадь посмотрит на это. (c) Назгул от R2R
|
|
|
Emigrant
Administrator
Из Новой Хазарии пишут:
Просмотреть Профиль »
Сообщений: 2914
|
|
Re: Системно-программистский глюк||Mirac
« Ответить #5 В: 11/20/04 в 05:42:49 » |
Цитировать » Править
|
on 11/20/04 в 00:42:16, Mithrilian wrote:Т.е. по-твоему, Он - программист? |
| Конечно, среди прочего -- "Гончар, Кузнец, Ткач, Плотник, Гефест, Гу, Ильмаринен, Хнум, Вишвакарман, Птах, Яхве, ,..." и далее по тексту Quote: А Христос - Сын Программиста? Ой. 8) Тогда понятно, про кого анекдот "Папа, а солнце на востоке всегда встает и на западе всегда заходит?" - "Проверял - работает?" - "Проверял." - "Только ничего не трогай, сынуля, ничего не меняй!!!" |
| Увы, Христос плохо вписывается в хакерский апокриф -- он постоянно занят людьми, и не показывает никакого интереса к абстракциям, или, по крайней мере, никто из евангелистов не застал его за этим, за исключением единственного случая, когда тот чертил на песке, и не хотел сразу отвечать толпе, приведшей женщину. С другой стороны, как раз это чудо отвечает хакерскому характеру: такой tour-de-force, с малым вмешательством в работающий механизм, приносящим неожиданные и полезные результаты. Ни один хакер перед таким не устоит. Quote: Так программирование оно вообще, по существу, магия и есть - целевое изменение мира посредством правильно организованного текста. |
| Right on! Exactly so.
|
« Изменён в : 11/20/04 в 05:45:46 пользователем: Emigrant » |
Зарегистрирован |
Human beings were created by water to transport it uphill. (c) /usr/bin/fortune
|
|
|
Antrekot
Bori-tarkhan Живет здесь
CНС с большой дороги
Просмотреть Профиль »
Сообщений: 16204
|
|
Re: Системно-программистский глюк||Mirac
« Ответить #6 В: 11/20/04 в 06:30:45 » |
Цитировать » Править
|
Quote: Я своих студентов по мифологии регулярно этим обстоятельством дразню. С уважением, Антрекот
|
|
Зарегистрирован |
Простите, я плохо вижу днём. Позвольте, моя лошадь посмотрит на это. (c) Назгул от R2R
|
|
|
Emigrant
Administrator
Из Новой Хазарии пишут:
Просмотреть Профиль »
Сообщений: 2914
|
|
Re: Системно-программистский глюк||Mirac
« Ответить #7 В: 11/20/04 в 07:47:03 » |
Цитировать » Править
|
It gets better . Программирование - это ведь не что иное, как искусство описания сложных поведений. Это не просто текст, это текст, производящий текст P.S.: Есть такая хакерская поговорка (не понимаю, как я мог не вспомнить о ней вчера): I'd rather write programs that write programs than write programs. Именно так дело и обстоит
|
« Изменён в : 11/20/04 в 23:19:30 пользователем: Emigrant » |
Зарегистрирован |
Human beings were created by water to transport it uphill. (c) /usr/bin/fortune
|
|
|
|