Upload
konstantin-madorsky
View
238
Download
0
Embed Size (px)
DESCRIPTION
Подготовка к ГОСам ВМК МГУ
Citation preview
1. . . A ( P2),
A.
. A P2. A , A. : [A]. : A = [A].
: 0 { (0, ,0) = 0 }; 1{ (1, ,1) = 1}; {(1, , ) = 0 11 }; {(1, , ) =
(1, , ) = (1, , )}; { => () ()} . A = {f1, f2, ...} P2 , : T0, T1, S, L, M.
. . A , N T0, T1, S, L, M
A N. [A] [N] = N P2 [A] P2. .
. 0, 1, , , . A 0 0, 1 1, , , . , [] [0, 1, , , ] = 2. : , .
a) . 0(1, . . . , ) 0 0() =0 (, , . . . , ). f0 , 0 (0) = f (0, 0, ..., 0) = 1. : 0 () = , 0 (x) 1. 1 (1, . . . , ) 1 1() =1 (, , . . . , ). f1 , 1 (1) = f (1, 1, ..., 1) = 0. : 1(x)= , 1 (x) 0. , . , , , . .
b) 0 1. . , fS ( a) , : [, ] [0, 1]. .
c) x y. . , ( ), , . , ,
: [ , 0, 1, ] [, ]. .
, [0, 1, , , ] [x, xy] = P2.
2. , , ; . . 1. V E V. : G = (V, E). 2. E , , . E , , . 3. (a, a) , (a, b) E , ( ). 4. ( ), , , . 5. , . 6. , , . 7. (deg v) ,
. . 25 1. ()
deg
=1
= 2, ,
. , , . , , , ( ). . .
1. . 2. G1 = (V1, E1) G = (V, E),
G = (V, E), G1 = (V1, E1) V1 = V.
1. G = (V, E) (a, b) G, G (a, b) . . , G (a, b) a b , a b . .
1. . . G , G . G , G - , . G1. 1 G1 . G1
, G1 , .
, E . .
2. , .
. G = (V, E). , , (, ) . G , v u. G C v u. C, (u, v), v. . 3. G = (V, E) p q . G p q . G , G p q . . H, u v, (u, v). u v H, 1. u, v H, . , 1. , q q. G G1 = (V, ) q , G
p q . G , G G1 (u, v). u, v
, G, 2, . , u, v (u, v) 1. G p q . .
1. , , , .
2. 1) , , , . 2) D1, D2, ..., Dm v1, v2, ..., vm, Di =
(Vi, Ei), Vi Vj = (i j). D = (V, E),
:
= 1 2 {}( , ), = 1 2 {(, 1), (, 2), . . . , (, )}
v, . 3) , 1) 2). 3. , 1) 2) Di .
. 3. q
4q
. . ,
. : 1) . : 2) , . 3) . 2 : , . , , , , , . 0 1 2q, . , , . , q , 0 1 2q,
22q
= 4q
. . , , : . . . q
q 4q
.
. , . , . q q , , , q . . .
1. , . 2. , , ( , ). . G = (V, E) p , q r : p q + r = 2.
. p q. G , q p 1. a) : q=p1. G q=p1, 3 2 G , , G . r = 1. p q + r = = p (p 1) + 1 = 2.
b) q: p 1 q < q0 . , q = q0
. G p q0
r . q0 > p 1, G .
, G . e . . e G. , G1 .
G1 p q0 1 r 1 . q0
1 < q0, , , G1 ,
p (q0 1) + (r 1) = 2, p q0 + r = 2. .
3. 1- . . . , , ( ).
()(1, . . . , ) () , 1, , , .
=< , , , >
, ,
n- f
: |=
I . | = (1, , )[1, , ], .. I 1, ,
1) (1, , ) = (1, , ), (1[1, , ], , [1, , ]) =
2) & 3) 4) , . 5)
, , . , . , , . , . , . : .
1) : ,
2) () Q1x1Q2x2 ...Qnxn (D1&D2&...&DN)
3) () xi1xi2 ...xik (D1&D2&...&DN)
4) S = {D1, D2, ...,DN} 5) ,
. :
:1 = 1
, 2 = 2
0 = 1 2
4. . ; . . = Const,Func,Pred , . ::= ::= | , ::= ; ::= ; ::= | ::= | ::= | ?
A0 A1,A2,...,An;
A1,A2,...,An,
A0.
A0 ,
A1,A2,...,An.
A0;
A0
. A0 .
?C1,C2,...,Cm
C1, C2, . . . , Cm? C1,C2,...,Cm.
,
D G ,
P ( ),
(), . . , . . , . . , . , G = ? C1,...,Ci,...,Cm ,
Ci ,
D = A
0 A
1,A
2,...,A
n ,
VarG VarD = ,
(Ci , A0) Ci
A0. G =
?(C1,...,Ci1,A1,A
2,...,A
n,Ci+1,...,Cm) SLD-
D G Ci
. G0 = ? C1,C2,...,Cm , P={D1,D2,...,DN}
. () SLD- , G0 P ( ) (Dj1,1,G1),(Dj2,2,G2),...,(Djn,n,Gn),...,
i, i 1,
> Dji P, i Subst, Gi ();
> Gi SLD- Dji
Gi1 i.
SLD- comp = (Dj1,1,G1),(Dj2,2,G2),...,(Djk ,n,Gn)
(SLD- ), Gn = ;
, comp ; , comp , Gn SLD-.
() SLD- TG0,P
G0 P
, G0 P
() G0 P
, () i- , (i 1)- ; , . , , . , , .
5. . . , ACID (Atomicy, Consistency, Isolation Durability). , .
(Atomicy). , , , , .
(Consistency). , , , .. , . , .
(Isolation). , ( ) .
(Durability). , , , . :
T1 , T2 . T1 , . .
T1 , T2 , T1 . T2 , . , .
T1 , T2 . T1 . .
, , , . S = {T1, T2, , Tn}. () S , (T i1, Ti2, , Tin). . , . , , .
, . . , . , , . T1 T2 :
W/W T2 , T1 ( );
R/W T2 , T1 ( );
W/R T2 , T1 ( ). .
6. - , , . , , : -, (.. ), -, ( ), , , -, ( , ). . (), . , ( ) . , , , . , , . , , , - . , . , . , .. . , , (.. , ), . : ( ), . , ( ), , . , , (.. ). , , ,
( ) , . . , , , . , , , . - . : ( , ) ( ). , . , ( , ). , , , , , . , , ( , ; ). , , , , , , - . . (.. ) , , , . , , , . . -, , , . , . -, , , - . , -,
( , .. ) . , , , , , . , , , : . : . , . . , , , , , . , , (, ) . , , : ,
, , , . , : .. , , , .. , . . , , . , . : , , , .
7. . . , , . , , . , , , , . . , .. , , . , . , . , , ( , , ). , , , . , , , . , , , .. . , . , , , , , . . , , , . , . , deadlock, , - . , , . . .
: down(S) ( P(S)) up(S) ( V(S)). P V, , proberen verhogen . down(S) S, , 1. , , down . up(S) 1. , , down , down, .. . . up down (), .. . , 1. . , down up , . , . , , , . ( , ), (). , , , . :
;
, ( ) , ;
, , , . . , ( , ). . . . : send ( ) receive ( ). : , .
. / . . send: - , . receive: - , . , , , . , send receive, 4 . , , , , . , / (, , ), . ; , (FIFO, LIFO ..). (FIFO) , . , , : . .
. . , : . , , . : , . . , , , . , , , , , , - ( , ).
. , , , . : , , , . (TakeForks).
mutex, . ( ). ( Test). Test , i- , (.. ), ( EATING), (, ). TakeForks, ( mutex), . Test , , down , . Test , , down , . PutForks mutex, . ( THINKING), : - , i- , , . mutex.
, ( mutex) , , , , , Test (, , ). , , - Test, . , if-. , . Test, , if-. . . . , . . , , . , , . , -, - , ( , ) . : , . .. - , - . - ( mutex),
, , 1. , (.. ), db, , , . db , , , , . (, , mutex.) ( mutex), . , . , , , db, ( ). , . , , db. - , , (, ) . , db. , , , , , .. . , . . , . , N , , . , . , . - . . - customers, 1. , , , . , , barbers, , . . . , , . , ( , mutex). customers.
, . ( barbers). , , , , . (GetHaircut).
8. . . , , . ? , (, , ). . , . . , , ( ) , , , . . (A..). , , (A..= A..). , ( ) 0, . , , .. , . , 0 A1, , K, . A.. , K A... , (.. K). , A..= A..+. , . , , . . . . : , , 2k. (, ..). , (! .): k ,
. .
, , . , . ( , ..). , . , (.. ) . : , , .
. . . N . , N . i- i, . i >= 0, , i- . i < 0, ,
0
1
0 k-1 k
:
0 k-1 k
k-1 k A..
A..
, , . . -, , i- , . -, , , (), .. i- , . , . , , . ( ), ( ). , . , ( ). , : , ( ) , .. , . , , . , . , , , : . . . -, , () : , (.., .. , , ). : , ( , ). , . , . ,
. , , , , .. . . , , , : ? , .
9. - . . . , -. . , . , , . . , - . LR n . L nl , R nr .
nl = nr, L nl
(n+1)- . nr(= nl)
R. , n + nl + 1. nl > nr, L nl .
R nr < nl ,
n + nl . nl < nr, L
(, (n + 1)-) nr R. n + nr + 1 .
( ). , , , - , "" , . , , , , , ,
. , , , . .
1) , 1, , 0
2) l1 l2,
l1 l2 l1 + 1, l1 = l2
. 1) 2) ,
, , ( R), . , ,
, , ( R) .
1) 1, MOVE X, R
R , , X ,
2) 0,
Op X, R
R , , X ,
, Op , 3)
,
Op R+1, R
R , , Op, ,
4) ,
Op R, R+1 MOVE R+1, R
10. - . "". , , , , . . . , . , . . . . , . - () :
. 1) , , , , . . . ( ), . 2) , ( ) (, ). , , . - , , . , . 3) , . : .
() . , , . ( ), ( ) ( ) . . , , , . , . .
11. ( , , , ..) , , . , , . : , , , . (, , ), . (, ). () ( , , ).
. , , . LL(1)- ( ), LR(1)- (LR(0), SLR(1), LALR(1) ). , LR(1) . . , , .
, - . , , "- ", , , , , . () . , , . . , . , . . / . . ( )
-. , , , . . - -, . - . , . , . , , , . , . , ( ) . , , , . , , , , . , , . , , .
12. .
. T
:
1) ( ) T;
2) {e} T (e );
3) {a} T ;
4) P Q T,
a. b. {| , } c. = =0 5) T.
(). T T :
1) () , ();
2) {e} , {e};
3) {a} , {a};
4) p q , P Q ,
a. (p|q) ,
b. (pq) , PQ,
c. (p*) , P*; 5) T.
(). () M = (Q, T, D, q0, F),
1) Q ,
2) T ( ),
3) D ( ( {}) Q), ,
4) 0 ,
5) . ().
M = (Q, T, D, q0, F) . M
(), : 1. D(q,e) = (), 2. D(q, a) . : > , . ->
. , , . -> . r T. . M = (Q, T, D, q0, F), L(M) = L(r).
. . Q D . 1-6: (1) (r)#.
(2) , nullable, firstpos, lastpos followpos. (3) q0 = firstpos(root), root .
(4) q0 Q .
(5) : while ( Q R){ R
for ( , R , . a){ ( . 1, , , = ()1 ) if ( ){ if ( )
( S Q )
(, ) = }
}
}
(6) F Q, , #.
13. LR(1) LR(1) .
. G = (N, T, P, S) -. . , , . S => u , u .
. D ( ) w - G = (N, T, P, S), : (1) D S;
(2) , e; (3) ; (4) X , X1, ... , Xn , X -> X1 ... Xk
P; (5) , , w. , , , , , . ( , ) , . .
, , . (-) M = (Q, T, , D, q0,
Z0, F),
1) Q , ;
2) T ; 3) ; 4) D Q x (T {e}) x
Q x *, ;
5) ; 6) 0 , (
);
7) - (q, w, u),
(1) ; (2) ; w ; w = e, , ;
(3) ; u ; u = e, .
- M = (Q, T, , D, q0, Z0, F)
, :
(1) D(q, a, u) , {}, , (2) D(q, a, u), D(q, a, v) u v, x , u=vx v=ux,
(3) D(q, a, u), D(q, e, v), x , u = vx v = ux.
LR(1) L , -, R , , , 1 , . LR(1)- :
LR(1) ;
LR(1) ;
LR(1) ;
, LR(1), , ( LL(1)). , , , (LR(1)-), (Action) (Goto). LR(1)-, . . , S0X1S1X2S2 ...
XmSm (Sm ). Xi
( ), Si . ,
( ) . , LR-. Action[Sm; ai] Sm
{ } :
shift S (), S , reduce A -> ( A -> ), accept (), error ().
Goto[Sm; A] Sm
:
S, S , error ().
LR(1)- , , :
(S0X1S1X2S2 ... XmSm, aiai+1 ... an$)
. , , . . , , . :
1) Action[Sm, ai] = shift S, ,
(01122 , +1 $)
, ai S,
Action[Sm, ai]. ai+1.
2) Action[Sm, ai] = reduce A -> , ,
(01122 , +1 $)
S = Goto[Smr; A] r , .
2r (r r
), Smr.
A , S ,
Goto[Smr, A].
. LR(1) Xm
r+1 ... Xm, ,
, .
LR(1), , , , , , . , Goto , G, , G.
3) Action[Sm, ai] = accept, .
4) Action[Sm, ai] = error, ,
. LR(1) .
LR(1)- [A->(?)., a], A-> , a $. . , LR(1)- [A ., a]
+, , + = a
w, w = e a = $. LR(1)-. . - G = (N, T, P, S).
. C LR(1)- G. . G' items, closure goto. function closure(I){ /* I */
do{
for ( [A .B, a] I,
B G', b
FIRST(a),
, [B ., b] I)
[B ., b] I; }
while ( I );
return I; }
function goto(I,X){ /* I ;
X */
J={[A X.;a]|[A .X,a]\inI};
return closure(J);
}
procedure items(G'){ /* G'
*/
I' = closure({[S' .S, $]}); C = {I0};do{ for ( I
C, X
, goto(I, X)
C)
goto(I, X) C;
}
while ( C
);
. C = {I0, I1, ... , In} LR(1)-
G. . Action Goto, LR(1)- G. . i Action[i, a] Goto[i, X] Ii:
(Action) i :
o [ . , ] (a ) goto(Ii, a)= Ij , Action[i, a] =
shift j;
o [ ; . , ] , A->S', Action[i, a] = reduce A ; o [ . , $] , Action[i, $] = accept. i :
goto(Ii, A) = Ij , Goto[i, A] = j ( A ). Action Goto, 2 3,
error.
, [S' .S, $].
Action Goto, , LR(1)-. LR(1)-, LR(1)- .
LR(1), - , , , , ( /), , ( /).
14. . . . x A
x ( ).
CAT
(x), CAS
(x)
A. A
() = max=n
() , () = max
=n
()
( n TA(n) SA(n)
). .
CAT
(x)
- , , , 1. TA(n)
. CAS
(x) ,
, SA(n)
. . .
. f (n) g(n) ( f (n) = (g(n))) , c1, c2, N ,
c1|g(n)| | f(n)| c2|g(n)| n > N.
f (n) = (g(n)) , c,N , n>N |f(n)| c|g(n)|.
. f (n) = O(g(n)), , {nk} , (k) = f (nk), (k) = g(nk)
(k) = ((k)).
() = max
21
() () = () () = (log2 + 1 (log2 + 1)
. . g(x) .
(i) TA(n) g(n), TA
(m) g(2m
),
(ii) TA(n) g(n), TA
(m) g(2m1
).
. m n , 2m1
n < 2m
, ,
2m1 < 2m
() = ()
g(x): (i)
() = () () (2)
(ii) () = () () (2
1)
. . f(x) .
TA
(m)=O(f(m)), TA(n)=O(f(log2 n+1)); , f(x + 1) =
O(f (x)) TA(n) = O(f(log2 n)).
. . g(x) .
(i) TA(n) = O(g(n)), TA
(m) = O(g(2m
))
(ii) TA(n)=(g(n)), TA
(m)=(g(2m1
)); , (
2)= (g(x))
TA
(m) = (g(2m
)).
15. . . . s Xs
s ,
A x (. . CAT
(x) CAS
(x))
s Xs.
.
()()
()()
. A
Xs, s ,
.
:
() =
()()
(max
()) ()
= ()()
= ()
. f(m), , , P(m)
, f (m) P(m) m N+. (,
, , P(m) ;
: f (m) = O(md
) d N f (m) = mO(1).)
. , , . : n, n X,
. , X, . , T(n) . , f(n) ( X n)
, , X , f(n)T(n).
16. . . , ARP, DHCP. IP, TCP, ICMP. . OSI . : , , , , , . TCP/IP 3 :
. TCP/IP , . Internet , , TCP/IP, . Internet . , . , , ( ). , -, , , , , . .
:
( ).
( ), .
.
ISP -.
. . . . . IP , . , , . , . , , . . .
(_, , 0) (_, _, ). , , , . . . , , .
Address Resolution Protocol . Ethernet . 48 . 32- IP. 32- IP , , Ethernet . IP Ethernet , IP . . , ARP . Internet . , , proxy ARP. . , . , . DHCP (. Dynamic Host Configuration Protocol ) , IP- , TCP/IP. -. - DHCP, . , . . DHCP TCP/IP. DHCP IP-:
. ( Ethernet MAC-) IP-. , , ( DHCP), .
. IP- .
. , , , . . IP- , (, , ). ,
. DHCP DNS, , . DNS, RFC 2136. DHCP -, DHCP DHCP. UDP, 67 68.
IP Internet Protocol ( ) TCP/IP. IP , . . IP , (). OSI. IP , , , ( ), ( ) . OSI, , TCP, IP . IP , IPv4. IP IP- 4 (4 ). . , , ( A, B, C; , ).
;
;
, ;
: IPv4 32 IPv6 128 ;
;
IP ;
;
IP ;
.
TCP TCP- . IP- 16- , . , . TSAP TCP. , .
. . 256 , . , FTP- 21- , FTP-, TELNET 23- . RFC 1700. - , .. . TCP- . - . TCP- , . , , . , - , , TCP- - . TCP-, , . TCP-. , , . TCP- PUSH, , - , . , TPDU- URGENT, TCP- . , .
ICMP ICMP (Internet Control Message Protocol), RFC 792. , IP-, . , . . ICMP IP-. . destination unreachable , , , , , , , , . time exceeded , . , IP- . ( , IP-, , - .) IP- parameter problem. source quench . - -, . , . ,
, - . , , - . redirect IP- . echo request echo reply : echo request echo reply, , echo request. time-stamp request time-stamp reply . , , .
ICMP . ICMP IP . ping traceroute ICMP.
17. . Ethernet WiFi. , , . . , :
.
.
.
.
.
.
.
.
.
. IEEE 802.3. Ethernet(10Base5). 2.5 , , . , . , . , , , . 10 /, 500(10Base5). 10Base2. BNC-, - . 200 30 . , . . 10Base-. 10Base5 , 50. . , , . AUI. , , .
, , . 10Base2 , . 10Base-T . , 100. . IEEE 802.3 10Base-F, , . , , . 2.5 , .
. 802.11 (Direct Sequence Spread Spectrum DSSS). DSSS 1 2 /c. . . . , , . , , () . , . . wifi . , . - . , , , , . 90 150. , , . . , (SSID), . , , . -, . -, SSID, . , .
. wifi 3 : , . IEEE802.3, : 1500 , 2346 . . , , :
1) . N (, , - . .). , . , , , , . , , , .
2) . . . . , .
3) . , . , , , . .
4) . : a. . .
, . , , ;
b. . , , , , , , , .
5) . : a. .
, . , , , , ;
b. . , . , .. , , , . , , - . , , . ALOHA. ,
. , . ALOHA: , , . , , .. , - , . . , . , , . , , . , , . , , . , , . , . t. , N t. , , n t, :
[] =
!
[] =
!, =
N > 1 , , 0 < N < 1. , , , - , G. ,
, . ( 0) , , , , G N. G > N. (S) , , . 0 , = 0.
, , . 0
t, . , , , ( ALOHA. , ), , 0 + 2.
, 0
,
. 2G,
0 = 2
, = 0 = 2
.
G = 0,5 =1
2,
18% .
ALOHA. ALOHA, . . , . -, , . , , . =
.
ALOHA G = 1,
S = =1
, .. 37% , ,
ALOHA. G . k .
, , k , =(1 )1 : =
=1 =
(1 =1)1 , G , . . , , , CSMA (Carrier Sensitive Multiple Access).
CSMA-. , , , . , . CSM- 1- CSMA-, , , 1, , . . , , , . , , . . , . . , . ,
, . , ALOHA, , . CSMA- CSM-. , . , . , , , . , . , , CSMA- . . , . , q = 1 . , . , . , , .
CSM- . . . 0
, , , . , , , . , , . , CSMA/CD : , ( ). . , , , , . t . 1 t = 5 . 2t. , , , , 2t . ALOHA 2t . , . , , , .
18. , . (switch). (, ). . , , . FIFO, , , , , - . , , . : , . , . . (. Weighted fair queuing, WFQ) . . . (. Fair Queuing) (FQ). FIFO- . , R N , R/N . . N , 1, ..., , i- :
=1
FIFO , .
: . , .
Waited Fair Queuing (WFQ) , bit-by-bit finishing time.
: :
.
FIFO . , . , + ., , = , = 1 , ( ).
. , . , , . , , . , , , . , . , . , . . .
+ = , =
,
, /, /, . , , 2 . :
1) . 2)
.
2 , = (
+
+ ())
, .
, , WFQ, .
. .
, 2 . , , - , , . , , . ; , , . .
1. . . (, ) , XOFF . ,
. . XOFF, , , XON .
: 1) , .
, , , , .
2) , .
3) , .
4) , . . . : , , . , , , , , .
2. . . K NACK. ACK , NACK . , , , , . () , , . , . . , . .
. , D. Z, K NACK. . Z . :
1) ( ) - .
423, 23, . 2 .
2 23, / .
2) 2 , . = 01 = 10, = 00, = 11.
3. . XON XOFF .
19. : . , , BGP. . : AIMD . . . , .. , : . , , . , , .. . , .. , , , . ( ) : , , , , .
1) , , , . . , .
2) , : , , .
3) - , , ( , ..). , .
4) . , - , . , , , .
5) , , , , , .. , - . , .
, , . ( , ). . . , , . . , (hop). , , . : . . . . , , . ( ), ( T , ) , (, , ..).
. , . , J I K, J K . , J K , I K, I K. , , . : , , , .. , , , , , , , . , , . , , . , , .
IP-. , , IP-. , . DNS, . , , . , . , , , , . - , . , , , . , URL (Universal Resource Locator). URL :
, .. (http, gopher, WAIS, ftp, file, telnet .);
( - );
. , : , , , . . , . (gateway) , . Web- . (AS) IP- , , . BGP . BGP :
Inter-autonomous system routing , .
Intra-autonomous system routing , , BGP.
Pass-through autonomous system , , BGP. BGP . BGP TCP. BGP :
(Open).
(Keep Alive).
(Update).
(Notification). BGP. BGP :
MARKER
MARKER
MARKER
MARKER
LENGTH TYPE
LENGTH ( ), . TYPE :
TYPE
1 OPEN
2 UPDATE
3 NOTIFICATION
4 KEEPALIVE
, . , 1. OPEN , BGP TCP. UPDATE BGP. , .
, . . , , , . , . - . ( , ..), . , . ,
. . , . . : . , , , . , , , , .. , . , , . :
, .
, .
. . :
, - .
.
, time_out .
. , - , . , , , . , , , . . , , - , , ( Frame Relay). , : , , , , . , , - , , . , . , , .
, , . , , , :
timeout
vs.
: 1) ( )
. 2) , :
; ; .
3) . , , .
4) , , . Additive-increase/multiplicative-decrease (AIMD) . AIMD , . W , :
, : = +1
, : =
2
AIMD : 1) , AIMD,
. 2)
.
3) : =
. (RTT Round-trip time),
(R * RTT > W).
AIMD :
1) , AIMD. 2) . 3) .
:
=1
, =
3
8
2 , =
2
.
= 3
2
1
4) AIMD . 5) AIMD RTT.
20. . . ISO 9126 , . , , ; , ; , . , . , . , , , . , , .. , , . , , . . , . . , . , , , , , , . .
1) , . , , , , , , .
2) . (model checking), (), .
3) , , . , ,
, , .
4) . , , . , , . . . , , . , , , . , . , , , , . , . , , . , , A B, , , A, , , B . , . , , . , , , . , , . , . , , , . (conformance testing). , . , ( ) , . , , . ,
. (, , ). , . , . , . , , (smoke testing), , , , . , , , . , . , . , .
1) (unit testing) , . , , , . , , , , , , , . , .
2) (integration testing) . , , , , . , .
3) (system testing) , . ( ), . (Graphical User Interface, GUI) Web- (WebUI).
, (Application Programming Interface, API), , API . , , . , ( ) , . , , XP. (model checking) , ( ) . , . , . , . (safety properties) , . (liveness properties) , , . (deadlocks). , , , , .. , , , ( ) ( ). . - . , , - , , . , - . . , , , . ,
, , , , , . , , . , , , . , , .
21. , . . : , , . , . , , : . . , . , , , , . N 1000/N . . . , ? , , , , .. "" , , . , . , , , , . . , , . , 100 500 . ( ) , , 5+99=104 ( ). , . 1. - . . , , , .. A=B+C , . - CRAY , , CRAY EL,
CRAY J90, CRAY T90 ( 2000 TERA CRAY Silicon Graphics, Inc.). 2. - . : , , . : , , , .. "", "" . , , . , . Intel Paragon, IBM SP1, Parsytec, - IBM SP2 CRAY T3D/T3E, . , . 3. . . , , , . SMP- , , HP Exemplar Sun StarFire. 4. , , , . ( -) . , . , CRAY SV1, HP Exemplar, Sun StarFire, NEC SX-5, IBM SP2 . . . , , , . ? : . . . , . , . - .
, , . Send() , . , , . MPI , , , . , . . . , , 2% , 50- . . , , /, - . , 1000 . , , , . , . . . , , . . , , , . , . , , . . -, . . Cray T3E: , - 1- , - 2- , , . . - .
, 3.2. , , . , , . , . . . , .
, . , - , - . , . , . ? ! , - ... ... ... , - , , ,
. . , , 2 , 2 . , , , . 4 : (), (), (), (). . . , , . , , . . . . . , . , -. , - . . "" , , . . , - . ( ) . , . . , .
. , . : , , , . . . - . - . , . . . . , , , . , v. , , , , v. . , . , , . , , . . . , , , . , . . , . , , . .
4.1 , n . s < n, 1, 2, ..., s, i j, i
, 1 . , , s, , , , s . , 4.1, . k, , , , . , , k, k-1. 1 . , , 1. . . , , , . , . .
, . , , , , , . , . , , ? , , , , , . , , . .
, ? . , . . , " ". , . ? , , . , , , , . . . , , . , ? . "" . . , , (, , ), . . , , . ? , . . , . , . . , , 100 . . , , , . : "... MPI, ...". , . . , . , . , , . , , , , . ,
: " ?" . , , . , . . , , . , . , . . , . , , , . , , - , . .
23. MPI OpenMP. MPI. , . Message Passing Interface. MPI , MPI , . MPI 1.1. 19971998 MPI-2.0, . MPI . , , 1.1. MPI Fortran. . , MPI . 120 . MIMD, . SPMD-, . MPI . : , , . ., MPI, MPI_. , MPi_Send. , MPI . MPI mpi.h, MPI- #include . MPI- . , . MPI- . , MPI . . , . . , . , , MPI_COMM_WORLD. MPI-.
MPI- , . . , . , . : . , 0 1. . , . , . . MPI , MPI , . . . , , -, -, . . , , , , . , 0 32 767. MPistatus, . , . , , , . , MPI, , , . -, . , , , , . -, . Fortran , . , , , . , MPI (derived datatypes). , , MPI.
, .
MPI: . int MPI_Send(void* buf, int count, MPI_Datatype datatype, int dest, int msgtag,
MPI_Comm comm)
buf count datatype dest - msgtag comm msgtag, count datatype, dest. buf. count . datatype . . . : dest,
MPI. , MPI_Send , dest, , , , MPI_Send. int MPI_Recv(void* buf, int count, MPI_Datatype datatype, int source, int msgtag,
MPI_Comm comm, MPI_Status *status)
OUT buf count datatype source - msgtag comm OUT status msgtag source . count. count, , buf , . , MPI_Probe. , buf. - MPI_ANY_SOURCE , . MPI_ANY_TAG , . MPI_Recv, , .
int MPI_Get_count( MPI_Status *status, MPI_Datatype datatype, int *count) status datatype OUT count status ( MPI_Recv) ( MPI_Probe MPI_Iprobe) datatype. int MPI_Probe( int source, int msgtag, MPI_Comm comm, MPI_Status *status) source
- MPI_ANY_SOURCE msgtag MPI_ANY_TAG comm OUT status . , - . status. , , .
/ int MPI_Isend(void *buf, int count, MPI_Datatype datatype, int dest, int msgtag,
MPI_Comm comm, MPI_Request *request)
buf count datatype dest - msgtag comm OUT request , MPI_Send, , buf. , . (.. , buf ) request MPI_Wait MPI_Test. , MPI_Send MPI_Isend, MPI_Recv MPI_Irecv. int MPI_Irecv(void *buf, int count, MPI_Datatype datatype, int source, int msgtag,
MPI_Comm comm, MPI_Request *request)
OUT buf count datatype source - msgtag comm OUT request , MPI_Recv, buf. request MPI_Wait MPI_Test. int MPI_Wait( MPI_Request *request, MPI_Status *status) request OUT status
MPI_Isend MPI_Irecv,
request. , status. int MPI_Waitall( int count, MPI_Request *requests, MPI_Status *statuses) count requests OUT statuses , , , . , statuses . int MPI_Waitany( int count, MPI_Request *requests, int *index, MPI_Status *status)
count , requests OUT index OUT status , - , , . , . index requests, . int MPI_Waitsome( int incount, MPI_Request *requests, int *outcount, int *indexes,
MPI_Status *statuses)
incount requests . OUT outcount OUT indexes OUT statuses . , , , . outcount , outcount indexes requests . outcount statuses . int MPI_Test( MPI_Request *request, int *flag, MPI_Status *status) request OUT flag OUT status MPI_Isend MPI_Irecv, request. flag 1, , 0 . , status. int MPI_Testall( int count, MPI_Request *requests, int *flag, MPI_Status *statuses)
count , requests OUT flag OUT statuses . flag 1, , , ( statuses). 0, statuses .
int MPI_Testany(int count, MPI_Request *requests, int *index, int *flag, MPI_Status
*status) count requests OUT index OUT flag OUT status , flag 1, index requests, status . int MPI_Testsome( int incount, MPI_Request *requests, int *outcount, int *indexes,
MPI_Status *statuses)
incount requests OUT outcount OUT indexes OUT statuses , MPI_Waitsome, , . , outcount . int MPI_Iprobe( int source, int msgtag, MPI_Comm comm, int *flag, MPI_Status
*status) source - MPI_ANY_SOURCE msgtag MPI_ANY_TAG comm OUT flag OUT status . flag 1, ( MPI_Probe), 0, .
MPI: Send. int MPI_Send(void* buf, int count, MPI_Datatype datatype, int dest, int msgtag,
MPI_Comm comm)
buf count datatype dest - msgtag comm msgtag, count datatype, dest. buf. count . datatype . . . : dest, MPI. , MPI_Send , dest,
, , , MPI_Send. int MPI_Isend(void *buf, int count, MPI_Datatype datatype, int dest, int msgtag,
MPI_Comm comm, MPI_Request *request)
buf count datatype dest - msgtag , comm OUT request , MPI_Send, , buf. , . (.. , buf ) request MPI_Wait MPI_Test. , MPI_Send MPI_Isend, MPI_Recv MPI_Irecv. int MPI_Send_init( void *buf, int count, MPI_Datatype datatype, int dest, int msgtag,
MPI_Comm comm, MPI_Request *request)
buf count datatype dest - msgtag comm OUT request . , MPI_Isend, MPI_Startall. int MPI_Sendrecv( void *sbuf, int scount, MPI_Datatype stype, int dest, int stag, void
*rbuf, int rcount, MPI_Datatype rtype, int source, MPI_Datatype rtag, MPI_Comm
comm, MPI_Status *status)
sbuf scount stype dest - stag OUT rbuf rcount rtype source - rtag comm OUT status . . , MPI_Sendrecv, , MPI_Sendrecv ,
MPI_Send. . MPI: . . , , . , . , , , , , , ( ). int MPI_Bcast(void *buf, int count, MPI_Datatype datatype, int source, MPI_Comm
comm)
OUT buf count datatype source comm source , . buf source . count, datatype source . int MPI_Gather( void *sbuf, int scount, MPI_Datatype stype, void *rbuf, int rcount,
MPI_Datatype rtype, int dest, MPI_Comm comm)
sbuf scount stype OUT rbuf rcount rtype dest , comm OUT ierror rbuf dest. , dest, sbuf dest. rbuf, . rbuf , count, datatype dest . int MPI_Allreduce( void *sbuf, void *rbuf, int count, MPI_Datatype datatype, MPI_Op
op, MPI_Comm comm)
sbuf OUT rbuf count datatype op comm count op count rbuf. . count datatype . , op . int MPI_Reduce( void *sbuf, void *rbuf, int count, MPI_Datatype datatype, MPI_Op
op, int root, MPI_Comm comm)
sbuf OUT rbuf count datatype op root - comm , rbuf root. int MPI_Barrier( MPI_Comm comm) comm , , , comm .
MPI: , . int MPI_Comm_split( MPI_Comm comm, int color, int key, MPI_Comm *newcomm)
comm color key , OUT newcomm , comm, color ( ). . color MPI_UNDEFINED, newcomm MPI_COMM_NULL. int MPI_Comm_free( MPI_Comm comm) OUT comm , comm, MPI_COMM_NULL.