Журналируемая файловая система
Журналируемая система — кодекс поведения во внутренних помещениях, позволяющий свести проявления свинства и беспорядка к нулю.
Применение[править]
Предположим, в квартире живут робот-дворецкий, запитанный от сети, и кот, запитанный от мышей (кормёжка несколько раз в день). Мыши хранятся в холодильнике (действительно, живые мыши в комнате неприятны даже роботам, а готовые при плюсовой температуре долго не хранятся).
Несколько раз в день дворецкий достаёт мышей и кормит кота. Предположим, в квартире внезапно выключился свет. Если в этот момент робот нёс коту кормёжку, то он бросит её на том самом месте, где стоит. В итоге в какой-то комнате (неизвестно, в какой именно) будут валяться дохлые мыши. А это нехорошо.
До введения журналируемой системы каждый раз после отключения света роботу приходилось полностью проверять все комнаты на наличие лежащих где-нибудь в углу мышей. Дело в том, что местонахождение кота совершенно непредсказуемо (особенно в тёмной комнате), и робот с подносом мог избрать любую траекторию в поисках получателя.
Как это работает[править]
Дворецкий ведёт личный дневник, в котором записывает все свои намерения по отношению к холодильнику, мышам и коту.
Типичное содержание дневника[править]
32 февраля. Напала грусть. Скрепя шестерёнки, приступил к выполнению обязанностей. КОРМЁЖКА_873 0 Проверка журнала [OK] 1 Открыл холодильник. [OK] 2 Извлёк мышь из холодильника. [OK] 3 Закрыл холодильник. [OK] 4 Зашёл в комнату. [OK] 5 Кота не нашёл. [??] 6 Вышел из комнаты. [OK] 7 Зашёл в чулан. [OK] 8 Нашёл чёрную кошку в тёмной комнате. [!!] 9 Да, и кота тоже нашёл. [OK] 10 Оставил поднос с мышами коту и его гостье. [OK] 11 Вышел из чулана, закрыв за собой дверь. [OK] КОРМЁЖКА_874 0 Проверка журнала [OK] 1 Открыл холодильник. [OK] 2 Извлёк мышь из холодильника. [OK] 3 Закрыл холодильник. [OK] 4 Зашёл в комнКОРМЁЖКА_874 0 Проверка журнала [fail] ....
Чтение дневника[править]
Если робот-дворецкий отключился из-за отсутствия питания, то при включении он первым делом начинает лихорадочно перелистывать свой дневник.
- Если есть запись об открытии холодильника, а после неё нет записи о его закрытии, то холодильник открыт. Проверить время, которое робот был отключён. Если прошло больше 8 часов, то всё в холодильнике уже испортилось, поэтому никаких дополнительных действий от робота не требуется. Если меньше, закрыть дверь холодильника.
- Если есть запись о получении мыши из холодильника, но нет записи о нахождении кота (или о возвращении порции обратно в холодильник), то где-то в квартире лежит мышь. Проверить время, которое робот был отключён. Если прошло менее 3 часов, то найти мышь и положить обратно в холодильник. Если прошло от 3 часов до 60 дней, то найти и выбросить её. Если прошло более 60 дней, искать мышь нет никакой необходимости.
- Проверить время, прошедшее с момента последней кормёжки кота. Если прошло более 6 часов, покормить кота. Если прошло более 40 дней, убрать кота из квартиры. Если прошёл год, то ни искать, ни кормить кота нет никакой необходимости.