int fd = open(PATH, O_RDONLY);
if (fd < 0) exit("server not found");
// ΡΠΈΡΠ°Π΅ΠΌ Π΅Π³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
if (read(fd, &data, sizeof(result)) == -1)
exit("parameter block read");
cout << ", server = " << data.cps << endl;
// ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ·Π»Π°
int32_t node = netmgr_strtond(PATH, NULL);
if (node == -1 && fd > 0 && errno == ENOENT)
node = ND_LOCAL_NODE;
// ΠΏΠΎ Π°Π΄ΡΠ΅ΡΠ½ΡΠΌ Π΄Π°Π½Π½ΡΠΌ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΌ ΡΠ°Π½Π΅Π΅ ΠΏΠΎ read(), ΡΠΎΠ·Π΄Π°Π΅ΠΌ
// ΠΊΠ°Π½Π°Π» Π΄Π»Ρ ΠΏΡΡΠΌΠΎΠ³ΠΎ ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ
int coid = ConnectAttach(node, data.pid, data.chid, _NTO_SIDE_CHANNEL, 0);
if (coid < 0) exit("connect to message channel");
// Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ Π³ΠΎΡΠΎΠ²ΠΈΠΌ ΠΊΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ devctl():
unsigned int DCTL = (blk << 16) + DCMD_SRR;
cout << " . . . . . waiting ^C . . . . . " << flush;
// ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ΅Π°ΠΊΡΠΈΡ Π½Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ^C
signal(SIGINT, trap);
uint64_t num = 0;
uint8_t *bufin = new uint8_t[blk], *bufou = new uint8_t[blk];
uint64_t tim = ClockCycles();
// Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ Ρ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π°Π½Π½ΡΠ΅
if (lowlvl)
while (true) {
if (MsgSend(coid, bufou, blk, bufin, blk) == -1)
exit("exchange data with channel");
num++;
if (!conti) break;
}
else {
while (true) {
if (devctl(fd, DCTL, bufou, blk, NULL) != EOK)
exit("DEVCTL error");
num++;
if (!conti) break;
}
}
tim = ClockCycles() - tim;
cout << '\r' << (lowlvl ? "message exchange:" : "manager exchange:") <<
" number = " << num << "; stream = "
<< (double)num * blk / ((double)tim / (double)cps) / 1E6 * 8 <<
" Mbit/sec" << endl;
ConnectDetach(coid);
close(fd);
delete [] bufin;
delete [] bufou;
return EXIT_SUCCESS;
}
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΎΡΠ΅Π½ΠΊΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ»ΠΎΡΠ½ΠΎΡΡΠΈ ΠΏΠΎΡΠΎΠΊΠ° ΠΎΠ±ΠΌΠ΅Π½Π°, Π΄ΠΎΡΡΠΈΠΆΠΈΠΌΡΠ΅ Π² Π²ΡΠ±ΡΠ°Π½Π½ΡΡ (ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠ»ΡΡΠ΅ΠΉ) ΡΡΠ»ΠΎΠ²ΠΈΡΡ Π½Π° Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅:
# clr -b1
SRR repeater: vers. 1.03
server path: /dev/srr, block size = 1 bytes
CPU speed [c.p.s.]: client = 534639500, server = 534639500
message exchange: number = 906400; stream = 1.54088 Mbit/sec
# clr -b1 -d
SRR repeater: vers. 1.03
server path: /dev/srr, block size = 1
bytes CPU speed [c.p.s.]: client = 534639500, server = 534639500
manager exchange, number = 335725; stream = 0.617311 Mbit/sec
# clr -b10
SRR repeater: vers. 1.03
server path: /dev/srr, block size = 10 bytes
CPU speed [c.p.s.]: client = 534639500, server = 534639500
message exchange: number = 1119211; stream = 15.0758 Mbit/sec
# clr -bl0 -d
SRR repeater: vers. 1.03
server path: /dev/srr, block size = 10 bytes
CPU speed [c.p.s.]: client = 534639500, server = 534639500
manager exchange: number = 316948; stream = 6.1421 Mbit/sec
# clr -b100
SRR repeater: vers. 1.03
server path: /dev/srr, block size = 100 bytes
CPU speed [c.p.s.]: client = 534639500, server = 534639500
message exchange: number = 729460; stream = 122.617 Mbit/sec
# clr -b100 -d
SRR repeater: vers. 1.03
server path: /dev/srr, block size = 100 bytes
CPU speed [c.p.s.]: client = 534639500, server = 534639500
manager exchange: number = 318435, stream = 57.3215 Mbit/sec
# clr -b1000
SRR repeater: vers. 1.03
server path: /dev/srr, block size = 1000 bytes
CPU speed [Ρ.p.s.]: client = 534639500, server = 534639500
message exchange: number = 823535; stream = 1054.65 Mbit/sec
# clr -b1000 -d
SRR repeater: vers. 1.03
server path: /dev/srr, block size = 1000 bytes
CPU speed [c.p.s.]: client = 534639500, server = 534639500
manager exchange: number = 367712; stream = 493.455 Mbit/sec
# clr -b10000
SRR repeater: vers. 1 03
server path: /dev/srr, block size = 10000 bytes
CPU speed [c.p.s.]: client = 534639500, server = 534639500
message exchange number = 196479, stream = 2861.27 Mbit/sec
# clr -b10000 -d
SRR repeater: vers. 1.03
server path: /dev/srr, block size = 10000 bytes
CPU speed [c.p.s.]: client = 534639500, server = 534639500
manager exchange: number = 141593, stream = 2487.18 Mbit/sec
Π¦ΠΈΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅, Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈΡ Π΄Π΅ΡΠ°Π»ΡΠ½Π΅Π΅:
β’ ΠΡΠΈ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅ ΠΎΠ±ΠΌΠ΅Π½Π° ΠΎΡΠ΅Π½Ρ ΠΊΠΎΡΠΎΡΠΊΠΈΠΌΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ (1 Π±Π°ΠΉΡ) ΠΏΠ»ΠΎΡΠ½ΠΎΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° ΠΏΠ°Π΄Π°Π΅Ρ Π΄ΠΎ ΡΠΌΠ΅Ρ ΠΎΡΠ²ΠΎΡΠ½ΠΎ Π½ΠΈΠ·ΠΊΠΎΠΉ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ β 192 ΠΠ±Π°ΠΉΡ/ΡΠ΅ΠΊ Π΄Π»Ρ ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ 77 ΠΠ±Π°ΠΉΡ/ΡΠ΅ΠΊ Π΄Π»Ρ ΠΎΠ±ΠΌΠ΅Π½Π° Ρ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠΌ ΡΠ΅ΡΡΡΡΠ°.
β’ ΠΡΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ΅ Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½ΡΡ , ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Π·Π° ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΠΌΠ΅Π½, ΠΏΠΎΡΡΠ΄ΠΊΠ° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ ΡΠ°Π·Π½ΠΈΡΠ° ΡΠΊΠΎΡΠΎΡΡΠ΅ΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π΄Π»Ρ ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° ΡΠ΅ΡΡΡΡΠ° ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½ΠΈΠ²Π΅Π»ΠΈΡΡΠ΅ΡΡΡ.
β’ ΠΡΠΈ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ°Ρ Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½ΡΡ (ΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π΄Π΅ΡΡΡΠΊΠΎΠ² Π΄ΠΎ ΡΠΎΡ Π±Π°ΠΉΡ) ΠΎΠ±ΠΌΠ΅Π½ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΠ»ΠΎΡΠ½ΠΎΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° Π΄ΠΎ Π΄Π²ΡΡ ΡΠ°Π· Π²ΡΡΠ΅.
ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌ ΡΠΈΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ±ΠΌΠ΅Π½Π°, Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΠ΅ ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΠΏΡΡΠΌΠΎ ΠΏΡΠΎΠΏΠΎΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° (ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ 533 ΠΠΡ). ΠΠ° ΡΠΈΡ. 5.2 ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠ° Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ ΡΠ΅ΡΡΠΎΠ²ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΠ»ΡΡΠ°Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°. Π₯ΠΎΡΠΎΡΠΎ Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π² ΠΏΠ΅ΡΠΈΠΎΠ΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ clr Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΏΠΎΠ΄ΡΠΊΠ°ΠΊΠΈΠ²Π°Π΅Ρ Π΄ΠΎ 100% β ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠΉ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΈ ΡΠ΅ΡΠ²Π΅Ρ Π·Π°Π±ΠΈΡΠ°ΡΡ Π²Π΅ΡΡ ΡΠ΅ΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°.
Π ΠΈΡ. 5.2. ΠΠΈΠ½Π°ΠΌΠΈΠΊΠ° Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΏΡΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ
ΠΠ°Π»Π΅Π΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠΎΠΉ ΠΆΠ΅ ΠΏΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½ΠΎ ΡΠΆΠ΅ ΠΏΡΠΈ ΡΠ°Π·Π½Π΅ΡΠ΅Π½ΠΈΠΈ ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π΄Π΅Π»ΡΠ½ΡΠΌΠΈ ΡΠ·Π»Π°ΠΌΠΈ ΡΠ΅ΡΠΈ:
# clr -nrtp -b1
SRR repeater: vers. 1.03
server path: /net/rtp/dev/srr, block size = 1 bytes
CPU speed [c.p.s.]: client = 534639500, server = 451163200
message exchange: number = 5049, stream = 0.00670981 Mbit/sec
# clr -nrtp -b1 -d
SRR repeater: vers. 1.03
server path: /net/rtp/dev/srr, block size = 1 bytes
CPU speed [c.p.s.]: client = 534639500, server = 451163200
manager exchange: number = 4824; stream = 0.00598806 Mbit/sec
# clr -nrtp -b10
SRR repeater: vers. 1.03
server path: /net/rtp/dev/srr, block size = 10 bytes
CPU speed [c.p.s.]: client = 534639500, server = 451163200
message exchange number = 3885; stream = 0.0651842 Mbit/sec
# clr -nrtp -b10 -d
SRR repeater: vers. 1.03
server path: /net/rtp/dev/srr, block size = 10 bytes
CPU speed [c.p.s ]: client = 534639500, server = 451163200
manager exchange: number = 3102, stream = 0.0557978 Mbit/sec
# clr -nrtp -b100
SRR repeater: vers. 1.03
server path: /net/rtp/dev/srr, block size = 100 bytes
CPU speed [c.p.s.]: client = 534639500, server = 451163200
message exchange: number = 3347, stream = 0.507917 Mbit/sec
ΠΡΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ ΠΏΠΎ ΡΠ΅ΡΠΈ Π² ΡΠ΅Ρ ΠΆΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡΡ , ΡΡΠΎ ΠΈ Π½Π° ΡΠΈΡ. 5.2, ΠΊΠ»ΠΈΠ΅Π½Ρ ΡΠΆΠ΅ Π½Π΅ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ Π½Π° 50% (ΡΠΈΡ. 5.3). ΠΡΠ»ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΠΌΠ΅Π½ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² (2-3), ΡΠΎ ΠΏΡΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΠΏΠ»ΠΎΡΠ½ΠΎΡΡΡ ΠΏΠΎΡΠΎΠΊΠ° Π΅ΡΠ΅ Π²Π΄Π²ΠΎΠ΅.
Π ΠΈΡ. 5.3. ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΏΡΠΈ ΡΠ΅ΡΠ΅Π²ΠΎΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ
# clr -nrtp -b100 -d
SRR repeater: vers. 1.03
server path: /net/rtp/dev/srr, block size = 100 bytes
CPU speed [c.p.s.]: client = 534639500, server = 451163200
manager exchange: number = 2167; stream = 0.480264 Mbit/sec
# clr -nrtp -b1000
SRR repeater: vers. 1.03
server path: /net/rtp/dev/srr, block size = 1000 bytes
CPU speed [c.p.s.]: client = 534639500, server = 451163200
message exchange: number = 1400; stream = 2.0555 Mbit/sec
# clr -nrtp -b1000 -d
SRR repeater: vers. 1.03
server path: /net/rtp/dev/srr, block size = 1000 bytes
CPU speed [c.p.s.]: client = 534639500, server = 451163200
manager exchange: number = 1626; stream = 2.00553 Mbit/sec
# clr -nrtp -b10000
SRR repeater: vers. 1.03
server path: /net/rtp/dev/srr, block size = 10000 bytes
CPU speed [c.p.s.]: client = 534639500, server = 451163200
message exchange: number = 366; stream = 4.73793 Mbit/sec
# clr -nrtp -b10000 -d
SRR repeater: vers 1.03
server path: /net/rtp/dev/srr, block size = 10000 bytes
CPU speed [c.p.s.]: client = 534639500, server = 451163200
manager exchange: number = 440; stream = 4.39515 Mbit/sec
ΠΡΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΈ ΠΏΠΎ ΡΠ΅ΡΠΈ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΠΌΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° ΡΠ΅ΡΡΡΡΠΎΠ² Π½Π΅ ΡΠ°ΠΊ Π·Π°ΠΌΠ΅ΡΠ½Π°. ΠΡΠΎ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΠΎ: ΠΏΠ»ΠΎΡΠ½ΠΎΡΡΡ ΠΏΠΎΡΠΎΠΊΠ° ΠΎΠ±ΠΌΠ΅Π½Π° Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΡΡ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΠ°ΠΌΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΠ΅Π΄Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΡΠΈ Π±ΠΎΠ»ΡΡΠΈΡ Π±Π»ΠΎΠΊΠ°Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ (10 ΠΠ±Π°ΠΉΡ) ΡΠΊΠΎΡΠΎΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π° (4.395β4.738*2, ΡΡΠΈΡΡΠ²Π°Ρ ΡΡΠΎ ΡΠ΅ΡΡΠ°Π½ΡΠ»ΡΡΠΈΡ Π²Π΅Π΄Π΅ΡΡΡ Π² Π΄Π²ΡΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΡ ) ΡΠΈΠ»ΡΠ½ΠΎ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ°Π΅ΡΡΡ ΠΊ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΊΠ°Π½Π°Π»Π° (10 ΠΠ±ΠΈΡ/ΡΠ΅ΠΊ, ΠΊΠ°ΠΊ ΡΠΆΠ΅ ΠΎΡΠΌΠ΅ΡΠ°Π»ΠΎΡΡ Π²ΡΡΠ΅), ΡΡΠΎ ΠΏΠΎΠΏΡΡΠ½ΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΎ Π²Π΅ΡΡΠΌΠ° Π²ΡΡΠΎΠΊΠΎΠΉ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°ΠΌΠΈ ΡΠ΅ΡΠΈ QNET.
Π§ΡΠΎ ΠΆΠ΅ Π² ΠΈΡΠΎΠ³Π΅?
Π ΠΈΡΠΎΠ³Π΅, ΠΈΠΌΠ΅ΡΡΠΈΠ΅ ΠΌΠ΅ΡΡΠΎ ΡΠΏΠΎΡΡ ΠΏΡΠΈΠ²Π΅ΡΠΆΠ΅Π½ΡΠ΅Π² ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΊΠΎΠ² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠ² ΡΠ΅ΡΡΡΡΠΎΠ² ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ Π±Π΅ΡΡΠΌΡΡΠ»Π΅Π½Π½ΡΠΌΠΈ. Π ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡΠΈΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΠ»ΠΎΡΠ½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠΉ Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ (ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ Π΄Π»Ρ ΡΠ΅Π»Π΅ΡΠΎΠ½Π½ΡΡ ΠΊΠΎΠΌΠΌΡΡΠ°ΡΠΎΡΠΎΠ²), ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½Π΅Π΅. Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Π² ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Ρ ΡΠΏΠΈΠ·ΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ Π·Π°ΠΏΡΠΎΡΠΎΠ² (ΡΠ°Π΄ΠΈΠΎΠ»ΠΎΠΊΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ) ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° ΡΠ΅ΡΡΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΡΠ°Π½Π΅Ρ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ Π³ΠΈΠ±ΠΊΠΎΠΉ Π² ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ.