Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«UNIX: взаимодСйствиС процСссов». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 112

Автор Уильям БтивСнс

ΠŸΠ Π˜Π›ΠžΠ–Π•ΠΠ˜Π• А

Π˜Π·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ

А.1. Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π’ основной части ΠΊΠ½ΠΈΠ³ΠΈ ΠΌΡ‹ пСрСчислили ΡˆΠ΅ΡΡ‚ΡŒ срСдств ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сообщСний:

β–  Π½Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΊΠ°Π½Π°Π»Ρ‹ (pipes);

β–  ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΊΠ°Π½Π°Π»Ρ‹ (FIFO);

β–  ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ сообщСний Posix;

β–  ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ сообщСний System V;

β–  Π΄Π²Π΅Ρ€ΠΈ;

β–  SunRPC.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΡ‹ ΡƒΠΊΠ°Π·Π°Π»ΠΈ ΠΏΡΡ‚ΡŒ Ρ‚ΠΈΠΏΠΎΠ² срСдств синхронизации:

β–  Π²Π·Π°ΠΈΠΌΠ½Ρ‹Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ условныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅;

β–  Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ чтСния-записи;

β–  Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° записСй fcntl;

β–  сСмафоры Posix;

β–  сСмафоры System V.

Π’ этом ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΌΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Π½Π°Π±ΠΎΡ€ простых ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для измСрСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ этих Π²ΠΈΠ΄ΠΎΠ² IPC, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свой Π²Ρ‹Π±ΠΎΡ€ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· этих срСдств для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ.

ΠŸΡ€ΠΈ сравнСнии срСдств ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сообщСний нас ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‚ Π΄Π²Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°:

1. Полоса пропускания (bandwidth) β€” ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ ΠΊΠ°Π½Π°Π»Ρƒ IPC. Для измСрСния этого ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство Π΄Π°Π½Π½Ρ‹Ρ… (ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ Π±Π°ΠΉΡ‚ΠΎΠ²) ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ процСсса Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ. Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ измСряСтся для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, write ΠΈ read для ΠΊΠ°Π½Π°Π»ΠΎΠ²), ΠΈ ΠΌΡ‹ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ полоса пропускания Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ вмСстС с ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ количСства ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π·Π° ΠΎΠ΄Π½Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ….

2. Π—Π°Π΄Π΅Ρ€ΠΆΠΊΠ° (latency) опрСдСляСтся ΠΊΠ°ΠΊ врСмя, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ трСбуСтся Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΎΠΌΡƒ ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡƒΡ‚ΡŒ ΠΏΠΎ ΠΊΠ°Π½Π°Π»Ρƒ IPC ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ процСсса ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ. ΠœΡ‹ измСряСм врСмя Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ для сообщСния Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 1 Π±Π°ΠΉΡ‚.

Π’ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° полосы пропускания Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Π½Π°ΠΌ ΠΎ Ρ‚ΠΎΠΌ, сколько Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π°Ρ‡Π΅Π½ΠΎ Π½Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ ΠΊΠ°Π½Π°Π»Ρƒ IPC, Π½ΠΎ IPC Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… сообщСний. Π—Π°Π΄Π΅Ρ€ΠΆΠΊΠ° опрСдСляСт врСмя, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ этих сообщСний. Π’Π°ΠΆΠ½Ρ‹ΠΌΠΈ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΠ±Π΅ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΡ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ срСдств синхронизации, ΠΌΡ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΡƒΡŽ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счСтчика Π² раздСляСмой памяти. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ β€” элСмСнтарная опСрация, врСмя Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ Π² основном Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ срСдств синхронизации.

