СПО_Praktikum_k_lab_rabotam
.pdf51
M& 8 ) CloseHandle 1! 0 ! / 0 "i ! hObject.
F! . 5.1a / ! / 9 B )
Create Process. K B B/! / ! 8 ! Calculator ( . 5.1b 5.1c). G , B Create Process B 1!- & 9 8 / ) ! /! ! 9 & ) ! Windows. .B-
Calculator 0# ) & & 8 02 # 1!/! / ! !1./ !8 02 8 )2, / ) & & # )
# !, 8 0# ) & 0 & 9 01 7& 8
VOID Sleep(
DWORD dwMilliseconds // ) " 1/ 6 ), & /!2
);
K ! 7& 8 ) ! ! ! 0 ! ! 1!/! 06
B& .
) # "0 / # 8 0 0 ! 9 6 -
"2 / 01 7& 8 CreateProcess 7 ! & dwCreationFlags 9 1 !# CREATE_NEW_CONSOLE.
5.3. 2 -2 .= ;2F2 -0
|
|
|
|
|
|||
|
|
|
|
|
|
N!1 !" ! 9 / ! 0. .!) 0# ) & & |
|
1 |
1 |
# N1 / N2 (N1 < N2) 0 / |
|
1 !# ! G !. !) ! ! 1! & ! - |
|||
|
|
||
|
|
&< !# 9 1/! 8 !. |
|
|
|
N!1 !" ! 9 / ! 0. .!) 0# ) 1- |
|
2 |
1 |
/ # N1 / N2 0 / 1 !- |
|
# ! G !. !) ! ! 1! & ! &< |
|||
|
|
||
|
|
!# 9 1/! 8 !. |
52
|
|
N!1 !" ! 9 / ! 0. .!) 0# ) 7!- |
||||||||||||||||||||
3 |
1 |
! # ! N 0 / 1 !# ! G- |
||||||||||||||||||||
!. !) ! ! 1! & ! &< !# |
||||||||||||||||||||||
|
|
|||||||||||||||||||||
|
|
9 1/! 8 !. |
|
|
|
|
|
|
|
|
||||||||||||
|
|
N!1 !" ! 9 / ! 0. .!) 0# ) 1 !#- |
||||||||||||||||||||
|
|
7 &: |
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
= |
1 + |
2 + |
|
|
|
|
|
|
|
||||||||
4 |
2 |
|
|
|
3 + + !" |
|
|
|
||||||||||||||
|
|
0 / 1 !# ! G !. !) - |
||||||||||||||||||||
|
|
! ! 1! & ! &< !# 9 1/! |
||||||||||||||||||||
|
|
8 !. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
N!1 !" ! 9 / ! 0. .!) 0# ) 1 !#- |
||||||||||||||||||||
|
|
7 &: |
|
|
|
|
|
|
|
1 |
|
|
||||||||||
5 |
2 |
= |
|
1 |
|
|
+ |
1 |
|
|
|
+ + |
|
|
|
|||||||
|
|
#$ 1 |
|
#$ 1 + #$ 2 |
|
#$ 1 + + #$ " |
||||||||||||||||
|
|
0 / 1 !# ! G !. !) - |
||||||||||||||||||||
|
|
! ! 1! & ! &< !# 9 1/! |
||||||||||||||||||||
|
|
8 !. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
N!1 !" ! 9 / ! 0. .!) 0# ) 1 !#- |
||||||||||||||||||||
|
|
& 0 " # )/! |
|
%& |
|
|
||||||||||||||||
6 |
2 |
# % = % |
& |
+ |
|
%& |
|
+ |
%& |
|
+ + |
+ |
||||||||||
|
|
|
1 + %& |
1 + %& ' |
1 + %& ( |
|||||||||||||||||
|
|
1!/! 6 # 9< 0 / 1 !# |
||||||||||||||||||||
|
|
! G !. !) ! ! 1! & ! &< !#- |
||||||||||||||||||||
|
|
9 1/! 8 !. |
|
|
|
|
|
|||||||||||||||
|
|
N!1 !" ! 9 / ! 0. .!) 0# ) 1 !#- |
||||||||||||||||||||
|
|
& 0 " # )/! |
|
%& |
|
|
||||||||||||||||
7 |
2 |
# % = % |
& |
+ |
|
%& |
|
+ |
%& |
|
+ + |
+ |
||||||||||
|
|
|
1 + %& |
1 + %& ' |
1 + %& ( |
|||||||||||||||||
|
|
1!/! 6 # 9< 0 / 1 !# |
||||||||||||||||||||
|
|
! G !. !) ! ! 1! & ! &< !#- |
||||||||||||||||||||
|
|
9 1/! 8 !. |
|
|
|
|
|
|||||||||||||||
53
N!1 !" ! 9 / ! 0. .!) 0# ) 1 !#-
& 0 " # )/!
8 2 |
# % = % − |
%& |
+ |
%) |
− |
6 |
+ + −1 |
(*+ %&( |
+ |
|
3! |
5! |
7! |
2 − 1 ! |
1!/! 6 # 9< 0 / 1 !# ! G !. !) ! ! 1! & ! &< !#-
9 1/! 8 !.
N!1 !" ! 9 / ! 0. .!) 0# ) 1 !#-
& 0 " # )/!
9 2 |
|
& |
|
' |
( |
( |
|
|
# % = 1 − % + % |
− % |
% .−∞; 0 |
||||||
|
|
|
+ + −1 % |
|
1!/! 6 # 9< 0 / 1 !# ! G !. !) ! ! 1! & ! &< !#-
9 1/! 8 !.
N!1 !" ! 9 / ! 0. .!) 0# ) 1 !#-
& 0 " # )/!
10 |
2 |
1 |
+ |
1 |
1 |
+ |
1 |
1 |
+ |
1 |
1 |
+ 4 % 1; ∞ |
|
|
# % = 2 13 |
3 |
∙ %' |
5 |
∙ %2 |
7 |
∙ %3 |
1!/! 6 # 9< 0 / 1 !# ! G !. !) ! ! 1! & ! &< !#-
9 1/! 8 !.
N!1 !" ! 9 / ! 0. .!) 0# ) 1 !#-
& 0 " # )/!
11 2 |
# % = |
1 |
6% − |
%' |
%2 |
%3 |
|
!25 |
2 ∙ 3 + |
2& ∙ 2! ∙ 5 − |
2' ∙ 3! ∙ 7 + 7 |
1!/! 6 # 9< 0 / 1 !# ! G !. !) ! ! 1! & ! &< !#-
9 1/! 8 !.
54
|
|
N!1 !" ! 9 / ! 0. .!) 0# ) 1 !#- |
||||||||||
|
|
& 0 " # )/! |
|
|||||||||
12 |
2 |
# % = % + |
%& |
+ |
%) |
+ |
%8 |
+ + |
%&( |
+ |
||
|
|
|
2! |
4! |
6! |
|
2 ! |
|
||||
|
|
1!/! 6 # 9< 0 / 1 !# |
||||||||||
|
|
! G !. !) ! ! 1! & ! &< !#- |
||||||||||
|
|
9 1/! 8 !. |
|
|||||||||
|
|
! 9 ! & 1 / ) ! & ! 9 # ! |
||||||||||
|
|
!/ ! 7 &: |
|
|
|
|
|
|
||||
|
|
1& = 1 |
|
|
|
|
|
|
|
|
|
|
13 |
2 |
2& = 1 + 3 |
|
|
|
|
|
|
|
|
|
|
|
|
3& = 1 + 3 + 5 |
|
|
|
|
|
|
|
|
||
|
|
4& = 1 + 3 + 5 + 7 |
|
|
|
|
|
|
||||
|
|
…& |
= 1 + 3 + 5 + 7 + + |
2" − 1 |
|
|||||||
|
|
" |
|
|||||||||
|
|
N!1 !" ! 9 / ! 0. .!) ! |
||||||||||
14 |
2 |
91 ! ) !/ ! &< ! 8&, 0# ) & & |
||||||||||
G, B!? 2 ! |
! 6 / ! !, 0- |
|||||||||||
|
|
/ 1& 9 ! ! G !. !) ! ! 1! & ! |
||||||||||
|
|
&< !# 9 1/! 8 !. |
||||||||||
|
|
N!1 !" ! 9 / ! 0. .!) # ! 1 7!6 ! |
||||||||||
15 |
2 |
/ ) & 9 0 ! 80, 1! 0 ! - |
||||||||||
|
|
06 7!6 2 & &. !) ! ! 1! & ! - |
||||||||||
|
|
&< !# 9 1/! 8 !. |
||||||||||
|
|
N!1 !" ! 9 / ! 0. .!) ! |
||||||||||
|
|
91 ! ) &, 2 ! )?&< 1 ! 8 #, |
||||||||||
|
|
0 / ! G ! 06 G ! G # ! |
||||||||||
16 |
3 |
9< (!, / «-1211» / B / 9 |
||||||||||
|
|
0 /& «& 0 )#! / / !/8! 9»). !) |
||||||||||
|
|
! ! 1! & ! &< !# 9 1/!- |
||||||||||
|
|
8 !. |
|
|
|
|
|
|
|
|
||
|
|
55 |
|
|
|
|
|
|
|
N!1 !" ! 9 / ! 0. .!) # ! 1 7!6 ! |
|
17 |
3 |
/ ) & 9 0 ! 80, 1! 0 ! - |
|
|
|
06 7!6 2 1 /. !) ! ! 1! & !- |
|
|
|
&< !# 9 1/! 8 !. |
|
|
|
N!1 !" ! 9 / ! 0. .!) # ! 1 7!6 ! |
|
|
|
/ 06 8 # 06 !, & )/ # ! |
|
18 |
4 |
1 ! ! < 91 ! <" ! - |
|
! ! 0 / 1& 9 ! 0 |
|||
|
|
||
|
|
06 7!6. !) ! ! 1! & ! &< |
|
|
|
!# 9 1/! 8 !. |
|
|
|
N!1 !" ! 9 / ! 0. .!) ! |
|
|
|
91 ! ) &, 2 ! )?&< # 1 ! |
|
|
|
! !<? 6 # 6, 0 / ! G ! 06 G- |
194 ! G # ! 9< (!, /
«−10.13» / B / 9 0 /& «& / ) 9 8 02 !/8! 9 02»). !) ! ! 1! & !-
&< !# 9 1/! 8 !.
N!1 !" ! 9 / ! 0. .!) # ! 1 7!6 ! / 06 !/ ! &< ! 8&, 0# ) & & 20 4 G, B!? 2 ! ! 6 " # 6 / ! - !, 0 / 1& 9 ! ! G !. !) ! !
1! & ! &< !# 9 1/! 8- !.
N!1 !" ! 9 / ! 0. .!) !
91 ! ) & 1 & 6 / 8 – «" &<
&», & , 0 / ! G ! 1 !#
214 ! 6 , / # / )- # 7 ! 0 / # ! G !.
!) ! ! 1! & ! &< !# 9
1/! 8 !.
N!1 !" ! 9 / ! 0. .!) !
91 ! ) " 11 ! 8 #. m ) )- 22 4 ) 9< / 6, ! G ! 0 / ) !1!-
9 , "? « ) ) ) 9<
/ 6» !. !) ! ! 1! &- ! &< !# 9 1/! 8 !.
56
) & 1! / ) 0# 6, 91&6 7&-
8 < Sleep.
5.4. % F =4- 2< .=
1.1/!6 D /2 /)? .
2.! !2 1/! D ), / /&! 9- 0 1!/!, 1/!6 B / ) D ) - 6 1!/!#. 0 / !, !/ & !
G B ).
3.G B D 1/!6 B ) D!<?&<
&< 1!/!#& – 1! & B ) ! 8- !.
5.5. F I2- ., .2
1.M & ! / /&! 9 1!/! ).
2.! !) # !) #! 9.
3.5 7!6 cpp h.
4.N 1& 9 ! 0 ! ) ! 0, / G ! 02 6.
5.6. . 5 = 4 =
1.! 6 8 9< 1/!< ) 8 0?
2.! !) 7& 8 ) &B / ) 1/! ) 8 !?
3.N! !B !1 !# 7& 8 WaitForSingleObject.
4.N! !B !1 !# 7& 8 CloseHandle.
5.! " !1, !8 !) ! ! / ) ) !- " 0 8 ! B/& 1! &? 0 8 !?
57
6.& )6. ;F2- / G 4 . , =H 4-I-0 F Windows.
6.1.! 5 2< .=
> 9< !" 0 ) ) ) 1 ! ! 0
7& 8 ) / ) A Windows.
6.2. .-, 2 ,2 .5
. 8 B / & ! 9 9 ! ! 9 02 & 6 -
) ! /!. K & !10 !< ) !
(threads). F "2 / 9, # /!B / # B-
/! 9 / , 06 !10 ! ) ! 0 (main threads). A/ # 0 B ) ! ! ! 9 !" ! 6 !" •5, / # 9 &? ) ! 9 ! & 8-
.
N! / 8 # - B ) 2 / B/& 8 !, ! B/& !, # )- ) ) 6 ! 9 6 1!/!# (multitasking). #- /, # # B / 9 06 8 - B "0 9 0 "0, # / ! B. A/ !-, 8 )/ !, 91 ! # &?-
0D! G77 9 ! 0. ,! /!-
) /! 91 ! !, B 0 ) 9 )
!1" ! ! ! 80, ! 7 !7, 7 2 ! / & ! ! /!.
A ! / ) 8 ) B/& !, -
8 / ! 9 2 / / 6 ! /0 / &- 6. / 8 !, # / # 02 -
58
B 6, # 0 91&< "? " ! ! 6 !- ), 7!6 0 !6 0 / & & 6 !. K 1 !#!, #
91&< / B "! 9 0 0.
. B "0 9 0 0 < 0 ) 9 ) ( . 6.1). , 9 B 2 / 9 1 ) ) -
) < 0 ) ! ". G , B !2 / 9- ) ) B /! ) (") B/! 9 #! ) /!- 0 /! 2 1 &<? "0 ) / & !. /!- 6 !" ! 6 !" "&/& 1!/ 6 ! 0 9 0 / ! -
) ).
|
|
" P Q |
|
|
Q R |
|
0 |
|
" R |
|
" , % - |
|
||
|
|
|
|
- D R % |
|
|
|
* 9
AB /!
S - P Q
P Q D R
T , P )
. 6.1. U % %
) 0 ) . 6.1 B !2 / 9 ) 9 /
8. .G & / ) ! 1!8 ! 6 1!/!# "& )
# /9 ( . 6.2) 1!" ! 02 . F!
. 6.2 !1! ! # /9 , 0 "&/& 0 ) 9 ) -
/ ! 9: A, B, E, D, C.
A ! 9 |
|
|
|
A ! 9 |
|
A ! 9 |
|
|
A ! 9 |
|
|
A ! 9 |
|||
! |
|
|
|
! B |
|
! C |
|
|
! D |
|
|
! E |
|||
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 ! |
|
|
|
0 ! |
|
0 ! |
|
|
0 ! |
|
|
0 ! |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
. 6.2. ,
59
) 1/! ) ! !/ ! 1! &?-
8 ! &B 7& 8 ) CreateThread.
static HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpsa, DWORD dwStackSize,
LPTHREAD_START_ROUTINE pfnThreadProc, void* pvParam,
DWORD dwCreationFlags, DWORD* pdwThreadId
);
|
|
2< -32 6.1 |
|
.! ! 0 7& 8 CreateThread |
|
|
|
|
" |
|
, |
lpsa |
|
!1! 9 ! & & &, / B!?&< ! "& 0 1!- |
|
|
? 0 |
dwStackSize |
|
F!#! 9 06 !1 ! "!6 !2 |
pfnThreadProc |
|
!1! 9 ! 7& 8 < ! |
pvParam |
|
& 7& 8 ! |
dwCreationFlags |
|
M ! 1/! ) ! |
pdwThreadId |
|
!1! 9 ! &<, 6 "&/ |
|
|
/ 7 ! ! |
. ! 0 ! 1&<? 6 , / ! -
6.1.
&- .- G 6.1. M!6 Thread1.cpp
#include "stdafx.h" #include <windows.h> #include <iostream> #include <locale> #include <cmath>
using namespace std;
const int g_MaxThreads = 10; const int g_BufSize = 255;
DWORD WINAPI MyThreadFunction(LPVOID lpParam );
60
// ! > #
struct MyData { int numb; int val1; int val2;
double rezult;
};
int _tmain()
{
setlocale(LC_CTYPE, "Russian_Russia.1251"); ::SetConsoleTitle(L"Threads1");
MyData *pDataArray[g_MaxThreads];
HANDLE hThreadArray[g_MaxThreads];
DWORD dwThreadIdArray[g_MaxThreads];
// % ! = ! …! • . for( int i=0; i<g_MaxThreads; i++ )
{
// ‚=! ! ! =? #. pDataArray[i] = new MyData;
if( pDataArray[i] == NULL )
{
//y > g g #=!
//> # g #=
return 0;
}
pDataArray[i]->numb = i; //
pDataArray[i]->val1 = 1000 + int((double)rand()/RAND_MAX*10000);
pDataArray[i]->val2 = 1000 + int((double)rand()/RAND_MAX*10000);
}
// >! # MAX_THREADS ? #. for( int i=0; i<g_MaxThreads; i++ )
{
// >! #. hThreadArray[i] = CreateThread(
NULL, |
// > P = |
0, |
// = > |
MyThreadFunction, |
// > # |
pDataArray[i], |
// |
// • # |
|
0, |
// • >! |
&dwThreadIdArray[i]); // # ># P = ! //
//# # ># P >. y > g
//g, # …! .
if (hThreadArray[i] == NULL)
