Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет p_govorun ([info]p_govorun)
@ 2008-03-20 23:19:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Программистское
Гардероб, в него стоит очередь. В этой очереди и те, кто сдают пальто, и те, кто собирается получить.

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

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


(Добавить комментарий)


[info]angry-elf.livejournal.com
2008-03-20 23:54 (ссылка)
Хех. Классический DoS и дедлок :)

(Ответить) (Ветвь дискуссии)


[info]p_govorun
2008-03-21 00:04 (ссылка)
Причём, пока не начался DoS, всё работало. :-)

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]kdv2005.livejournal.com
2008-03-21 00:20 (ссылка)
В Британии эта проблема была разрешена на системном уровне столетия назад:
двое дверей "In" и "Out". Правда не для гардероба, а для карет, но принцип тот же.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]p_govorun
2008-03-21 00:33 (ссылка)
Старинное искусство программирования :-)

(Ответить) (Уровень выше)


(Анонимно)
2008-03-21 00:51 (ссылка)
Представилась операционная система, при необходимости повышающая приоритет процессов на время, когда они заняты "сборкой мусора". Или, скажем, исполняющая rm "без очереди".

(Ответить) (Ветвь дискуссии)


[info]p_govorun
2008-03-21 01:32 (ссылка)
Повышение приоритета не спасёт. Это как если бы те, кто сдаёт пальто, стояли спокойно и слегка дремали, а те, кто получает -- суетились бы и подпрыгивали на месте.

Только исполнение "без очереди".

(Про rm. Кажется, когда-то давно в линуксе для rm требовался один свободный блок на диске :-)

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]salas.livejournal.com
2008-03-21 02:03 (ссылка)
Насколько я представляю, не то чтоб не спасёт, а и без него работает — современные ОС с вытесняющей многозадачностью скорей напоминают гардероб, в котором стоящего у окошка обычно независимо от причин через 10 секунд выгоняют в конец очереди.

Кстати, блокирующая версия write, исполняющаяся после того, как пройдут без очереди процессы с номерками unlink и truncate — идея тоже интересная.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]p_govorun
2008-03-21 11:13 (ссылка)
Хоршошая ОС может выступить, как та гардеробщица. А может и не выступить, если очередь целиком внутри программы.

(Ответить) (Уровень выше)


[info]peter_lemenkov
2008-03-21 12:06 (ссылка)
дедлок, да.

(Ответить) (Ветвь дискуссии)


[info]p_govorun
2008-03-21 13:34 (ссылка)
Он самый.

(Ответить) (Уровень выше)