POSIX ғ қ ғ :
- pthread_create():ғ құ
- pthread_exit(): ғ қ
- pthread_cancel(): ғ
- pthread_join(): ғ қғғ ғң ұғ.
- pthread_detach(): ғ pthread_attr_init(): ғ ң құ
- pthread_attr_setdetachstate(): ғ ғ ү ү ө.
- pthread_attr_destroy(): ғ .
POSIX ғ ң : (mutexes) ұққ ә (conditional variables)
- pthread_mutex_init() құ;
- pthread_mutex_destroy() ;
- pthread_mutex_lock() қ;
- pthread_mutex_trylock() -
- pthread_mutex_unlock() ;
- pthread_cond_init() құ;
- pthread_cond_signal() ұғ;
- pthread_cond_wait() ү.
POSIX ғ қ ққ.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <pthread.h>
static void wait_thread(void)
{
time_t start_time = time(NULL);
while (time(NULL) == start_time)
{
// , 1 .
}
}
static void *thread_func(void *vptr_args)
{ int i;
for (i = 0; i < 20; i++) {
fputs(" b\n", stderr);
wait_thread();
}
return NULL;
}
int main(void)
{ int i;
pthread_t thread;
if (pthread_create(&thread, NULL, thread_func, NULL)!= 0) {
return EXIT_FAILURE;
}
for (i = 0; i < 20; i++) {
puts("a");
wait_thread();
}
if (pthread_join(thread, NULL)!= 0) {
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}
ұ ғң . ғ құғ (pthread_create), ң ө (thread_func) ә ә ғң қ ү (pthread_join) өң ө ө.
Solaris қ үң ғ ү
Solaris қ ү ө/ө ғ қ. қ ұ ү ң ү . Solaris қ ү ққ ғ өң ң ү , ө ғ , ңғ үң - ү .
|
|
5. Solaris ғ ұ
6. Solaris қ ү ү ұ
ө ә ү ү қ ққ ң қ өң ң үң ұ.
Windows 2000 ғ
Windows қ ү өғқң / ү . Ә ғ ұ:
- ғ (thread id);
- ғ
- ққ ә ү ғ ғ
- ғң ә ғ ғ (thread-local storage TLS).
Linux-ғ ғ
Linux ү ғ threads , tasks () .ғ clone () ү қ құ. ү қ қң -қ (ү) қ қ қғ ү .
Java-ғ ғ
Java ө ә қ ң ғ өң ғ ғқ . Java ғ қ құ:
- Thread ң ң ү
- құ ғ ә run - ғ Runnable ү
Java-ғ ғ JVM қ қ.ғ ң ә ң ү құ ү.
Java ғ ғ ү ғ 7- ө. - ғғ ұқ, Java-ғ ғ ң құ ә қ , ; wait, sleep ә. ә қ ғ ү ; run ә қғ ғ қ.
7. Java-ғ ғ ғ.
ʳ
Mac C-threads MacOS ү ққ ғ.
POSIX Pthreads POSIX ғ ә POSIX қ қ ғ
Solaris threads Solaris - қ ғ.
Thread Java ғ ө .
ғ pthread_attr_t POSIX ғғ ң ә.
ғ (thread group) өң ғ ү қ қғ ғң ә.
POSIX-ғ pthread_t .
(task) Linux-ғ ғ .
(exception) - ә -ғғ қ өң ғ ң
|
|
ғң (thread-local storage - TLS) қғ ғғ ә ғ ғ қ .
өғқ ғ ғ қ ғң ө ә.
ө/ө ә ү ққ ғ ә ү ғ ө ү ө
ө/ өғқ , ққ ғ ғ ғ ө ү ө .
/ ә ққ ғ қғ ғ ө ү ө
(mutex) - қ ө қ .
ң (lightweight process) ғ - ү ұ .
ғ (thread) - ң ң үң ұқ ү қ қ .
Қ ң ғ (user thread) қң қғ ң ғ ң ғ.
ғ (kernel thread) ң ң қ ә қ ө ң ү ғ.
ғ (ThreadPool) NET ғ ғ құң .
( UNIX) қ ғғ ө ң өң .
"ү" (heavyweight) ңғ ү қ-қөң ң қ ү .
(conditional variable) wait ә signal - қ .
өғқ (multi-threading) ң ң ң ғң қ ғ ғ. ғ ң - ү үң ү.ғ өң , қ ғ ә ғ .
(lightweight process) - ғ .
ғқ ұғ қ ғ қ , ғ 1970 ң ғ "" ү қ. өғқ UNIX-, Solaris- ә Windows NT- . Ә ү - қ өғқ - . ғқ өғқң ә қ ң Java- .NET- .
ғ ө ң:ү ғ( ғ) ө ққ ң ғң . өғқң ә ү ү (ү ққ ғң ө) -, -ө, ө-.
өғқ ққ қ: fork ә exec ү қ қ; ғң қ; өң;ғ ғ құ; ғ қ (TLS);ғ ; ғқ ә ң қ
|
|
POSIX threads (Pthreads) API -ң UNIX өғқ қ .ғ өң ә . ғ ү қ.
Solaris - ғ ү ә ққ ү қ ң ү қ .Ә әү ү құғ ң ү қ. өғқң "ө-ө" қ.
Windows 2000 "-" өғқ қ. Ә ғ өң ө, қ, ү ә ққ ү , ғ (TLS) қ.).
Linux ғ (tasks) ә clone ү қ қ құ.
Java-ғ ғ ә қ ң қ. Thread ә ө. Java қ. ғ құғ . қ ғ ғ .
Қ 12-13. ˲ò ҮIJ
қ: ү ң құ ң қ
ʳ ө: , ү, ү, қ , ққ , қ , , , қ , , қ , қ , -,
ә (2 ғ)
- ү құ. OSI .
- ң . TCP/IP . қ .
- Ү ү ү .
- Ү үң ұқғ ү (ғқ).
- Ү ү ү ү ә .
қ ү, ү ( , ) ә қү қ құң, ғқ қң ә ә ң .
қ ( ) қ ғ ә ққ қ қ ң қ .
қ ( ) , ә қ құғ қ қ -қ , қ ә ғқ қ қ . ұ ң ү қ - , , - ә қ құғғ қ құ қ .
|
|
қ ( ) ққ , ә ң (ү) қ ү () .
қ ғ ( ғ) ң қ ә қ құ ү қ ғ. ғ ү ұ ө қ, ү ү , қ қү ң. ғ , ұ ғ ү ә қ, қ ә ө.
-ң қ құғ , ә ө -ғ құғ ғ, қ (Local. Area Network, LAN) (Wide Area Network, WAN) ( қ ғ) ғ. ү қғ ү: қ құғң қ ғ (ғ, ), ң ә ң ү ққ қ қ, ә қ, ә ғ , қ (IP -), қ ә қ .
қ құғ: ә ң ә . ғ қ құғ ү LPT -, FireWire ә USB.
қ ү құғ
қ қ құң ә ү ү қ құғ. ғ қ қғғ , -қ ғ ғ .
қ , ( , ; the touch display, server) :
1) ө , -қ қ құғ, , , ұқ ғ
. қ, ө ғ ү;
2) өң ұ ү қ ғң ө.
қ қ қ құғ. қ ә ү қ қ ә қ қ қ қ ғ ө.
- ә ң ғ қ ө. (1 =1 /) ө.
(ғ. ) қ қ ғ ә қ құғ.
ә ү қ қ, қ ү . қ қ . қ - ү ң ә ұ ү.
қ ң ә ң ә , ә қ ү қ (ө ұ / ғ ү). қ ү ә қ. қ қ ү . қ қ қ қ ғ . ә қ қ ғ қ ғ ғ . ү қ қ ә .
|
|
қ ( ) ( ( ) ұ ү қ , қ .
-, (ғ. Һ -) қ , ғ ұқ қ құғ . ұ ң ғ қ, ғ ғғ . қ ұ ү : (- ү), (- ү), ( Ұ). ғ ғ ғ ұ қ, , қ ә қ қ өң, ә ғ ү ү ә ң қ өң.
ғ ( -) ң ө қғ . Қ :
қ ү ң ң ғ ү.
ISDN қ қ ү
DSL ө () қ ө ұ ү . ғ қ қ, ә - ғ . ө қ ә ә қ .
ғ ә ү қ , ұқ ө .
Ұ қ ұ GPRS, 3, 4 ә .. ғ ұ . Ұ-қ() ү . ұ ө ұ қ.
xDSL :
xDSL қ ң ң қ ққ . (Digital Subscriber Line қ ).
ADSL (Asymmetric Digital Subscriber Line) қ , ғ (downstream) 6,1 / , 16640 /. қ ұғ ә ң .
UADSL (Universal ADSL), ғ DSL Lite, қғ ADSL-ң қғ ұқ ( ұғ 3,5 қ 1,5 / ә 384 / ү ғ; ұғ 5,5 640 ә 196 /). Құғ ң ә ү қ .
RADSL (Rate Adaptive Digital Subscriber Line) () ә ғ ө .
HDSL (High Data-Rate Digital Subscriber Line) ғ қ , 1,536 2,048 / қ қ . ұғ 3,7 , ө .
SDSL (Single-Line Digital Subscriber Line) ғ қ (1,536 2,048 /) , , - .
VDSL (Very High Data-Rate Digital Subscriber Line) ө ғ қ (56 / ), . Қққ 1,5 . . қ қ, қ ү қғ ғ.
ә құ ң ғ. - қ ә ғ ғқ ә қ құң ү ү. қ қ әү ә ққ қ ғ . ғқ құ қ ү қ ұ. ң ұ ү -ң ү қ. қ қғ ғ ғ (Windows NT, Novell NetWare, ..). қ -ң ү ң қ ғқ (қ ғ, ә қ, ...).
қ қ құғ ү қ қ ө, :
- ұ ;
- ;
- ққ .
(Computer NetWork, net - , work - ұ) ә ә ү қ қ - ә қ .
қ :
- ұ өң ғ ;
- Қ ә ұ қ;
- ң ү ;
- ң, ә ө ү қ;
- Құғ ң ө ә .
қ қ :
- қ қ ғ қ;
- ө ө ө () ;
- - құ қ;
- қ .
қ қ ғ қ ғ ө:
- (-Local Area Network, LAN) - ң ғ ө қ ұ-ғ ғ қ қ . ұ 10-20 - ( қққ 10 -ғ ).
- қ, ғқ (-Wide Area Network, WAN) , ү ә қ қ ү.
- ққ, ( -Metropolitan Area Network MAN) қ, , . ұ ғ, ғ қ , , қғ ң, ұ ң .
Ө ө ө () :
- ө ;
- ;
- ә ғ ө
- құ қ ң :
Ә ң ө ққ :
қ ң қ, қ ң ұ , ң ққ, ә қ қ .
қ ң ү, қ қ, ұ ұ. ң ү, ғ қ ң ә ү ғқ қ .
қ ә қ ү, ұ ғ ғ - ә ә ә қ қ ө . ң ғ қ, ұ қ.
қ ә қ :
- Қ Қ ˲, Ұ - ˲ Ұ Қ. ғқ қ қ ң ө ү, ә қ . қ қ ұ . ө қ қ.
- Ң˲ ˲Ѳ ( ò˲) Ұ ˲Ͳ Қ Қ Ң ҚҰҚҚ . қ қ, ә ү - ә ғ қғ. ң ғ қ .
қ қ
(қ ):
ұ ә ң (ұ ң) қ қ , қ ә қ , қ ө.
құғ қ ң ұ ү ғқ-қ құ .
() ә -ң ңқ , ғ ә / ғғ .
ң ң ғ ү:
- Arcnet (Attached ResourceComputer NETWork);
- Ethernet;
- Token Ring.
Arcnet , қ ұ - . ұ ә ұ қ. ұ (Token bus) қ қ ә қ-, ғ . ғ ң, құғ-ң ғ ә . ө ә ә қ қ ө.
ұ ә ғ 2,44 /, ү , қ, қ ң .
ұ ң ө . ң қ -/ққ . Ә ң ғ ө ө (0-255) . ғ ө ә қ . ә ққғ 6 , қ ғ ө (2,44 /).
Ethernet қ - қ, ә қ () . қ ә ғ қ. ұ ұ ә қ , -. ө ә қ. ә -ғ 10 /c, қ ң ү (қ) -ғ ө .
Token Ring IBM ұғ. ә ғ қ ә қ . ә ғ 4 / ә 16 /. ә қ қ. - қ ұ. ә ққғ - 120 ( ғ).
қ қ
- ( )
- (transceiver)
- Қ (Repeater)
- (Hub)
- ө (-Bridge)
- (Switch)
- (Router)
RJ-45
BNC
қ ү қ ә қ, қ ү, ғ ғғ қ қ . Ә ң қ ө ө .
ғ - , ң қ- қ. ғ AUI (Attachment Unit Interface) - қ ұ.
Қ
Қ әү құғ , ғқ қ , ә ққғ , ғ ө. Қ ң. ң ү .
MicroHub TP1008C
қ ү ұ қ . ң қ ө, қ ң қ ө-. ң ә ү, ө қ қ қ ө.
Ү
ө
ө ң ә ө ө ұ , ү ә қ ө .
ө
қ ө ұқ, қ ұң ұ ө ғ, ө ө ғ . ө қ .
ө ғ қғ ң ә ө ө ө. қ , ә әң ң ңғ ң , ... ү ғ ң ұ ү.
ң ң ә
ә ұ ққ -ң (ISO - International Standards Organization) қ ұ ү, ә OSI (қ үң ә Model of Open System Interconnections) ғ қ. ISO/OSI әә 7 ғ ө қ. ң ғғ қ ң, ң ө қ ң .
IP-
қғ ә -ң ө қ қ . (IP-). ү ө 4 қ ұ, ң әқ - 0 255 ң ғ . ғ қ қ. :
194.84.93.29 128.29.15.124
ү 2564 4,3 қ . ә қ қ 32- (4 ) .
қ ңғ (ғ қ қ), қ ұ қ () ә. қ ғ ө ұ.
қ :
:// . [// / ]
OSI қ . ғқ қ құ қ ә үң ә ү қ ү ң ққ Ұ (International Standart Organisation ISO) қ ү ә қ (Open System Interconnection -OSI) құ. ұ ұң ң қ ү, ң:
1) қ ң;
2) ң;
3) ң;
4) ң;
5) қ ң;
6) ұ ң;
7) қ ң.
Ә ң ғғ қғ ө қ () қ, ә ң . әң ә ңң ө ғ ә , ғ ә
Қ 14-15. Ң
ҚҚҚ Қ
қ: ң қққ қ
ʳ ө: ү, , , қ, , , қ, , ү, ,
ә (2 ғ)
- ғң ө ң ә ғ ң .
- XDRү, , ңқ .
- Ү қ құ ү DCOM ә COBRA қ. IDL .
- SMB , ң ғ, Samba ә қ ә қ .
- ұ қ қ . ұ қ қ .
- ә қ қ құ.
қ құ
қ ү ғ қ ү үң қ құ қ . қ ү құ . ө ұ ғ қ құ қ. Ү қ ң қ ғ ғң ү қ. қ ұ қ ө.
қ
Pentium ң қғғ үң қ JMP ә CALL қ ү .
ғ ү қ. ұ ә ң ұқ ғ JMP ә CALL ғ ұқ ұ. ұ қ ү ұ.
ұ қ 1- ө. ә қ қ ң ө.
=0 ғғ қ ғ . қ ұқ , қ ң ққ ң қ ққ ң ә ғ қғ ұқ .
1. Үң қ.
iii ғ қ ғ құққ ң қ ғ қғ құ . -ң қғң үi i қ қ, өi үi қ i қ ғ үiii . ғ қ өi үi , ұ әiң ii үi қ әi - қ қ ғ ә ө қ .
ii ғ ii: ңғ ққ ө қ қ . ұ қғ ғ. ққң ңi i ғ қң қ қғғ ғ қ үi ұ ә ғ қң қ . ә , ұ Pentium ң қғ үiiң құ қ қғң өiii - құққ , ққң ңi, ә ұ қғ ii ғ , қң қ әii үi қғ , әi үi ғ .
ғ қ. , қ қ ғ ii үi қ өi i-ғ ғ ұқ үi -iң ң қii қ әi қ . i әiiң үiiiiң i үi, ә ң ii -ң ң (=1) ғ i . Қ ғ (DPL CPL) ққң ңi ң ғң CALL JMPiң ғ ң ө- қ қғ .
қ қ. қң ә қғ ғ үi қ i үi қ қ. iii әi ғ ққ ғ ңi қ үiң ң ққң үii ңi қ ғ қғ ii үii i. ii әi өi -ң қғ, қ ғ , ққң қ ңi ә үi қ өii үi үi әi ұ . Pentium қ ii қ ғ i әii қ - қ ғ ққң ө i ңi ұ ii құққ қғ үii i (ұ) қ. қң ғ i ққғ - қ i үiiң қң үiii өii қ. , ғ ң CALL ұ әiң ң үiii ғ қғ қ ғ i үiiң ә қғ, ғ қ ғ ii ң ә қ. қң ii i.
i үiiң құққ қ i қ, ә ұ i үi өi i - қң ң .
қ 2- қ өi.
2. қ қ.
ғ ә қ ң ғ i ә ққң ә үi ң ң қ . i үi ққң әi ң, әүi ң, i-i iiң i. , қ қ CPL әi ң iң ққң ғғ ңi ә ә i.
қ.
iң ғ қ i қ қң i ғ . CALL ң ғ TSS үi i ғ өi . , TSS үi қ қ ii үi әii iң i қ. iң i қ ғ ң iiң әi, ұқғ қ ә қ ү әi i қ .
Ққғ (RPC) қ
Ққғ қң ұ
Ққғ қ (Remote Procedure Call - RPC) , қ ә қ қ ә ү ң ң ұ. Ққғ құ ө ө ң ғ. RPC қң ққғ ө қ . ұ қ RPC - ғғ .
ң қң ii:
- қ, ғ ө ң ii .
- қ, ғ ұ қ қғ ң қғ қ ң .
Ққғ қ қ ғ қғ әқ ққ. қ ә қ әү қ, ң ұ ә ұ, ә ә ә ққ . RPC ө , ұ RPC ұқ ұ ә ғ ө . RPC-ң қ ғ ө ү ү қ, қ ұ қ , ң ө қ ө . ққ қ . ғ қ ә қ ңғ . қ RPC- қ- - ә . ң қғ ғ ғ ү: қ ң қ ғ ққғ қғ қ, ққғ ң қ қ қ - қ қ.
қ ғ ң қ - ғ қ құ ә қ құ қ қ қ .
ә қ ө қ ү ө RPC ң ө .
RPC-ң қ
RPC ұ ү ү, ң , ә ұ қ ққ. ұ ү қ
count=read (fd,buf,nbytes);
ұғ fd ү ,
buf ,
nbytes ү .
қ ү ү қ қғ. Read қ ғ қ ғ ң қ ә , қ ә қ ң қ қ. қ ү (by name), ә (by value) қ. қ ғ қғ -ә ғ ә . қ ө ә үұқң ә ә .
қ ғ ғ , ң әң ө қ ң әң ө . RPC үi ұ ғқ ii ғ. қ ң ғ қ . call-by-copy/restore ә ә ү қ ғ өң қ ұ.
ң қ қ құ . ұ . , , ү ә ә , .
RPC ққғ қң ғ ұқ ө. қ қ RPC- ө ө.
RPC ө . қ ққғ ғ (stub - ) ң қ ү . үұқ ғ ұқ қ ә ғ қ ү . қ үұқ ғ қғ ә ұ, ң ққғ құ.
RPC
ғ- қғ ң қ . ү ә ң ұ ұқ ғ ұ. қ ү ө ү өң ң , ә ғ . ұ ә ә ү ұ ұ ғ, қ ұ ә қ қғ ө. ә қ ә қ . , ү ң қ қ.
қ ғ қ қ, ң ә қ қ.(ң ), ң ұ ң . ң ә ққ , ғ ұқ өң ң ө ,ғғ қ ә . ң ғ ұ . Ƴ қ ә ұң қ,ғ қ қ үң ң. ғ ұң , қ .ң ғ ү қ құғғ ғ қ . қ қ ү . Өң үң ң ұғ ә қ қ ң қ. ң қ ү, өң . ү , ғ ө. Ә ң ,ә ә қ , receive қ .
ұ . ә ү қ . ғ ғ ң, ң қ . ғ ә . ү қ ө ң ә .
RPC ң 14 ңң ө қ.
1. ң қ
2.
3. қ
4. қ
5.ң қ
6. қ ү
7.ң
8. QBUS ң
9. Ethernet ә қ
10.
11.Үң өң .
12.қ қ
13. ң қң ң
14. ң
қ
ң қ ұқ қ. әң әң ғ ң ң қ. қң ң ө :ң ң ң ө,ң ө ә қ ғ қ ғ қ , ң қң . ә ү ғ ү қ қ.
қ ү қ ң қ () . -ң ,ң ө ә қ-ң құ ң .
ғ қ ә ү ң ң . қ ә ғ ү, , қ.
ң ң ғ- ү ғ қ , ә құ.
ә ғ . Ққ ғ әү қ,ң ә - . ғ .
ү ң өң , ғ binder' ғ ә . ұ - : ө , ө, ә қ қ ү