былое и думы
Apr. 17th, 2013 11:47 amВдруг вспомнил, как у нас была устроена система для управления бурением.
Там процессы посылали мессаги, с возможностью отмены или паузы (с последующим продолжением); пауз было довольно мало, но бывали.
Прям как в эрланге, процесс обычно сидел в ожидании какой-нибудь мессаги, или ответов на свои мессаги, или выскакивал по таймауту.
Все процессы при этом попадали в хибернацию (т.е. замирали в свопе), и даже если свет включат только завтра, проснувшись, понимали, что ага, что-то было, и возвращались на нужную точку - тут-то канселы да паузы и пригождались. Ну, скажем, дали сигнал машине поддерживать такую-то нагрузку на долото - а свет вырубился - так, проснувшись, надо этот приказ задержать, и у оператора выяснить, дальше-то чо, продолжать движение, или уже чем-то другим заняться.
Одним из интересных процессов был контроль событий - ему посылаешь предикат в дизъюнктивной нормальной форме - и спать. Когда предикат исполнится, вас разбудят. Предикаты типа "давление больше 30 атмосфер и скорость проходки ниже 5 метров в час". Т.е. в формулах участвовали константы и переменные; переменная могла быть сырым значением с датчика, или усреднённым за какое-то время, или дисперсией.
Хорошо, в те поры никто не мешал такое дизайнить, т.к. ни одна сука не понимала, шо это вообще такое.
Вот чем удобно всплывать в области, где мало кто может придти и сказать тебе чушь, а ты потом отмазывайся.
Там процессы посылали мессаги, с возможностью отмены или паузы (с последующим продолжением); пауз было довольно мало, но бывали.
Прям как в эрланге, процесс обычно сидел в ожидании какой-нибудь мессаги, или ответов на свои мессаги, или выскакивал по таймауту.
Все процессы при этом попадали в хибернацию (т.е. замирали в свопе), и даже если свет включат только завтра, проснувшись, понимали, что ага, что-то было, и возвращались на нужную точку - тут-то канселы да паузы и пригождались. Ну, скажем, дали сигнал машине поддерживать такую-то нагрузку на долото - а свет вырубился - так, проснувшись, надо этот приказ задержать, и у оператора выяснить, дальше-то чо, продолжать движение, или уже чем-то другим заняться.
Одним из интересных процессов был контроль событий - ему посылаешь предикат в дизъюнктивной нормальной форме - и спать. Когда предикат исполнится, вас разбудят. Предикаты типа "давление больше 30 атмосфер и скорость проходки ниже 5 метров в час". Т.е. в формулах участвовали константы и переменные; переменная могла быть сырым значением с датчика, или усреднённым за какое-то время, или дисперсией.
Хорошо, в те поры никто не мешал такое дизайнить, т.к. ни одна сука не понимала, шо это вообще такое.
Вот чем удобно всплывать в области, где мало кто может придти и сказать тебе чушь, а ты потом отмазывайся.