ΠŸΠ Π˜ΠœΠ•Π§ΠΠΠ˜Π•

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ этого прилоТСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для измСрСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ срСдств IPC, основаны Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ lmbench [15]. Π­Ρ‚ΠΎΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ содСрТит Π½Π°Π±ΠΎΡ€ тСстов, ΠΈΠ·ΠΌΠ΅Ρ€ΡΡŽΡ‰ΠΈΡ… мноТСство ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² систСмы (ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ контСкста ΠΈ Ρ‚. ΠΏ.), Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ срСдств IPC. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΠ°ΠΊΠ΅Ρ‚Π° доступСн ΠΏΠΎ адрСсу http://www.bitmover.com/lmbench.

Π’Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π² этом ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π΄Π°ΡŽΡ‚ Π½Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, описанныС Π² ΠΊΠ½ΠΈΠ³Π΅. Π—Π°ΠΎΠ΄Π½ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ просто ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΡ‚ΡŒ эти Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ свой Π²Ρ‹Π±ΠΎΡ€ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· срСдств IPC, нСлишнС Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ эти значСния Π² вашСй собствСнной систСмС. К соТалСнию, насколько Π»Π΅Π³ΠΊΠΎ ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΡ‚ΡŒ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹, Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΆΠ΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ аномальноС ΠΈΡ… ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² отсутствиС доступа ΠΊ исходному ΠΊΠΎΠ΄Ρƒ ядра ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ.

А.2. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹

Π‘Π²Π΅Π΄Π΅ΠΌ вмСстС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π² этом ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. Π”Π°Π½Π½Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π» ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ справочник ΠΏΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ ΠΊΠ½ΠΈΠ³ΠΈ.

Для провСдСния ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ использовались Π΄Π²Π΅ систСмы: SparcStation 4/110 ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Solaris 2.6 ΠΈ Digital Alpha (DEC 3000 model 300, Pelican) ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Digital Unix 4.0Π’. Π’ Ρ„Π°ΠΉΠ» /etc/system систСмы Solaris 2.6 Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строки:

set msgsys:msginfo_msgmax = 16384

set msgsys:msginfo_msgmnb = 32768

set msgsys:msginfo_msgseg = 4096

Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ сообщСния Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 16384 Π±Π°ΠΉΡ‚ Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ сообщСний System V (Ρ‚Π°Π±Π». А.2). Π’Π΅ ΠΆΠ΅ измСнСния ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚ΡΡ Π² Digital Unix 4.0B Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… строк с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ sysconfig:

ipc:

 msg-max = 16384

 msg-mnb = 32768

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ измСрСния полосы пропускания сообщСний

Π’ Ρ‚Π°Π±Π». А.2 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ Sparc ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Solaris 2.6, Π° Π½Π° рис. А.1 β€” Π³Ρ€Π°Ρ„ΠΈΠΊ этих Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ².

Как ΠΌΡ‹ ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π»ΠΈ, полоса пропускания увСличиваСтся с Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ сообщСния. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… рСализациях ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ сообщСний System V ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ сообщСния, установлСнноС Π² ядрС, достаточно ΠΌΠ°Π»ΠΎ (Ρ€Π°Π·Π΄Π΅Π» 3.8), ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ сообщСния Π² нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 16384 Π±Π°ΠΉΡ‚. 

УмСньшСниС полосы для сообщСний Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΎΠΊΠΎΠ»ΠΎ 4096 Π±Π°ΠΉΡ‚ Π² Solaris 2.6, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, связано с настройкой Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ ядра. Для сравнСния с [24] ΠΌΡ‹ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ для сокСта TCP ΠΈ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ сокСта Unix. Π­Ρ‚ΠΈ Π΄Π²Π΅ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ Π±Ρ‹Π»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π° lmbench для сообщСний Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 65536 Π±Π°ΠΉΡ‚. ΠŸΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΈ быстродСйствия сокСта TCP ΠΎΠ±Π° процСсса Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡŒ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡƒΠ·Π»Π΅.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ измСрСния Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ

Π’ Ρ‚Π°Π±Π». А.1 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ значСния Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π² Solaris 2.6 ΠΈ Digital Unix 4.0B.


