, signal() ANSI sigaction() POSIX.
sigaction() .
. , , .
, .
. . , , ( ).
, siglongjmp() longjmp() , , siglongjmp() . longjmp() .
, . QNX , . ; .
, QNX . , . - . , .
UNIX , , . UNIX signal() , . . -, , , signal(), . -, signal() , . QNX , , . signal() . (long jump), siglongjmp(). |
. SEND- RECEIVE- , , :
SEND- , , . RECEIVE-, , , , , Send().
, (.. ), , , - , REPLY-. SIGNAL- . , . :
, SIGNAL-, Send(), (-).
QNX , . , .
( virtual circuit, VC). VC - , , . VC QNX- :
- VC , . - qnx_vc_attach(). VC, , VID. , VID , . VID.
, PID 1 PID 2. 20 - PID 1 - VID PID 2. 40 - PID 2 - VID PID 1. PID 1 PID 2 VID , , , , , .. , , PID 1 VID , VID VID, PID 1 . VID PID 2.
. PID 1 VID 2, , VID 1 PID 2.
VID , :
, VC. , , / , VC open() . VC. , qnx_name_locate(), VC . VC PID .
, , .
, , .
qnx_proxy_rem_attach(), (nid_t) (pid_t).
, .
, qnx_proxy_rem_attach().
VC :
VC. , , . , .
VC . :
, VC, netpoll.
. "" (sem_post()) "" (sem_wait()) , . , .
, , . , - . - , .
, " " . , , .
:
QNX . , READY, . ( READY - , ). .
(A-F), READY. (G-Z) . A. A, B C , .
, , 0 () 31 (). ; , , 10.
: | : |
---|---|
getprio() | |
setprio() |
, QNX :
, . , .
, , READY (.. ). READY, .
READY. , B.
A , B .
, , .
: | : |
---|---|
getscheduler() | |
setscheduler() |
FIFO , :
FIFO . , .
, , FIFO (.. ) . . , , , , - (, ).
, , :
. , ; , READY ( B).
- , . , , , READY . 50 .
, FIFO-. |
:
. ; 1. READY ( B).
, , , . , .
, , .
QNX /. , , , . , , .
, . , , . , , , .
, , , . , .. .
, . , , , , , .
, , . , , . , - . , , , . , "" , . , , .
- , ( ).
- , qnx_pflags() :
qnx_pflags(~0, _PPF_PRIORITY_FLOAT | _PPF_PRIORITY_REC, 0, 0);
, . , . , , . .
QNX .
- . QNX , , , . , . - QNX .
, . , .
.
(Til) - , , . , QNX .
(Tqqq1ilqqq0) :
(Til): | : |
---|---|
3.3 | 166 Pentium |
4.4 | 100 Pentium |
5.6 | 100 486DX4 |
22.5 | 33 386EX |
. "" . - , - .
- -. , , , . QNX , .
.
, . . , "" , , . , " " (Dev) , , , .
(Tsl) :
(Tsl): | : |
---|---|
4.7 | 166 Pentium |
6.7 | 100 Pentium |
11.1 | 100 486DX4 |
74.2 | 33 386EX |
, .
QNX. - - , . . , .. QNX .
A. IRQx Intx, IRQy Inty. Inty , B, Intx , C.
:
, , . , , , . , , .
, . . , , , , . , .. , , .
QNX :
fork() exec() POSIX, spawn() QNX.
fork() , . , , .
exec() . exec() , .. . POSIX- - - fork(), exec() .
spawn() . fork() exec(), . fork() exec(), , , spawn() .
, . :
fork() | exec() | spawn() | |
---|---|---|---|
* | |||
UID, GID | |||
UID, GID | |||
* : - .
:
. , ID . .
, , ; . , . , .
:
:
wait() waitpid(), "" , wait() . ( , , _SPAWN_NOZOMBIE qnx_spawn() qnx_spawn_options(), SIG_IGN SIGCHLD signal(). , .)
, . - , .
dumper , . .
:
"". |
QNX.
:
(Shell), ps sin ( qnx_psinfo()).
(Shell), sin ( qnx_osinfo()).
ps POSIX; . sin, , QNX; , QNX, , ps.
QNX , . , , .
. , . , , , . , . - - , ?
QNX . , . , .
, , , . QNX , . , , .