Begin begin
(* *) wait (data_available);
signal (data_available); (* *)
end; end;
. , 0. ( ) , , , . , , , .
, , , mutex ( mutual exclusion - ). , 1 , , , . signal 1. wait 1 0 . 0, , wait, , .
, , . , wait, , . , , ; . - signal , , , .
, , , wait signal , . , , , . . .
test_and_set . .
4.
, , , . , , .
Begin
wait until condition;
Modifydata; end
. , . - . .
|
|
, : - , - , , .
, , , , . - , .
event (), await () cause (). , await (event), , event . cause. , cause (event), , . , , .
to await "", "", await () , " ". to cause " ", , " -". cause () " " ( ).
, , . ,
var mutex: semaphore; change: event;
Begin
while not condition do await (change); wait (mutex);
(* *) signal (mutex); cause (change);
end;
event condition, , condition , . mutex, . , . , , , .. .
. - - . , .
3.3.
1. .
2. .
3. .
4. .
|
|
1.
. (mutual exclusion). , , .
:
1. .
2. . .
- . (safety) , . (liveness) , - , , , . - , - . . , .
- . f1. , , f1 = true, - f1 = false.
program protect_example (* *)
var fl: boolean;
begin
f1: = true;
cobegin
while true do (* *)
begin (* *)
repeat until f1 = true;
(* *)
f1:= false;
end; (* *)
while true do (* *)
begin (* *) repeat until f 1 = false;
(* *)
f1: = true;
end; (* *)
coend;
end (* protect_example *)
- f1 , f1 . , , , .
, . . , , , , f1. , , , . , (busy loop), , .
- f1, . , , f1, . , f1 .
f1 ..
repeat until f1 = true;
f1:= false;
(* *)
f1:= true;
, , . f1 = true, f1 = false, f1, , . , .
|
|
, , , . , , .
, test_and_set ("__"), , . test_and_set , . .
test_and_set read-modify-write VMEbus. - . test_and_set , , .
. , test_and_set, . , . , , , . , . - , . , , . , , , .
, . . , : , , . .
, , , test_and_set . .
2.
, - . , . (deadlock) (. 1).
, . (starvation). , , , . , , , (. . ), , .
|
|
1. - : ;
, . , - .
. , , , . , , , .
, - . , , . - , .
. 1. (background) , . . . , , , .
, . , .
. , .
1. . , .
2. . , , , , .
3. . , . . .
4. .
. , , .
, .
, , . , , .
. , , , , . , , , .
"-" , . , .
. - , - - , , , , , . , .
. , () , . , " " . , . , , , , .
|
|
4.
, . . , , , . , , , , . .
. . (tl+, t1+k) . ( ), .
. , , , (, ), , . , , .
, (). , , .
, , , , , , , . .
3.4.
1. .
2. .
3. .
4. .
5. .
1.
. . , .. , .
- , /. , , , , . , , , .
. , . , , , . .
2.
, , - . , (. 1). .
1. -
, . : , , / , , . , .
. , , . - , .
/ . , , , , , .
, , ,
put_mailbox (# 1, message)
,
get _mailbox (# 1, message)
, . , , , .
. - , FIFO. ( ), . , , , .
3.
(pipe) , , . UNIX . UNIX / , () (), - , , . , , ( "|"). UNIX, OS/9 Windows NT ().
. - , , , . , , . , , , . , , .
/ . , , , , , , . , ..
, / / , "-". UNIX TCP/IP, Windows NT . , , .
4.
"-" "" , , , .
"-" (Remote Procedure Call - RPC). , , . , . .
, RPC . RPC , , , . RPC (time out) , ; , , - . , RPC , .
5. , , , , , , , - . . , .
, , , - signal wait put get , . . "". , "", . "" . , "" .
, , . , , . , , . , , - , , . , , . .
. , , , . , , , , .
, , IP TCP, . , . , , , , , . - . , . .
. 3.5.
1. .
2. Spox.
3. Multiprox.
4. VCOS.
5. DEASY.
6. UNIX.
7. OSF/1 D.
8. VAX/VMS.
1.
() , , . . , - , , - , , . , .
: , ; ; , . , , . Motorola : OS-9 Microware Systems; VxWorks WindRiver Systems; LynxOS Lynx Real-Time Systems; pSOS+ Integrated Systems; QNX Quantum Software Systems; VRTX/OS 3.0 Ready Systems; Nucleus Accelerated Technology; RTXC Embedded System Products; OSE Enea Data, Precise/MQX Intermetrics Microsystems Software; VMEexec Motorola.
- "" "" (). "" , . VMEexec. "" , , , . OS-9/9000.
. , "", , , , , , , - . , VMEexec MULTI GreenHills Software, VxWorks Tornado, CrossWind GNU- Cygnus Support, VRTX pSOS XRAY Microtec Research. , "" , , . . , OS9/9000 20 ( VMEexec, VxWorks, pSOS - 10 ), .
, (), , . . , -, , . - , (host-). . . VCOS DEASY.
Spox Multiprox. 20-40 . , . Spox Spectron Microsystems , , . Spox , .
Multiprox Comdisco. Multiprox , - -.
2. Spox
Spox ( Spectron 1987 .) , . , -, ( ). Spox - .
Spectron OSPA ( ) Spox - . MS Windows, OSPA . , host- - ( ). OSPA API ( ), - .
Spectron Spox TMS320C30, Motorola 96002, TI C40 Analog Device 21020. Spectron Spox . . , , -. Spox , . SPOX .
. , . , - . SPOX - , . , , -. SPOX .
. (, VXWorks, OS-9, LynxOS) -. , - . , Spectron , ( ) DSP. .
. -. (MS-Winows, Unix, DOS), , , , . , -, .
. , : , , , , , , , . - , , SPOX .
SPOX , , , - . SPOX - , . SPOX - , . , , . SPOX , , .
3. Multiprox
Multiprox Comdisco, , SPW (Signal Processing Workstation). , - , , - . Multiprox , , .
SPW- Multiprox - - , . -, , . , , .
4. VCOS
VCOS (Visible Caching Oparating System) . VCOS , . VCAS (VCOS Application Server) host- , - - host- -.
VCOS 400 32- . host- . , . VCOS host , VCOS , . VCOS .
VCOS - . V.32 , V.29 FAX , , , , - .
5. DEASY
DEASY , DSP3x . DEASY . ( ) 500 .
DEASY , , , . , , , , , , - .. .
DEASY .
System.a30 TMS320C30 -.
Host.lib , , .
Deasy.a30 - Borland C , .
Bgi.a30 - Boland C IBM PC.
Deasy.exe , . .
Kg30.exe, Cq30.exe, , .
System Host. , . , (DSP) (CPU) , . CPU DSP DSP, . System Host .
System , TMS320C30. Host DSP , . : Borland C/C++, Microsoft C, Watcom C.
6. UNIX
UNIX , . 1970- AT&T Bell Laboratories. , , , UNIX- UNIX.
UNIX . AT&T Bell Laboratories Berkeley Software Distribution. UNIX , . , . , UNIX .
UNIX , . UNIX OSF/1, Windows NT. UNIX , TCP/IP X Window.
UNIX , (, /), , , . UNIX 10000-20000 1000-2000 - , . 100 1 . UNIX - . , UNIX .
UNIX . , . UNIX , . - , , , , , , . , . UNIX , . - , UNIX , .
UNIX . , . , , . , , . , . - , .
, UNIX, . / . , , / , , . .
UNIX . , , , , . "" UNIX. UNIX , / , . .
UNIX , , - . , , , , . POSIX - , UNIX, IEEE 1003.1-1988.
7. OSF/1 D
UNIX , . System V AT&T . - Digital, Equipment, Hewlett Packard, IBM . - , Open Software Foundation (OSF) , - . OSF UNIX-co , .
OSF/1 , Mach, - , Carnegie-Mellon University (. , ) . Mach .
OSF/1 AT&T UNIX System V Berkeley. Mach OSF/1 - UNIX, .
UNIX OSF/1 , . OSF/1 TCP/IP. OSF/1 NFS TCP/IP.
OSF . OSF/Motif , .
(Distributed Computing Environment - DCE) , . D OSF/1, .
8. VAX/VMS
VMS Digital Equipment 32- VAX. , , . VMS , .
VMS , . . VMS , , . VMS (, ), . .
, VMS , . VMS, , , VAX/ELN. - . , , , . .
, , . , - 1 . . . , .
- . , . - , , - , . , , , . test_and_set. , -.
, . , . .
3.6. OS-9 VxWorks
1. OS-9.
2. VxWorks.
1. OS-9
OS-9, , Motorola. : OS-9 Motorola 68K 6800 683, OS-9000 6, 5, MPCSxx, MCF52xx, : Intel 486, Pentium, SPARC, MIPS. , OS-9. OS-9 IBM-PC, Windows, SUN, HP, IBM RS/6000 UNIX.
OS-9 . . . , .
OS-9 - , , (OS-9 kernel), (I/O man), - (.1). , - , , - . OS-9 . , .
OS-9 .
Atomic (28 ) . , MC68040 25 3 , "" . ( , , ) , .
Standard . - 67 38 680,683 ( OS-9), 512 , , 75 24 PowerPC ( OS-9000). Standard