Приложение 1
«ЭСКАЛИБУР», ИЛИ ПРОЦЕСС ДЛЯ ТЕХ, КТО СОМНЕВАЕТСЯ
Если Вы начинаете делать процессы, и Вы действительно на это решились, то лучше всего сначала сделать процессы по управлению телом, затем процессы по созданию игр и после этого любые другие процессы.
Но может быть и такое, что человек никак не может решиться на это из-за того, что боится, или думает, что его «зазомбируют», или еще что-нибудь в этом роде. В подобном случае можно сразу же сделать «Процесс без напарника» из главы «Создание игр», минуя все остальные процессы.
Если Вы внимательно его прочитаете, то увидите, что никакого «зомбирования» там даже близко не присутствует. Чем-то подобным нормальный человек и так все время занимается по жизни. Разница только в том, что в процессе используется не принцип «Наметил что-то одно и выполнил», а принцип «Наметил много чего, освободив свой разум, и выполнил».
И это основной момент. Здесь я приведу расширенную теорию того же самого процесса, хотя немножечко и в другом ключе, чем это делалось ранее.
Определение: Цикл действия — это полное действие, построенное по принципу «начал-продолжил-закончил».
Например, «Встать со стула» — это маленький цикл действия. «Сходить погулять», «Вымыть посуду» — это циклы действия чуть побольше. «Написать книгу», «Провернуть большую денежную сделку», «Научиться вождению автомобиля», «Выполнить крупный заказ» и так далее — это циклы действия еще больше. Большие циклы действия могут сами распадаться на другие, более мелкие. Это достаточно очевидно.
Циклы действия могут быть «одноразовыми» и «регулярными». Все циклы действия, приведенные в предыдущем абзаце, являются одноразовыми. А вот примеры регулярных циклов действия — «Вставать в семь часов утра по будильнику», «Каждый день откладывать в копилку деньги», «Здороваться со своим начальником» и т.д. Полный цикл действия в действительности представляет собой обычный цикл действия плюс постановку цели выполнить этот цикл и последующую отмену цели (обычно после его выполнения). Схематично это можно представить вот так:
Постановка цели — Цикл действия — Отмена цели
Цель может быть поставлена самим человеком или его окружением, но обязательно включает в себя намерение достичь этой цели.
Отмена цели может производиться через осознание человеком полного выполнения цикла действия, или при помощи подтверждения со стороны, или как-то еще, но обязательно должна включать в себя уверенное решение отменить эту цель (но не всегда на словесном уровне). Теперь я сделаю небольшое отступление в сторону и опишу, по какому принципу решает задачи мультизадачный компьютер с параллельным режимом вычислений.
Краткая схема такого компьютера может быть представлена следующим рисунком:
Задачи, вводимые в мультизадачный компьютер, поступают в очередь на решение. Оттуда, при наличии свободной линии, задачи поступают в вычислитель, решаются и после выполнения попадают в выходную очередь, результаты их выводятся оператору и компьютер прекращает какие-либо действия в отношении них.
По ходу вычислений задачи могут снова возвращаться во входную очередь вследствие особенностей вычислений (например, нужны сведения, которые прибудут только завтра). И каждая задача сопровождается полной информацией обо всех этапах ее выполнения.
Если задача одна, она сразу же попадает в блок вычислителя, решается и поступает на выход, после чего компьютер прекращает какие-либо действия в отношении этой задачи.
Если задач поступает несколько, но в количестве, не превышающем число задач, которые могут решаться одновременно, они также поступают в вычислитель, и далее все происходит по той же схеме.
Если же число задач превосходит количество задач, могущих решаться одновременно, задачи поступают в общую очередь, и далее поступают в вычислитель в порядке наибольшего приоритета важности, а также с учетом того, есть ли свободная линия (или время) для вычисления.
При выборе задачи в вычислитель поступает первой та задача, которая имеет наибольший приоритет, а не та, которая первой вводилась.
Теперь представим, что задачи в очередь все поступают и поступают, причем быстрее, чем они оттуда выдергиваются вычислителем. Тогда задачи, имеющие низкий приоритет, застрянут в очереди «навечно». Одна из линий компьютера всегда обрабатывает очередь. После определенного размера очереди подключается другая линия, и так далее до тех пор, пока все время компьютера не будет занято очередью.
Другой случай. Пусть задача, попавшая в вычислитель, решается слишком долго. Это сказывается на быстроте решения остальных задач, поскольку свободных линий (или времени) для вычисления остается меньше. Если такие времяемкие задачи садятся на все линии компьютера, то продвижение очереди останавливается, и, даже если в очередь поступает задача с более высоким приоритетом, чем текущие выполняемые, она игнорируется до тех пор, пока какая-то из текущих не завершит свою работу.
Аналогично этому задача, которая одна садится на все линии компьютера вследствие особенностей вычислений, действует точно также. Но и поступит она в вычислитель не раньше, чем освободятся сразу все линии, то есть, скорее всего, никогда.
Еще один случай. При выполнении задачи происходит сбой. Информация о том, что выполнение задачи начато, остается в памяти компьютера, но сама задача остается невыполненной. И так это и продолжается до особого вмешательства оператора. Если же при выполнении задачи сбой происходит неоднократно, у оператора возникает предположение, что причиной сбоя является именно эта задача, и она отправляется «на полку» или в лучшем случае очередной раз поступает в очередь, но получает самый низкий приоритет, «чтобы не мешать другим».
Сбой также может возникнуть, если задача по ходу вычислений сталкивается с другой задачей — например, первая печатает на экране какое-то сообщение (пока экран пуст), а вторая стирает экран (пока на экране хоть что-нибудь есть). Без вмешательства оператора такие задачи остаются в памяти «навсегда» и педантично следуют известнейшей басне Крылова.
Иногда работа очереди и вычислителя (в сложных системах автоматического управления) строится таким образом, что в вычислителе всегда находятся задачи с наибольшим приоритетом. Как только в очередь поступает задача с большим приоритетом, чем одна из текущих выполняемых, они сразу же обмениваются местами. Соответственно, если какая-то из выполняемых задач приобретает более низкий приоритет, чем самая «приоритетная» из находящихся в очереди, то они также обмениваются местами.
Теперь представьте себе компьютер, в который задачи не поступают вовсе. Зачем нужен такой компьютер? Оператор такого компьютера скорее всего найдет ему применение, сдав его в утиль, или продав его, или сделав из него экспонат музея, но тут главное то, что компьютер больше ничего вычислять не будет, то есть попросту «умрет как компьютер».
Перенесем эти данные о мультизадачном компьютере на человека и на время отождествим мультизадачный компьютер с разумом, а оператора с оператором-игроком (то есть с самим человеком).
По аналогии с компьютером любая поставленная человеком цель попадает в умственный блок начатых и незавершенных циклов, в котором хранится информация обо всех целях данных циклов действия и всех моментах их выполнения. Такой блок — это некая «входная очередь» разума.