������������� �������
���������������������


2. ���������

2.1. ��������

���� ������������ ������� QNX, �������������� �� ���. 2, ��������� ��������� �������:

���������
���. 2

2.2. ����� ����� ����������

���� QNX ������������ ��� ���� ����� ����� ����������: �����������, proxy � ���������.

�������� ������ IPC � ������� QNX �������� ����� �����������. ��������� ������������ ���������� ����� ����� ������������������ ����������, ��� ������� �������, ���������� ���������, ������� ������������� � ��� ������ �, ��������, ������ �� ���������.

����� ����������� proxy ������������ ����� ������ ��� �������� ���������. ���� ��� ����� ���������� ������������ ��� ���������� � ��������, ��� ������� �������-����������� �� ��������� �� �������������� � ���������-�����������.

����� ��������� - ��� ������������ ����� IPC. ������� ������������ ��� ����������� ����������� ����� ����� ����������.

2.3. ����� ����� ���������� ����������� ���������

� ������� QNX ��� ���������� ���������� ����� ������, ������� ��������� ���������� �� ������ �������� � �������. ��� ����� ������� ���������� ��������� �� ����� �������� ��������. ������ � ��������� ����� ����� ������ ��� ����������� � ����������.

2.3.1. �������� ���������

��� ������ ����� ���� � ������ ����������������� �������� ���������� ��������� ������� ����� ��:

C-������� ����������
Send() ��� ������� ���������;
Receive() ��� ������ ���������;
Reply() ��� ������ ��������, ���������� ���������.

��� ������� ����� �������������� �������� ��� �� ���� ����.

�������� �������� �� ��, ��� ��� ������ ����� ��������� ���� � ������ ������������� ������������� ������� Send(), Receive() � Reply(). ������� ������������ ������� QNX ���������� ��� �������� ������ �����������, ������� �������� ����� ������������ �������� ��������� �������� ��� ������������� ����������� ��������� �������, ��������, ����������� ������� (pipe).

������� � �������� ��������� �������� �, ������� ��������� ���, ������������ � �������� �����.
���. 3

����������� ���� ���. 3 ������������ ������� ������ ������������� ������� Send(), Receive() � Reply() ��� �������������� ���� ��������� - � � �:

  1. ������� � �������� ��������� �������� �, ����� ���� ������ Send(). � ����� ������� ������� � ���������� SEND-������������� �� ��� ���, ���� ������� � �� ������ Receive(), ����������� ��������� ���������;
  2. ������� � ������ Receive() �������� �, ���������� ���������. ������� � �������� ���� ��������� �� REPLY-�������������. ��������� �� �������� � ��������� ���������, �� �� �����������.
    �������� �������� �� ��, ���, ���� �� ������� � ����� Receive() �� ����������� ��� ���������, �� ��������� �� RECEIVE-������������� �� ������� ������ ���������. � ���� ������ ������� � (�����������) ������� �� ����� � REPLY-������������� ��������� ����� ����������� ��������� �������� �;
  3. ������� � ��������� ����������� ���������, ������������ ���������� �� �������� � ����������, � ������ Reply(). ������� � �������� �������� ��������� � ������������������. ������� � ����� ������������������. ����� �� ��������� ������ ����������� ������, ������� �� �� ������������� �����������.

2.3.2. ������������� ���������

�������� ��������� ������ �� ������ ��� ������ ������� ����� ����������, ��, ����� ����, �������� ��������� ������������� ���������� ���������� ����������������� ���������.

������� ��������� ����� � ������������ ���� ���. 3. ����� ����, ��� ������� � ������ ������ Send(), �� �� ������ ����������� �� ��� ���, ���� �� ������� ������ �� ���������� �� ���������. ��� ������ ��������� ����, ��� ��������� ������, ����������� ��������� � ��� �������� � ���������� �� ����, ��� ������� � ������ ���������� ���� ������. � ���� ������� ������� � ����� ������ ������� Receive() ����� ���������� ���� ������ �� ����������� ������� ���������.

����� �������� �������� ������������ ������ ��������� ���������� � ���������� 2.7 "������������ ���������".

2.3.3. ��������� ����������

����� ���������� �������� ��������� �� ������� ���������� ��������� ����� ��������� ������ �����������, �������, ��� ������� "����������". ��������� ���������� ��������� ��������� � ��������� �������.

���� ������� ����� ������� ��������
������ Send(), � ������������ �� ��������� ��� �� �������� ���������-����������� SEND-�������������
������ Send(), � ������������ �� ��������� �������� ���������-�����������, �� ����� ��� �� ����� REPLY-�������������
������ Receive(), �� ��� ��� �� ������� ��������� RECEIVE-�������������

��������� �������� � �������� ���������� Send-Receive-Reply ������������ �� ���. 4.
���. 4

������ ��������� ��������� ��������� ����������� � ���������� 3.3.

2.3.4. ������������� ������� Send(), Receive() � Reply()

