|
||||||
Заголовок: Системно-программистский глюк||Miracles Прислано пользователем Emigrant на 11/19/04 в 23:10:49 Как открыл наш великий соотечественник, "сколько бы где в одном месте ни убавилось, столько же прибавится в другом" (или как-то похоже). С другой стороны, всякому программисту, слушавшему когда-либо курс по операционным системам, известно, что для обеспечения этого свойства в "виртуальном мире" требуется потратить немалые усилия на так называемую синхронизацию одновременно выполняемых процессов. Пока один процесс читает некоторую переменную, выражающую количество объектов, и что-то с ней делает -- скажем, отнимает единицу и перекладывает ее в другой карман -- другой процесс может делать то же самое, прочитав ту же самую переменную до того, как ее уменьшенное значение будет записано обратно в переменную первым процессом. В результате общий счет объектов увеличится на единицу, назло Ломоносову-Лавуазье. Во избежание этого эффекта (подумаем, например, про банкоматы) употребляются всякие locks, семафоры, мониторы и т.д., заставляющие один процесс ждать, пока другой полностью закончит свои операции. Это присказка, а вот и сказка. Недавно мне пришлось отлаживать именно такую проблему, в результате которой "вещи" пропадали в никуда и появлялись ниоткуда, умножаясь. И тут мне стало понятно, как проще всего осуществить Чудо об Умножении Хлебов ("И ели все и насытились; и набрали оставшихся кусков семь корзин полных"). Для этого надо всего лишь локально нарушить синхронизацию мира! Я думаю, что при тщательной проверке выяснилось бы, что умножались (или исчезали непонятно куда) и другие предметы, с которыми люди в том момент что-то делали. Это классический hack, известный также под названием time-to-check-to-time-to-use (TOCTTOU), т.е. между проверкой условия и собственно действием вклинивается другое действие (несколько нечеткое описание, ну да ладно). Geeky revelations :-) |
||||||
Заголовок: Re: Системно-программистский глюк||Mirac Прислано пользователем Mithrilian на 11/20/04 в 00:42:16 Т.е. по-твоему, Он - программист? А Христос - Сын Программиста? Ой. 8) Тогда понятно, про кого анекдот "Папа, а солнце на востоке всегда встает и на западе всегда заходит?" - "Проверял - работает?" - "Проверял." - "Только ничего не трогай, сынуля, ничего не меняй!!!" |
||||||
Заголовок: Re: Системно-программистский глюк||Mirac Прислано пользователем Antrekot на 11/20/04 в 02:51:33 Ну конечно делали - делили же. Вот куски в процессе деления и размножались. Высокий класс... С уважением, Антрекот |
||||||
Заголовок: Re: Системно-программистский глюк||Mirac Прислано пользователем R2R на 11/20/04 в 03:19:47 В ADnD так магические и прочие ценные предметы у партии умножаются. "Один записал, другой не вычеркнул". ::) |
||||||
Заголовок: Re: Системно-программистский глюк||Mirac Прислано пользователем Antrekot на 11/20/04 в 03:26:14 Так программирование оно вообще, по существу, магия и есть - целевое изменение мира посредством правильно организованного текста. С уважением, Антрекот |
||||||
Заголовок: Re: Системно-программистский глюк||Mirac Прислано пользователем Emigrant на 11/20/04 в 05:42:49 on 11/20/04 в 00:42:16, Mithrilian wrote:
Конечно, среди прочего :-) -- "Гончар, Кузнец, Ткач, Плотник, Гефест, Гу, Ильмаринен, Хнум, Вишвакарман, Птах, Яхве, ,..." и далее по тексту :-) Quote:
:-) Увы, Христос плохо вписывается в хакерский апокриф -- он постоянно занят людьми, и не показывает никакого интереса к абстракциям, или, по крайней мере, никто из евангелистов не застал его за этим, за исключением единственного случая, когда тот чертил на песке, и не хотел сразу отвечать толпе, приведшей женщину. С другой стороны, как раз это чудо отвечает хакерскому характеру: такой tour-de-force, с малым вмешательством в работающий механизм, приносящим неожиданные и полезные результаты. Ни один хакер перед таким не устоит. Quote:
Right on! Exactly so. |
||||||
Заголовок: Re: Системно-программистский глюк||Mirac Прислано пользователем Antrekot на 11/20/04 в 06:30:45 Quote:
Я своих студентов по мифологии регулярно этим обстоятельством дразню. С уважением, Антрекот |
||||||
Заголовок: Re: Системно-программистский глюк||Mirac Прислано пользователем Emigrant на 11/20/04 в 07:47:03 It gets better :-). Программирование - это ведь не что иное, как искусство описания сложных поведений. Это не просто текст, это текст, производящий текст :-) P.S.: Есть такая хакерская поговорка (не понимаю, как я мог не вспомнить о ней вчера): I'd rather write programs that write programs than write programs. Именно так дело и обстоит :-) |
||||||
Удел Могултая YaBB © 2000-2001, Xnull. All Rights Reserved. |