Π’Π°Π±Π»ΠΈΡ†Π° А.1. Π—Π°Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ сообщСния Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 1 Π±Π°ΠΉΡ‚ (Π² микросСкундах) 

Канал ΠžΡ‡Π΅Ρ€Π΅Π΄ΡŒ сообщСний Posix ΠžΡ‡Π΅Ρ€Π΅Π΄ΡŒ сообщСний System V Π”Π²Π΅Ρ€ΠΈ Sun RPC TCP Sun RPC UDP Π‘ΠΎΠΊΠ΅Ρ‚ TCP Π‘ΠΎΠΊΠ΅Ρ‚ UDP Π”ΠΎΠΌΠ΅Π½Π½Ρ‹ΠΉ сокСт Solaris 2.6 324 584 260 121 1891 1677 798 755 465 DUnix 4.0B 574 995 625 1648 1373 848 639 289 

Рис. А.1. Полоса пропускания срСдств ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сообщСний Π² Solaris 2.6.


Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ A.4 ΠΌΡ‹ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ листинги ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… для получСния ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… Π²Π΅Π»ΠΈΡ‡ΠΈΠ½, Π° ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ Ρ‚Ρ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°ΠΊΠ΅Ρ‚Π° lmbench. ΠŸΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΈ скорости Ρ€Π°Π±ΠΎΡ‚Ρ‹ TCP ΠΈ UDP ΠΎΠ±Π° процСсса Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡƒΠ·Π»Π΅. 


Π’Π°Π±Π»ΠΈΡ†Π° А.2. Полоса пропускания для Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² сообщСний Π² Solaris 2.6 (ΠœΠ±Π°ΠΉΡ‚/с)

Π Π°Π·ΠΌΠ΅Ρ€ сообщСния Канал ΠžΡ‡Π΅Ρ€Π΅Π΄ΡŒ сообщСний Posix ΠžΡ‡Π΅Ρ€Π΅Π΄ΡŒ сообщСний System V Π”Π²Π΅Ρ€ΠΈ Sun RPC TCP Sun RPC UDP Π‘ΠΎΠΊΠ΅Ρ‚ TCP Π”ΠΎΠΌΠ΅Π½Π½Ρ‹ΠΉ сокСт 1024 6,3 3,7 4,9 6,3 0,5 0,5 2048 8,7 5,3 6,3 10,0 0,9 1,0 4096 9,8 8,4 6,6 12,6 1,6 2,8 8192 12,7 10,2 5,8 14,4 2,4 2,8 16384 13,1 11,6 6,1 16,8 3,2 3,4 32768 13,2 13,4 11,4 3,5 4,3 65536 13,7 14,4 12,2 3,7 13,2 11,3

Рис. А.2. Полоса пропускания для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… срСдств ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сообщСний (Digital Unix 4.0B)


Π’Π°Π±Π»ΠΈΡ†Π° А.Π—. Полоса пропускания для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² сообщСния Π² Digital Unix 4.0B (ΠœΠ±Π°ΠΉΡ‚/с)

Π Π°Π·ΠΌΠ΅Ρ€ сообщСния Канал ΠžΡ‡Π΅Ρ€Π΅Π΄ΡŒ сообщСний Posix ΠžΡ‡Π΅Ρ€Π΅Π΄ΡŒ сообщСний System V Sun RPC TCP Sun RPC UDP Π‘ΠΎΠΊΠ΅Ρ‚ TCP Π”ΠΎΠΌΠ΅Π½Π½Ρ‹ΠΉ сокСт 1024 9,9 1,8 12,7 0,6 0,6 2048 15,2 3,5 15,0 0,8 1,0 4096 17,1 5,9 21,1 1,3 1,8 8192 16,5 8,6 17,1 1,8 2,5 16384 17,3 11,7 17,3 2,3 32768 15,9 14,0 2,6 65536 14,2 9,4 2,8 4,6 18,0

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ синхронизации ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²