������� ������ ���������� ������� Send(), Receive() � Reply() ����� ��������. ��-�������� ����� ������������ ����� �������� �������������� ��������� � � �.

������������� ������� Send()

�����������, ��� ������� � ������ ������ �� �������� ��������� �������� �. ������ ����������� ������� ������� Send()

    Send (pid, smsg, rmsg, smsg_bn, rmsg_len);

������� Send() ����� ��������� ���������:

pid ������������� ��������-���������� ��������� (�.�. �������� �); pid - ��� �������������, ����������� �������� ������� ���������� ������������ �������� � ������� ����������;
smsg ����� ��������� (�.�. ����������� ���������);
rmsg ����� ������ (� ������� ���������� ����� �������� �);
smsg_len ����� ����������� ���������;
rmsg_len ������������ ����� ������, ������� ������ �������� ������� �.

�������� �������� �� ��, ��� � ��������� ����� �������� �� �����, ��� smsg_len ���� � ������� � ������ �� �����, ��� rmsg_len ����, - ��� ������ ��������� ����, ��� ������ ������� �� ����� �����������.

������������� ������� Receive()

������� � ����� ������� ������ Send(), �������� ��������� �, � ������� ������� Receive()

 pid = Receive (0, msg, msg_len);

������� Receive() ����� ��������� ���������:

pid ������������� ��������, ���������� ��������� (�.�. �������� �);
0 (����) ��������� �� ��, ��� ������� � ����� ������� ��������� �� ������ ��������;
msg �����, � ������� ����� ������� ���������;
msg_len  ������������ ���������� ���� ������, ������� ����� ����������� � �������� ������.

� ��� ������, ���� �������� smsg_len � ������� Send() � msg_len � ������� Receive() �����������, �� ���������� ������������ ������ ����� ������������ ���������� �� ���.

������������� ������� Reply()

����� ��������� ������ ��������� �� �������� � ������� � ������ �������� ���, ��������� ������� Reply()

   Reply (pid, reply, reply_len)

������� Reply ����� ��������� ���������:

pid ������������� ��������, �������� ������������ ����� (�.�. �������� �);
reply ����� ������;
reply_len ����� ���������, ������������� � ������.

���� �������� reply_len � ������� Reply() � rmsg_len � ������� Send() �����������, �� ���������� ������������ ������ ������������ ���������� �� ���.

2.3.5. Reply-����������� �������� ���������

������ �������� ���������, ������� �� ������ ��� �����������, ������������ �������� �������� ������ ��������, ��� ������� ������������� ������� ��������� � RECEIVE-������������ ���������, ������ ������� �� ������� �������� �� ���������� �����-���� ������. ���� ������ �������� ��������� ���������� Send-�����������, ��� ������� �������, ��������� ������������, ���������� ������, ������� ���������, � ������������� ������� ��������� ������, ������� ����� �� �������� ���������.

