Операционная система QNX 4.Архитектура системы

Отключение виртуальных каналов


Существует несколько причин, по которым процесс не может осуществлять связь по установленным виртуальным каналам, а именно:

  • произошло отключение питания компьютера, на котором выполняется процесс;
  • был отсоединен кабель сети от компьютера;
  • был завершен удаленный процесс, с которым установлена связь.

Любая из этих причин может препятствовать передаче сообщений по виртуальному каналу. Необходимо фиксировать эти ситуации для выполнения приложением необходимых действий с целью корректного завершения работы, в противном случае, отдельные ресурсы могут оказаться постоянно занятыми.

На каждом узле Администратор процессов проверяет целостность виртуального канала. Это делается следующим образом:

  1. Каждый раз при успешной передаче по виртуальному каналу, обновляется временная метка, связанная с данным виртуальным каналом, для фиксации времени последней активности;
  2. Через интервалы времени, устанавливаемые при инсталляции, Администратор процессов просматривает каждый виртуальный канал. В том случае, если в виртуальном канале нет активности, Администратор процессов посылает сетевой пакет проверки целостности канала Администратору процессов другого узла;
  3. В том случае, если ответ не получен, или зафиксирован сбой, виртуальный канал помечается, как сбойный. Далее предпринимается ряд действий, определенных при инсталляции для восстановления связи;
  4. Если попытки восстановления закончились безуспешно, виртуальный канал "отключается". Все процессы, блокированные на данном канале, переходят в состояние ГOTOB (READY). (Процессы анализируют возвращаемый код сбоя виртуального канала.)

Для управления параметрами, связанными с проверкой целостности виртуального канала, используется утилита netpoll.



Содержание раздела