���������� ��� � ������, ����� ����������������, ��� Send-�����������, �� � ��������� ������� ����� ���������������� ������ �������� ���������, � ������_

  • Reply-�����������, ��� ������� ������ ������������ �������� Reply(). � ������������ � ���� �������� "�������" ������� �������� ��������� �������������� ��������, �������� �� ��, ��� �� ����� � ������. ������������� ������� ���������, ��� "�������" ������� ������ ��� ���������, �� �� �������� ��� ����������. ����� ��������� ����� ������������� ������� ����� �������� "��������" ��������. "�������" ������� ��������� ���� ������, � �����, �������� ��, �������� �������������� �������� ���������, ���������� ����������.

    2.3.6. �������������� ����������

    ���� ��������� �������������� ���������� � �������� ���������, ������� ������� �����.

    ������������� ������� ������ ��������� �� ������������� ��������� � � �, �� �� ������� �� ���. ��������� �� ��������� C, D, E ��� �� �������.
    ��c. 5

    2.3.7. �������������� ����������� �������� ���������

    � ������� QNX ������� �������, ��������������� �������������� ����������� �������� ���������, � ������:

    �������� ����� ���������

    ������ ��� ������ ��������� ������������ ������� Receive(). ���� ������ ������ ��������� � ����������� ������� �������� �������� ����������������.

    ������, ������ �������� ��������� �������������� "�����", ���� �� ��� ������� ���������, ����� �� ������� ����������� ��������� � RECEIVE-������������� ���������. ��������, �������� ��������� ����������� ��������� ���������������� ���������, �� ��������� ������������ ����������, � ����� ����, ������� ������ �������� �� ���������, ����������� �� ������ ���������. � ���� ������ ������������ ������� Creceive(), ������� ��������� ���������, ���� ��� ���������� ���������, ��� ���������� ���������� ���������� ��������, ���� ��� �� ������ ������������� ���������.

    �� ����������� ������� �������� ������������� ������� Creceive(), ��� ��� ��� ��������� �������� ���������� ��������� ��������� �� ��������������� ������������ ������.

    ������ ��� ������ ����� ���������

    � ��������� ������� ���������������� ��������� ��� ���������� ������ ����� ��������� ��� ����, ����� ������������ �����, ��� ���������� ��� ���������, � �� �������� ������� �����.

    ��������, ������������� �����/������ ����� ��������� ��� ������ ���������, ��������� �� ��������� ������������� ����� � ����������� ���������� ������. ��������� �������� �������� ���������� ���� ������ (�� 0 �� 64 �����). ������������� �����/������ ����� ��������� ������� ������ ���������, � �����, ��������� ������� Readmsg(), ��������� ������ ���������� ����� � ��������������� �����. ���� ���������� ���������� ������ ��������� ������ ������, ������������� �����/������ ����� �������� ������� Readmsg() ��������� ���, ��������� ������ �� ���� ������������ ������. ����������, ������� Writemsg() ����� ������������ ��� ����� � ����������� ������ � ����� ����������� �� ���� ��� ������������, ������ ����� ������� ���������� � ������� ����������� ������ �������������� �����/������.

    �������� ��������� ���������

    �� ��� ��� �� ������������� ��������� ��� ������ ����� ������. ������, ��� �������, ��������� ������� �� ���������� ���������� ������. ��������, ��������� ����� ����� ��������� ������������� �����, �� ������� ������� ������ ���������� �����. ��� ����, ����� ����� ��������� ���������� ������������ � ����������� ��� ����������� �� ��������� ������� �����, ��������� ��������� ����� ������������� � ���������� ���������� �������. ���� ����� ��������� ��������������� �����/������ ������� QNX Dev � Fsys, ������������ ������� ������������������.

    ��� ������ � ���������� ����������� ������������ ��������� �������:

    C�������� ��������� ����� ���� ������� � ������� ����������� ��������� mx. ���� �������� ����� ��������� � ������ ����� ������.
    ��c. 6

    2.3.8. ����������������� ���� ���������

    ��� ��������� � ������� QNX ���������� � 16-�������� �����, ������� ���������� ����� ���������. ��������� �������� QNX ���������� ��������� ���� ���������:

    0X0000 - 0X00FF ��������� �������������� ���������;
    0X0100 - 0X01FF ��������� �����/������ (��� ���� ������������� ��������);
    0X0200 - 0X02FF ��������� �������������� �������� �������;
    0X0300 - 0X03FF ��������� �������������� ���������;
    0X0400 - 0X04FF ��������� �������� ��������������;
    0X0500 - 0X0FFF ��������������� ��� ��������� ���������, ������� ����� ��������� � �������.

    2.4. ����� ����� ���������� ����������� proxy

    Proxy ������������ ����� ����� ������������� �������� ���������, ���������� ��������������� ��� ���������� � ��������, ��� ������� �������-����������� �� ��������� �� �������������� � ���������-�����������. ������������ �������� proxy �������� ������� �������������� ��������� ��������, ���������� proxy. ��� ��, ��� � ���������, proxy �������� �� ���� ����.

    ��������� ������������� proxy, ������� ��� ���������� ���������� ����� ������� ��������� ������� ��������, �� ���������� � �� ������ ������. ���� ��������� ��������� ������� ������������� proxy:

    Proxy ��������� � ������� ������� qnx_proxy_attach(). ����� ������� ��� ���������� ����������, �������� �������� ������������� proxy, ����� ��������������� �������� Trigger() ��� ����, ����� ������ ������� ������������ ���������. ��������� Trigger() ��������� ����.

    ������� proxy ����� ���� ������� ��������� ���: ������ ��������� ���������� ������ ��� ��� ��� �������. ������� proxy ����� �������� � ������� ��� ������ �� 65535 ���������.

    ������������� ������� ������ ��������� � proxy, � ���������� ���� ������������� ������� ������� ��� "������������������" ��������� �� proxy.
    ���. 7

    2.5. ����� ����� ���������� ����������� ��������

    ����� ����������� �������� ������������ ����� ������������ ����� ������������ ��������������, ������������ � ��������� ������������ ��������.

    � ������� QNX �������������� ������� ����� POSIX-����������� ��������, ����������� QNX-�������, � ��� �� ����������� ����������� �������, ������������ � ��������� ������� ������� UNIX.

    2.5.1. ��������� ��������

    ������ �������� �������� ��� ����������� ���������� ������� ������������� ��� ������� ������� �������. ������� ����� ������ ������ ������ ����.

    ���� �� ������ �����������
    ������������� ������ �� �������������� Shell ������� kill ��� slay
    ������������� ������ �� �������� ������� kill() ��� raise()

    2.5.2. ����� ��������

    � ����������� �� ����, ����� ������� ��� ��������� ������ ��������� �������, �������� ��� �������� ��� ������:

    1. ���� �������� �� ���������� ��������� �����-���� ����������� �������� �� ��������� �������, �� �� ��������� ����������� ������� ���������� ���������� ��������;
    2. ������� ����� ��������������� ������. � ���� ������ ������ ������� �� ������ �� ������ �������� (�������� �������� �� ��, ��� ������� SIGCONT, SIGKILL � SIGSTOP �� ����� ���� ��������������� ��� ������� ��������);
    3. ������� ����� ����� ���������� �������, �������� ���������� ���������� ��� ����������� �������. � ���� ������ �������, ��� ������� ����� "������" ������. ���������� ����� ������� ��������� ��������� ������������ ����������. ������ � �������� �� ����������.

    �������� ������� ����� ���������� � ������� ������� ���������� ���������. � ������ ������ ������� ��� ������ �������� ����� ���� ��������� ��������� ������ ��������. ������� �������� �������� �����, ����� ����������� ���� ��������� ������� � ��������� ���������� � ����������. ������� ����������� ����������� �������� �� ���������.

    2.5.3. �������� ��������

    � ����������� ���� ������� ���������� �������� ���� �������� � ��������� �������������� ������ ��� ������������, � ����� ��������, ����������� �� ��������� ��� ����������� �������.

    ������ �������������� �������� �� ��������� ��������
    ����������� �������
    SIGABRT �� ��������� ������� ������ ������������� ����������, ����� ��, ����� �������� �������� abort()
    SIGALARM �� ��������� ������� ������ ��������� �������, ����� ��, ����� �������� �������� alarm()
    SIGFPE** �� ��������� ������� ��������� �������������� �������� (������������� ��� � ��������� ������), ��������, ������� �� 0 ��� ��������, ���������� � ������������
    SIGHUP �� ��������� ������� ������ ���������� ������, ���� ��������� �� ����������� ���������
    SIGILL �� ��������� ������� ����������� ���������� ������
    SIGINT �� ��������� ������� ������������� ������ �������� ()
    SIGKILL �� ��������� ������� ������ ���������� (������� ������������ ������ � ������������ ���������)
    SIGPIPE �� ��������� ������� ������� ������ � ����� ��� ���������� ���������, �������� �� ����
    SIGOUIT �� ��������� ������� ������������� ������ ����������
    SIGSEGV** �� ��������� ������� ����������� ������������ ������ � ������
    SIGTERM �� ��������� ������� ������ ����������
    SIGUSR1 �� ��������� ������� �������������� ��� 1-� ������, ������������ �����������
    SIGUSR2 �� ��������� ������� �������������� ��� 2-� ������, ������������ �����������
    �������, ����������� ������� ���������
    SIGHLD �� ������������ ������ ��������� ����������� �������
    SIGCONT ��� ���������� ������� ����������, ���� ������ ������� �������� ��������; �������� ���� ������, ���� ���� ������� �� ��������
    SIGSTOP* ��� ������������� ������� ������ ��������� ��������
    SIGTSTP* ��� ������������ ������ �� �������������� � QNX
    SIGTTIN ��� ������������ ������ �� �������������� � QNX
    SIGTTOU ��� ������������ ������ �� �������������� � QNX
    ����������� ������� QNX
    SIGBUS** �� ��������� ������� ��������� �� ������ �������� � ������ (����������� ������������� QNX)
    SIGDEV �� ��������� ������� ������������, ����� � �������������� ��������� ��������� ������ � ������������� �������
    SIGPWR �� ��������� ������� ������ ������������ �� ������� ������ <CTRL> <ALT> <SHIFT> <DEL> ��� �� ���������� ������� shutdown
    ����������� ���������� ������� UNIX
    SIGIOT*** �� ��������� ������� ������� IOT
    SIGSIS*** �� ��������� ������� ������������ �������� � ��������� ������
    SIGWINCH*** �� ��������� ������� ����� ����
    SIGURG*** �� ��������� ������� ���������� ������������ �������
    SIGPOLL*** �� ��������� ������� ���������� ���������� �������
    SIGEMT*** �� ��������� ������� ������� EMT (�������� ����������� ����������)
    SIGTRAP �� ��������� ������� ���������������� ����������� ����������

    �������� �����������:

    *������������� ������� ����� "��������" ���� �� ����� ������� ����������� ������� qnx_pflags(). ��� ����� ������������� ������� ������ ����� ������� �����������������;
    **������� ����������� � ������ ������������� ������� ���� �� ����� ��������� ��������� �������;
    *** ï¿½ï¿½ï¿½ï¿½ ������ �������� ��� ������������ ������������� � ���������� �������� ������� UNIX, �� �� ������������ �������� ������������ ������� QNX.

    2.5.4. ����������� ������� ��������� �������

    ��� ������� ������� ��������� ������� ������� ��������������� �������� ANSI C signal() ��� �������� POSIX sigaction().

    ������� sigaction() ������������� ������ ������������ �� ���������� ������ ��������� �������.

    ������ ��������� ������� ����� �������� � ����� �����. ���� ���������� ����������� ����� ������������� ��������, �� ��� ����������� ������� ����� ���������� ��������.

    2.5.5. ��������� ��������

    ������� ��������� ����������� ������ ���������, ������� "�����" ������� � ������� ����������� ��������.

    ���������� �������� ���������� ������������ ����������. �� ����������� ���������� � ������� ����������� ��������. �������������, ���������� �������� ����� ���� ������� �� ����� ���������� ����� ������� � ��������� (������� ������������ �������).

    ���� �������� �� ��������� �������� ���������� �� ����������� �������� � ���������� �����, �� � ���� ������ � ����������� �������� ����� ���� ������������ ������� siglongjmp() ��� longjmp(). ������ siglongjmp() ����������������, �.�. � ������ ������������� longjmp() ������ �������� �������������.

    2.5.6. ������������� ������� ��� ������������ ��������

    ����������� ���� ������������ ������� ���������� POSIX � ANSI C ������������� � ������������� � ������������ ��������. �� ������� �������� ������������ ������ ������������ �������, ��� ��� ���������� ����� ����� ���� ��������������. ������� ������������, ������������ � ����� ���������, ������ ���� ����������� �������� ���������.

    _exit()         getegid()     rmdir()         tcdrain()
    access()        geteuid()     setgid()        tcflow()
    alarm()         getgid()      setpgid()       tcflush()
    cfgetispeed()   getgroups()   setsid()        tcgetattr()
    cfgetospeed()   getpgrp()     setnid()        tcgetpgrp()
    cfsetispeed()   getpid()      sigaction()     tcsendbreak()
    cfsetospeed()   getppid()     sigaddset()     tcsetattr()
    chdir()         getuid()      sigdelset()     tcgetgrp()
    chmod()         kill()        sigemptyset()   time()
    chown()         link()        sigfillset()    times()
    close()         lseek()       sigismember()   umask()
    creat()         mkdir()       signal()        uname()
    dup2()          mkfifo()      sigpending()    unlink()
    dup()           open()        sigprocmask()   ustat()
    execle()        pathconf()    sigsuspend()    utime()
    execve()        pause()       slup()          wait()
    fcntl()         pipe()        stat()          waitpid()
    fork()          read()        sysconf()       write()
    fstat()         rename()
    

    2.5.7. ���������� ��������

    ������ ����� ������������� �������� ��������� ������ �������, �� ������� ��� ���� ������� ��� ���������. � ������� QNX ������� ����� �������, ������� ��������� ����������� ������ ��������. ����� ������������� ������ �������� ���������.

    �� ����� ������ ����������� �������� QNX ������������� ��������� �������������� ������. ��� ��������, ��� �� ��������� �������������� ��������� ������ ����������� ��������. ������ ����� ����������� �������� ����������� ���������� ��������� ������� ����. ��� ���������� �������� ���������� �� �����������, ������ ������������� ��������������.

    � ��������� ������� ������� UNIX ������ � ������������ �������� ������������ �����������, ��� ��� � ��� �� ������������� ���������� ��������. � ���������� � ��������� �����������, ���������� ��� ����������� UNIX, ������������ ������� signal() ������ ����������� ���������� � ����� "����������" �����������. � ���� ������ ����� ���������� ���� �� ���� ��������� ��������. ��-������, ���� ������ ������ ���������, �� ����� ������ �����������, �� ������ ������� signal() ��� �� ����, �� ��������� ����� ����� � ���������. ��-������, ���� ������ ��������� ����� �� ����� ������ ������������ ������� signal(), �� ���������� ����� ����������� ����������. � QNX ����������� ���������� ��������, ������� ��������� ���� �������� �� ����� ����������. ��� ������������� �������� signal() �� �����������. ���� ��������� ����� �� ����� ����� �����������, �� ������� ��������������� �������� siglongjmp().

    2.5.8. ������� � ���������

    ���������� ������ ����������� ����� ��������� � �����������. ���� ��� ��������� ������� ��� ������� �������� SEND-������������� ��� RECEIVE-������������� (������ ������� ���������� ��������), �� ����� ����������� ��������� ��������:

    1. ������� ������������������;
    2. ����������� ��������� �������;
    3. ������� Send() ��� Receive() ���������� ���������� � ����� ������.

    ���� ������� ��� SEND-�������������, �� �������� �� ���������, ��� ��� ���������� �� ������� ���������. �� ���� ������� ��� REPLY-�������������, �� ����������, ���� ���������� ������������ ��������� ��� ���, � ������������� ����������, ����� �� ��� ��� �������� Send().

    �������, ����������� ������� ������� (�.�. ����������� ���������), ����� ����������� ����������� � ���, ����� ������������� ������� ������ ������, �������� � REPLY-������������� ���������. � ���� ������ ������������� ������� ���������� SIGNAL-������������� � ����������� ��������, � ������������� ������� ��������� ����������� ���������, ����������� ��� �������. ������������� ������� ����� ������� ���� �� ��������� ��������:

    1. ��������� ��������� �������������� ������: ����������� ����� ��������� � ���, ��� ��������� ���� ���������� ���������� �������;
    2. ���������� ��� ������������ ������� � ���������� ���������� � ����� ������, ����������� �� ��, ��� ������� ��� ������������� ��������: ����������� ������� ������ ��� ������.

    ����� ������������� ������� �������� ������� ��������, ��� �� SIGNAL-����������, ������ �������� ���������� ����� �������� ���������� �������� Send().

    2.6. ����� ����� ���������� � ����

    2.6.1. ����������� ������

    � ������� QNX ���������� ����� ����������������� � ���������, ������������� �� ������ ���������� ����, ��� �� ��� � ���������, ������������� �� ����� ����������. � ����� ����, � ����� ������ ���������� ��� ������� ������� ����� ���������� � ���������� ���������.

    ����� ������� ������� ������������ �������������� ��������� ������������� ����������� �������, ������� �������� ������, �� ������� ������� ������������� �������� ��������� � ������� �� ���� ����.

    ����������� ������ (��) ������������ ������������ ������������� �������� �� ���� ���� QNX �� ���������� ��������:

    1. ��� �������� ������������ ������ ������� ����������� ������ ������ � ����������� ������������ �����: ��� ��������, ��� �� ������ ������������ ������� ��� ��������� ���������. ��� �� �����, ���� ����������� ������� ���������, ����� �������� ��������� ����������� ��������, ����������� ����� ������������� ������� ������������� ������������ ������ ������ � ������������ � ������ ������������� ���������;
    2. ���� ��� ��������, ����������� �� ������ �����, ��������������� ����� ����� �����, ��� ����� ���� ����������� �����, ����������� ������ ����������� �� �������, ��� ��� ����� ���������� ���������� ������ ���� �������� ����������� �����. ��� �������� ����� ���������, ����� ������� ���������� � ���������� ������ ��������� �������� �������;
    3. ���� ������� ������������ � ������������� ������������ ������������ ������ � ����������� ������ ������ �������, ��� ���, ������� ������������ � ������ �����, ������ ������ ������������� �������������;
    4. ����� ������� �����������, ��� ��������� � ��� ����������� ������ �������������.

    2.6.2. ����������� ��������

    �������-����������� �������� �� ��������� ������������ ������ ����� ����� � ���������, � ������� ��������������� �����. ��� ����� �������-����������� ������ �������� ������� qnx_vc_attach(). ��� ����, ����� �������� ������������ ������, �� ������ ����� ������ ��������� ����������� ������� � ��������������� - VID. ��� ������� �������� �� ����� ������ ������������ ������ VID ������������ ����� ������������� ���������� ��������, � ������� ��������������� �����. �������� ����������� ���� � ������ ����������� VID.

    ��������, �� ���. 8 ����������� ����� ��������� �������� PID1 � PID2. �� ���� 20, ��� ��������� PID1, VID2 ������������ PID2. �� ���� 40, ��� ��������� PID2, VID1 ������������ PID1. PID1 � PID2 ����� ���������� � ������������ �������� �� ����� ����, ��� � ������ ������� ���������� ��������: �������� � ��������� ���������, �������� �������, ������� � �.�. ���, ��������, PID1 ����� ������� ��������� � VID �� ����� ����� ������������ ������, ������� ����� �������� �� ���� � VID �� ������ ����� ������������ ������, ��������������� ��� PID1. ��� VID1 �������� ��������� PID2.

    ����� �� ���� �������������� ����������� ����������� �������. ����� ������� PID1 �������� ��������� VID2 ������ send �������� �� ������������ ������, � ���������� ���� PID2 �������� ��������� �� VID1.
    ���. 8

    ������ VID ������������ ����������, ������� �������� ��������� ����������:

    ��� ���������� �����������, ���������� � ��������� ����������� ������������ ������, ������������ ������� netpoll.

    2.7. ������������ ���������

    2.7.1. ����� ����������� ������������

    ����������� ���� ����������� � ��������� �������:

    2.7.2. ���������� ���������

    � ������� QNX ������� �������� ������������� ���������. ����������� �������� ��� ���������� ��������, ����������� � ��������� �����, � ������������ � �� ������������. (����������� ��������� ����� ������������ ������ �������, ����������� � ��������� �����.) ��� ���������� ���������� �������, ������� ��������� ���������.

    �� ���. 9 ����������� ������ ���������� ��������� � ������������ � �����������.

    ������� ��������� (A-F), ����������� � ��������� �����. ��������� �������� (G-Z) �����������. � ������ ������ ����������� ������� �. �������� �, B � � ����� ������ ���������, ������� ��� ����� ��������� ������������ ����� � ������������ � ������������� ���������� ������������.
    ���. 9

    ��������� ������������� ���������� � ��������� �� 0 (������) �� 31 (������). �� ��������� ������� ��������� ��������� �� ����������� ��� ��������; ������ �� ����� 10 ��� ����������, ����������� �� �������������� Shell.

    ���� �� ������ �����������
    ���������� ��������� �������� ������� getprio()
    ������ ��������� �������� ������� setprio()

    2.7.3. ������ ������������

    ��� �������������� ������������ ������ ���������� � ������� QNX ����������� ��� ������ ������������:

    ������ ������� � ������� ����� �����������, ��������� ����� �� ���� �������. ��� ���������� ������������� � ������ ��������, � �� �� ���� ��������� �� ����.

    ���������, ��� ������ ������ ������������ ������������ ������ �����, ����� ��� ��� ����� ���������, ����������� ���� � ��� �� ���������, ��������� � ��������� ����� (�.�. �������� ��������������� ����������� ���� � ������). ���� � ��������� ����� ��������� �������, ������� ����� ������� ���������, �� ���������� ��������� ��� �������� � ������� �����������.

    ��� ��������, ������� ���������� ����������, ��������� � ��������� �����. ���� ������� � �����������, ������� � ������ �����������.
    ���. 10

    ����� ������������ ����������� �� ������������ ��������, ������, �� ����� ���� �������.

    ���� �� ������ �����������
    ���������� ����� ������������ ��� �������� ������� getscheduler()
    ���������� ����� ������������ ��� �������� ������� setscheduler()

    ������������ �� �������� ������� �������

    ��� ������������ �� �������� ������� ������� �������, ��������� ��� ����������, ���������� �������� �� ��� ���, ���� ��:

    ��� ��������, ������������� � ����������� ������������, ����� ������������ ������������ �� �������� ������� ������� �� ��������� �������� "������������" ��� ��������� � ������������ �������. ��������, ���� ��� ��������� ������� ������, �� ������ �� ���� ��������� ����� ��������� ������� ��� ������������� ��������� ���� ���������.

    �������� ����� ������������

    ��� �������� ������ ������������ �������, ��������� ��� ����������, ���������� �������� �� ��� ���, ���� ��:

    ����� ������� - ��� ������� ���������� ���������, ������������ �� ������ ���������. �� ��������� ������ �������, ������� �����������, � ���������� ���������� ��������, ������������ �� ��� �� ������ ���������� � ��������� �����. ����� ������� ����� 100 �������������.

    �� ����������� ����������� ������� �������� ����� ������������ ��������� ������������ �� �������� ������� �������.

    ���������� ������������

    ��� ���������� ������������ ������� ����� ���� ��������� �������:

    ���������� ������������ ����� ������������ � �����, ��� ���������� ������������� ������� �������� ��������� ��������� � ����������������� ����������, ����������� � ���������� ������. ���������� ������������ ��������� ���������� ������������� ��������� ����������� ������ � ������������ ���������� � �������� ����� ����� ������� ��� ���������, ���������� � ���������� ������.

    ���������, ���������� �� �������������� Shell, ���������� �� ��������� ���������� ����� ������������.

    ������ ������������

    ������� � ���������� ����������� �� ��������� ������ �������, ����� ���� � ����������� �� ��������� ������������ ������������, ��� ���������� ������.
    ���. 11

    ���������, ����������� ��������

    � ������� QNX � ����������� ������� �������������� ����� ���������� ������������ ������ "������-������". ������� (������������� ��������) ��������� ��������� ��������� �������, � ������� (������������� ��������) �������� ��������� � ���� ��������, ���������� ������������. � ����� ������ ������� ����� "������� � ����������", ��� �������.

    ������ ���������� �������� ����������� ���������� ��������. � ���������� ������, ��� �������, ����������� � �����������, ������������� ���������� ���� ����� ��������. ��� ���� ����� �������������� ����� �� ��������� ���� ������� ������������, ������, �������� ����� ����������������.

    ���� ����������������� ������ �������� ��������� �������, �� �� ��������� ��� ������ ����� �������������� �������� � ����� ������� �����������. ��� �������� �������� ��������� �������, ��� ��� ������ ������ ������� �������� �������� ������. ���� ������ �������� �� �������� ������� �������, �� ���� ����� ����������. ���� �� ������ �������� ����� ���������� �����, �� ����������������� ������ ����� ��������� ������ �� ������ ��������, ������� ���������� ����, ��� � �������, �� ����, ��� � �������.

    ��� ���������� ���� ��������, ������� ����� ������������� ���������, ��������������� ���������� �������, ������� ������ ��� ���������. ����� ������ �������� ���������, ��� ��������� ���������� ������ ���������� �������. �������� �������� �� ��, ��� �������� ������ ���������, � ����� ������������ �������� ��� ��. ���� ��� ������ ������� ��������� ������ ���������, �� ��������� ������� ������������� � ��� ������, ���� ��������� ������ ������� �������� ���� ���������� �������. � ���������� ����� ������ "�����������" ��������� ������� ��� ����, �������� ��� ��������� ���������� �������� ������� � ������� � ���������� ����� ������������. ���� ����� �� �������, �� ��������� ������ ������� ��������� ��, ��� ��� �� �������������� �� �� ����������������� �������.

    ���� �� ��������� ��� ������ ������� ����������, ����������� ��������, �� ��� ������� ����� ������������ � � ���, ����� ��������� ������������ � ������� ����������� (� �� � ������� ������� �����������).

    ��� ��������� ����������, ������������ ��������, �������������� �������� qnx_pflags()

        qnx_pflags(~0, _PPF_PRIORITY_FLOAT | _PPF_PRIORITY_REC, 0, 0);
    

    2.8. � ������ � �������� �������

    ��� �� ��� ����� �� ��������, �� ��������� �� ����� ����� ����������� ��������������. � ������� ��������� ������� ������ �����, ������������ ��� ����� ������ ������������ ����������. ����� ����� �������������� �������� ������� ����� �������������� �������� ������� � ����������� ������� ���������� ���������, ����������� �������� ������� �� ��� �������. ��� ����� ���������� ��������� ��� �������� �������� (latency). � ������� QNX ����� ���������� ��������� ����� ��������.

    2.8.1. �������� ����������

    �������� ���������� - ��� �������� ������� ����� ������� ����������� ���������� � ������� ���������� ������ ������� ����������� ������� ����������. � ������� QNX ��� ���������� ������� ��� �����, ������� �������� ���������� ������ �������������. �� ��������� ����������� ��������� �������, ����� �� ����� �� ���������� ���������� ���� �������. ������������ ����� �������� ���������� ������ ���������� ������ ������ �������� ����������; ������� ��������, ��� � ������� QNX ��� ����� ����� ����.

    �� ���._12 ������������ ��������� ��������� ����������� ���������� ��������������� ������������ ����������. ���������� ���������� ���� ������ ���������� ���������� ��������, ���� ���������� ���������� � �������� "������������" proxy.

    ������ ������������

    ���������� ���������� ��������� ������������. ������� ���� ��� ���������� 386, 20 ��� � ���������� ������.
    ���. 12

    �� ���������, ����������� ����, �������� ���������� (Til) ������������ ����� ����������� ��������, ��� ������, ����� �� ����� ������������� ���������� ��� ���������� ���� �������. � ������ ������ �������� ����� ����� ������� ���� ���������� ����� ������ �������� QNX, ����� ���������� �������.

    2.8.2. �������� ������������

    � ��������� ������� ����������������� ���������� ���������� ���������� ������ ����������� ���������� ������������������ ���������. � ���� ������ ���������� ���������� ���������� ���������� � �������� ������������ proxy. ��� � ���� ������ ����� �������� - �������� ������������, ������� �� ���������� ����.

    �������� ������������ - ��� ����� ����� ����������� ������ ����������� ���������� � ������� ���������� ������ ������� ������������ ��������. ������ ��� �������� �������, ������� ��������� ��� ���������� ��������� ��������, �������������� � ������ ������ �������, � �������������� ��������� ������������ ��������. �������� �� ��, ��� ��� ����� ������ �������� ����������, ��� ����� �������� ��������� � ������� QNX.

    �� ���. 13 ������������ ��������� �������� ������������.

    ������ ������������

    ���������� ���������� ��������� ������ � ���������� "������������" proxy. ������� ���� ��� ���������� 386, 20 ��� � ���������� ������.
    ���. 13

    ����� ��������, ��� ����������� ������������ ���������� ��������� ������ ��� ������������� "������������" proxy. � ����������� ������� ���������� ���������� ��� ����������� �� ����� ����������� ���������. ������ proxy ��� ����������� ������������ �������� ����� �������� ������ ���������� ������ ��� ������������� ������ �������. ��������, ���������� ���������� �������� ���������� � ���������������� �����������, ���������� ���� ���� ������ ����������, ������ �� ������ �������� ���������� �� �������� ��������� ��������������� ������� (Dev) ������ � ��� ������, ���� �������� ����� � ����� �������� ������.

    2.8.3. ��������� ����������

    ��������� ����������� ��������������� ��������� ����������� ���������� ����������� ����������, �� ��������������� ���������� ����� ��������� ��������������.

    ���� �������� ��������� �������������� � ������� QNX.

    � ���������� �������� ������� ���������� � �������� ������� ��������, ����� ��������� ������ ���� ����������. ����������� ����� �� ��������� �������������� ����� ���������� � ������ �����������. ��� ������� ��������� ��������� ����������� ��� ����������������� ���������� ������� ��������� ����� ��������� ���� ������������������ ����������, ��� ��� � ������� QNX ������������������ ���������� ��������� �����������������.

    �� ���. 14 ����������� ������ ���������� ��������.

    ������ ������������

    ����������� ������� �. ���������� IRQx ��������� ���������� ���������� Intx, ������� ����������� ����������� IRQy � ��� ������������ Inty. Inty �������� "������������" proxy, ������� ��������� ������� �, � Intx �������� "������������" proxy, ����������� ������� �.
    ���. 14


    ���������������������
    ������������� �������