ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ систСми: Π’Ρ€ΠΈ лСсни части. Част 1: Π’ΡŠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ (ΠΏΡ€Π΅Π²ΠΎΠ΄)

Π’ΡŠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ систСми

Π—Π΄Ρ€Π°Π²Π΅ΠΉΡ‚Π΅, Π₯Π°Π±Ρ€! Искам Π΄Π° Π²ΠΈ прСдставя сСрия ΠΎΡ‚ статии-ΠΏΡ€Π΅Π²ΠΎΠ΄ΠΈ Π½Π° Π΅Π΄Π½Π° интСрСсна, спорСд ΠΌΠ΅Π½, Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π° β€” OSTEP. Π’ Ρ‚ΠΎΠ·ΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» сС Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°Ρ‚ дълбоко Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° Unix-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ систСми, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ β€” Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° с процСси, Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‡ΠΈΡ†ΠΈ, ΠΏΠ°ΠΌΠ΅Ρ‚ ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΡΡŠΡΡ‚Π°Π²ΡΡ‚ ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ‚Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π° систСма. ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŠΡ‚ Π½Π° всичкитС ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ‚ΡƒΠΊ Ρ‚ΡƒΠΊ. Моля, ΠΈΠΌΠ°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄, Ρ‡Π΅ ΠΏΡ€Π΅Π²ΠΎΠ΄ΡŠΡ‚ Π΅ Π½Π°ΠΏΡ€Π°Π²Π΅Π½ нСпрофСсионално (Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ свободно), Π½ΠΎ сС надявам, Ρ‡Π΅ общият смисъл Π΅ Π·Π°ΠΏΠ°Π·Π΅Π½.

Π›Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€Π½ΠΈΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΠΎ Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Ρ‚ΡƒΠΊ:
β€” ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»: pages.cs.wisc.edu/~remzi/OSTEP/Homework/homework.html
β€” ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»: github.com/remzi-arpacidusseau/ostep-code
β€” моя Π»ΠΈΡ‡Π½Π° адаптация: github.com/bykvaadm/OS/tree/master/ostep

И ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° посСщаватС ΠΊΠ°Π½Π°Π»Π° ΠΌΠΈ Π² Π’Π΅Π»Π΅Π³Ρ€Π°ΠΌ =)

Π Π°Π±ΠΎΡ‚Π° Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π°

Какво сС случва, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ някаква ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°? Π‘Ρ‚Π°Ρ€Ρ‚ΠΈΡ€Π°Π½Π°Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° изпълнява Π΅Π΄Π½ΠΎ просто Π½Π΅Ρ‰ΠΎ β€” тя изпълнява инструкции. Всяка сСкунда ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ ΠΈ Π΄ΠΎΡ€ΠΈ възмоТно ΠΌΠΈΠ»ΠΈΠ°Ρ€Π΄ΠΈ инструкции сС ΠΈΠ·Π²Π»ΠΈΡ‡Π°Ρ‚ ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Π°Ρ‚Π° ΠΏΠ°ΠΌΠ΅Ρ‚ ΠΎΡ‚ процСсора, ΠΊΠΎΠΉΡ‚ΠΎ ΠΎΡ‚ своя страна Π³ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π°Π·ΠΏΠΎΠ·Π½Π°Π²Π° към какъв Ρ‚ΠΈΠΏ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ Ρ‚Π΅Π·ΠΈ инструкции) ΠΈ Π³ΠΈ изпълнява. Π’ΠΎΠ²Π° ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅ Π½Π° Π΄Π²Π΅ числа, Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΏΠ°ΠΌΠ΅Ρ‚, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° условиС, ΠΏΡ€Π΅Ρ…ΠΎΠ΄ към функция ΠΈ Ρ‚Π°ΠΊΠ° Π½Π°Ρ‚Π°Ρ‚ΡŠΠΊ. Π‘Π»Π΅Π΄ ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π΅Π΄Π½Π° инструкция, ΠΏΡ€ΠΎΡ†Π΅ΡΠΎΡ€ΡŠΡ‚ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π° към изпълнСниС Π½Π° Π΄Ρ€ΡƒΠ³Π°. И Ρ‚Π°ΠΊΠ° инструкция слСд инструкция, Ρ‚Π΅ сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° Π½Π΅ Π·Π°Π²ΡŠΡ€ΡˆΠΈ.
Π’ΠΎΠ·ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΅ СстСствСно Ρ€Π°Π·Π³Π»Π΅Π΄Π°Π½ опростСно β€” Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈΡΡ‚ Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€ позволява Π½Π° процСсора Π΄Π° изпълнява инструкции извън Ρ€Π΅Π΄Π°, Π΄Π° изчислява възмоТни Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ, Π΄Π° изпълнява инструкции Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ хитрости.

МодСл на Ѐон Нойман

ΠžΠΏΠΈΡΠ°Π½Π°Ρ‚Π° ΠΎΡ‚ нас опростСна Ρ„ΠΎΡ€ΠΌΠ° Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π° Π½Π° ΠΌΠΎΠ΄Π΅Π»Π° Π½Π° Π€ΠΎΠ½ Нойман Π·Π° изчислСния. Π€ΠΎΠ½ Нойман Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ ΠΏΠΈΠΎΠ½Π΅Ρ€ΠΈΡ‚Π΅ Π½Π° ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€Π½ΠΈΡ‚Π΅ систСми, ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ Π°Π²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π½Π° тСорията Π½Π° ΠΈΠ³Ρ€ΠΈΡ‚Π΅. По Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° сС случват ΠΎΡ‰Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈ ΡΡŠΠ±ΠΈΡ‚ΠΈΡ, работят мноТСство Π΄Ρ€ΡƒΠ³ΠΈ процСси ΠΈ странична Π»ΠΎΠ³ΠΈΠΊΠ°, чиято основна Ρ†Π΅Π» Π΅ опростяванС Π½Π° стартиранСто, Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° ΠΈ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° систСмата.
Π‘ΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ софтуСр, ΠΊΠΎΠΉΡ‚ΠΎ отговаря Π·Π° лСсното стартиранС Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ (ΠΈΠ»ΠΈ Π΄ΠΎΡ€ΠΈ позволява стартиранСто Π½Π° няколко ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ), Ρ‚ΠΎΠΉ позволява Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ‚Π΅ Π΄Π° сподСлят ΡΡŠΡ‰Π°Ρ‚Π° ΠΏΠ°ΠΌΠ΅Ρ‚ ΠΈ Π΄Π° взаимодСйстват с Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ устройства. Вакъв Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ софтуСр (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ½ΠΎ осигуряванС) ΠΏΠΎ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΠΎ Π½Π°Ρ€ΠΈΡ‡Π°Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π° систСма ΠΈ Π² Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ задълТСния Π²Π»ΠΈΠ·Π° прослСдяванС Π½Π° Ρ‚ΠΎΠ²Π°, Π΄Π°Π»ΠΈ систСмата Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ ΠΈ Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ, Π° ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° осигуряванС Π½Π° лСсно ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Ρ‚Π°Π·ΠΈ систСма.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π° систСма

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма, ΡΡŠΠΊΡ€Π°Ρ‚Π΅Π½ΠΎ ОБ β€” комплСкс ΠΎΡ‚ Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈ Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° рСсурситС Π½Π° ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€Π° ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° взаимодСйствиСто Π½Π° потрСбитСля с ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€Π°..
ОБ постига своята СфСктивност ΠΏΡ€Π΅Π΄ΠΈΠΌΠ½ΠΎ Ρ‡Ρ€Π΅Π· Π½Π°ΠΉ-Π²Π°ΠΆΠ½Π°Ρ‚Π° Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° β€” Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ°Ρ‚Π° Π½Π° виртуализация.. ОБ взаимодСйства с физичСския рСсурс (процСсора, ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, диска ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ) ΠΈ Π³ΠΎ трансформира Π² ΠΏΠΎ-ΠΎΠ±Ρ‰Π°, с ΠΏΠΎ-Π³ΠΎΠ»Π΅ΠΌΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΠΏΠΎ-лСсна Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Ρ„ΠΎΡ€ΠΌΠ° Π½Π° самия сСбС си. Π—Π°Ρ‚ΠΎΠ²Π° Π·Π° ΠΎΠ±Ρ‰ΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅, ΠΌΠΎΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π³Ρ€ΡƒΠ±ΠΎ Π΄Π° сравним ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма с Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π°Ρ‚Π° машина.
Π—Π° Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Π΄Π° Π΄Π°Π²Π°Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма ΠΈ ΠΏΠΎ Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π°Ρ‚Π° машина (ΠΊΠ°Ρ‚ΠΎ: стартиранС Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°, Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚, Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Ρ„Π°ΠΉΠ» ΠΈ Ρ‚Π°ΠΊΠ° Π½Π°Ρ‚Π°Ρ‚ΡŠΠΊ), ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма прСдоставя някакъв интСрфСйс, Π½Π°Ρ€Π΅Ρ‡Π΅Π½ API (интСрфСйс Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ Π½Π° прилоТСния), към ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС правят повиквания (call). Π’ΠΈΠΏΠΈΡ‡Π½Π°Ρ‚Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π° систСма позволява ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° стотици систСмни повиквания.
Накрая, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ виртуализацията позволява Π½Π° мноТСство ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ Π΄Π° работят (ΠΏΠΎ Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½, сподСляйки CPU), ΠΈ Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Ρ‚ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ инструкции ΠΈ Π΄Π°Π½Π½ΠΈ (Ρ‚Π°ΠΊΠ° сподСляйки ΠΏΠ°ΠΌΠ΅Ρ‚), Π° ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Ρ‚ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ дисковСтС (Ρ‚Π°ΠΊΠ° сподСляйки устройства Π·Π° Π²Ρ…ΠΎΠ΄-ΠΈΠ·Ρ…ΠΎΠ΄), ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма Π΅ Π½Π°Ρ€ΠΈΡ‡Π°Π½Π° ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ Π½Π° рСсурситС. ВсСки процСсор, диск ΠΈ ΠΏΠ°ΠΌΠ΅Ρ‚ са рСсурси Π½Π° систСмата ΠΈ Ρ‚Π°ΠΊΠ° Π΅Π΄Π½Π° ΠΎΡ‚ Ρ€ΠΎΠ»ΠΈΡ‚Π΅ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма става ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ‚Π΅Π·ΠΈ рСсурси, ΠΏΡ€Π°Π²Π΅ΠΉΠΊΠΈ Π³ΠΎ Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ, чСстно ΠΈΠ»ΠΈ, ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΡ‚ΠΎ, Π² зависимост ΠΎΡ‚ Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π°, Π·Π° която Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π΅Π½Π° Ρ‚Π°Π·ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π° систСма.

Виртуализация Π½Π° CPU

НСка Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ слСдната ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°:
(https://www.youtube.com/watch?v=zDwT5fUcki4&feature=youtu.be)

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ систСми: Π’Ρ€ΠΈ лСсни части. Част 1: Π’ΡŠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ (ΠΏΡ€Π΅Π²ΠΎΠ΄)

Вя Π½Π΅ изпълнява особСни дСйствия, ΠΏΠΎ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΠΎ всичко, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈ β€” ΠΈΠ·Π²ΠΈΠΊΠ²Π° функцията spin(), Ρ‡ΠΈΠ΅Ρ‚ΠΎ Π·Π°Π΄Π°Π½ΠΈΠ΅ Π΅ Ρ†ΠΈΠΊΠ»ΠΈΡ‡Π½ΠΎ провСряванС Π½Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ ΠΈ Π²Ρ€ΡŠΡ‰Π°Π½Π΅ Π½Π°Π·Π°Π΄, слСд ΠΊΠ°Ρ‚ΠΎ Π΅ ΠΌΠΈΠ½Π°Π»Π° Π΅Π΄Π½Π° сСкунда. По Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½, тя Π±Π΅Π·ΠΊΡ€Π°ΠΉΠ½ΠΎ повтаря Π½ΠΈΠ·ΡŠΡ‚, ΠΊΠΎΠΉΡ‚ΠΎ потрСбитСлят Π΅ ΠΏΡ€Π΅Π΄Π°Π» ΠΊΠ°Ρ‚ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚.
Π”Π° стартирамС Ρ‚Π°Π·ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° ΠΈ Π΄Π° ΠΈ ΠΏΡ€Π΅Π΄Π°Π΄Π΅ΠΌ символ β€œΠβ€ ΠΊΠ°Ρ‚ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚. Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ Π½Π΅ Π΅ особСно интСрСсСн β€” систСмата просто изпълнява ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π°, която ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΎ ΠΈΠ·Π²Π΅ΠΆΠ΄Π° Π½Π° Π΅ΠΊΡ€Π°Π½Π° символ β€œΠβ€.
Π‘Π΅Π³Π° Π΄Π° ΠΎΠΏΠΈΡ‚Π°ΠΌΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΊΠΎΠ³Π°Ρ‚ΠΎ са стартирани мноТСство СкзСмпляри Π½Π° ΡΡŠΡ‰Π°Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°, Π½ΠΎ ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Ρ‰ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π±ΡƒΠΊΠ²ΠΈ, Π·Π° Π΄Π° бъдС ΠΏΠΎ-ясно. Π’ Ρ‚ΠΎΠ·ΠΈ случай Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ Ρ‰Π΅ бъдС ΠΌΠ°Π»ΠΊΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ ΠΈΠΌΠ°ΠΌΠ΅ Π΅Π΄ΠΈΠ½ процСсор, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° сС изпълнява Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. Как става Ρ‚ΠΎΠ²Π°? Π‘Ρ‚Π°Π²Π° Ρ‚Π°ΠΊΠ° Ρ‡Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма, Π½Π΅ Π±Π΅Π· ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π½Π° ΠΎΠ±ΠΎΡ€ΡƒΠ΄Π²Π°Π½Π΅Ρ‚ΠΎ, създава илюзия. Π˜Π»ΡŽΠ·ΠΈΡΡ‚Π°, Ρ‡Π΅ Π² систСмата ΠΈΠΌΠ° няколко Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ процСсора, ΠΏΡ€Π΅Π²Ρ€ΡŠΡ‰Π°ΠΉΠΊΠΈ Π΅Π΄ΠΈΠ½ физичСски процСсор Π² Ρ‚Π΅ΠΎΡ€Π΅Ρ‚ΠΈΡ‡Π½ΠΎ Π±Π΅Π·ΠΊΡ€Π°ΠΉΠ½ΠΎ количСство ΠΈ ΠΏΠΎ Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ позволява Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ‚Π΅ Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°Ρ‚, Ρ‡Π΅ сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. Π’Π°Π·ΠΈ илюзия сС Π½Π°Ρ€ΠΈΡ‡Π° Виртуализация Π½Π° CPU.
Подобна ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π° ΠΏΠΎΡ€Π°ΠΆΠ΄Π° ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡŠΠΏΡ€ΠΎΡΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π°ΠΊΠΎ няколко ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ искат Π΄Π° стартират Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, Ρ‚ΠΎ коя Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‰Π΅ бъдС стартирана? Π—Π° Ρ‚ΠΎΠ·ΠΈ Π²ΡŠΠΏΡ€ΠΎΡ отговарят β€œΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈΡ‚Π΅β€ Π½Π° ОБ. ΠŸΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈΡ‚Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ мСста Π² ОБ ΠΈ отговарят Π½Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π²ΡŠΠΏΡ€ΠΎΡΠΈ, Π° ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° са основнитС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ОБ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°. ΠžΡ‚Ρ‚ΡƒΠΊ ΠΈ ролята Π½Π° ОБ ΠΊΠ°Ρ‚ΠΎ рСсурсСн ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€.

Виртуализация Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°

Π‘Π΅Π³Π° Π½Π΅ΠΊΠ° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°. ЀизичСската ΠΌΠΎΠ΄Π΅Π» Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π² ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈΡ‚Π΅ систСми сС прСдставя ΠΊΠ°Ρ‚ΠΎ масив ΠΎΡ‚ Π±Π°ΠΉΡ‚ΠΎΠ²Π΅. Π—Π° Π΄Π° сС Ρ‡Π΅Ρ‚Π΅ ΠΎΡ‚ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС посочи адрСс Π½Π° ΠΊΠ»Π΅Ρ‚ΠΊΠ°, Π·Π° Π΄Π° сС ΠΏΠΎΠ»ΡƒΡ‡ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ нСя. Π—Π° Π΄Π° Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ, Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΡŠΡ‰ΠΎ Π΄Π° посочитС Π΄Π°Π½Π½ΠΈΡ‚Π΅ ΠΈ адрСса Π½Π° ΠΊΠ»Π΅Ρ‚ΠΊΠ°Ρ‚Π°, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ записани.
ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΡΡ‚Π° към ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° стават постоянно ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π°. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° цялата си структура ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ ΠΈ я ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°, изпълнявайки Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ инструкции. Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈΡ‚Π΅ ΠΌΠ΅ΠΆΠ΄ΡƒΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΡΡŠΡ‰ΠΎ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΡŠΡ‚ Π΄ΠΎ нСя става ΠΈ ΠΏΡ€ΠΈ всяко слСдващо Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅ Π·Π° инструкция.

ИзвикванС на malloc()

НСка Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ слСдната ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°, която задСля ΠΏΠ°ΠΌΠ΅Ρ‚, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ malloc() (https://youtu.be/jnlKRnoT1m0):

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ систСми: Π’Ρ€ΠΈ лСсни части. Част 1: Π’ΡŠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ (ΠΏΡ€Π΅Π²ΠΎΠ΄)

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° няколко Π½Π΅Ρ‰Π°. ΠŸΡŠΡ€Π²ΠΎ, задСля ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ количСство ΠΏΠ°ΠΌΠ΅Ρ‚ (Ρ€Π΅Π΄ 7), слСд Ρ‚ΠΎΠ²Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π° адрСса Π½Π° Π·Π°Π΄Π΅Π»Π΅Π½Π°Ρ‚Π° ΠΊΠ»Π΅Ρ‚ΠΊΠ° (Ρ€Π΅Π΄ 9), записва Π½ΡƒΠ»Π° Π² ΠΏΡŠΡ€Π²ΠΈΡ слот Π½Π° Π·Π°Π΄Π΅Π»Π΅Π½Π°Ρ‚Π° ΠΏΠ°ΠΌΠ΅Ρ‚. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° Π²Ρ…ΠΎΠ΄ΠΈ Π² Ρ†ΠΈΠΊΡŠΠ», Π² ΠΊΠΎΠΉΡ‚ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π° стойността, записана Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° ΠΏΠΎ адрСса Π² ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° β€œp”. Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΈΠ·Π²Π΅ΠΆΠ΄Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π½Π° процСса, Π² ΠΊΠΎΠΉΡ‚ΠΎ сС Π½Π°ΠΌΠΈΡ€Π°. Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΡŠΡ‚ Π½Π° процСса Π΅ ΡƒΠ½ΠΈΠΊΠ°Π»Π΅Π½ Π·Π° всСки стартиран процСс. Ако стартирамС няколко копия, Ρ‰Π΅ ΠΏΠΎΠΏΠ°Π΄Π½Π΅ΠΌ Π½Π° интСрСсСн Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚: Π’ ΠΏΡŠΡ€Π²ΠΈΡ случай, Π°ΠΊΠΎ Π½Π΅ Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ Π½ΠΈΡ‰ΠΎ ΠΈ просто стартирамС няколко копия, адрСситС Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ. Но Ρ‚ΠΎΠ²Π° Π½Π΅ Π΅ Π² ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ с Π½Π°ΡˆΠ°Ρ‚Π° тСория! ΠŸΡ€Π°Π²ΠΈΠ»Π½ΠΎ, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π² ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈΡ‚Π΅ дистрибуции ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° функция Π·Π° рандомизация Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°. Ако я ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΠΌ, Ρ‰Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ очаквания Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ β€” адрСситС Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Ρ‰Π΅ ΡΡŠΠ²ΠΏΠ°Π΄Π°Ρ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Π²Π΅ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ систСми: Π’Ρ€ΠΈ лСсни части. Част 1: Π’ΡŠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ (ΠΏΡ€Π΅Π²ΠΎΠ΄)

Π’ ΠΊΡ€Π°ΠΉΠ½Π° смСтка ΠΈΠ·Π»ΠΈΠ·Π°, Ρ‡Π΅ Π΄Π²Π΅ нСзависими ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ работят със собствСнитС си частни адрСсни пространства, ΠΊΠΎΠΈΡ‚ΠΎ ΠΎΡ‚ своя страна сС отразяват ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма Π² физичСската ΠΏΠ°ΠΌΠ΅Ρ‚. Π—Π°Ρ‚ΠΎΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° адрСси Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° Π΅Π΄Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° няма Π΄Π° влияС Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅ ΠΈ всяка ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° смята, Ρ‡Π΅ Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π° със собствСна усилия физичСска ΠΏΠ°ΠΌΠ΅Ρ‚, напълно прСдоставСна ѝ Π½Π° Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. РСалността ΠΎΠ±Π°Ρ‡Π΅ Π΅, Ρ‡Π΅ физичСската ΠΏΠ°ΠΌΠ΅Ρ‚ Π΅ сподСлСн рСсурс, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма.

ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎΡΡ‚

ΠžΡ‰Π΅ Π΅Π΄Π½Π° Π²Π°ΠΆΠ½Π° Ρ‚Π΅ΠΌΠ° Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ систСми β€” послСдоватСлност. Π’ΠΎΠ·ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ става Π΄ΡƒΠΌΠ° Π·Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Π² систСмата, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π²ΡŠΠ·Π½ΠΈΠΊΠ½Π°Ρ‚ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅Ρ‰Π° Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° Π΅Π΄Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ с послСдоватСлността Π²ΡŠΠ·Π½ΠΈΠΊΠ²Π°Ρ‚ Π΄ΠΎΡ€ΠΈ Π² самата ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π° систСма. Π’ ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ с виртуализация Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° ΠΈ процСсора Ρ€Π°Π·Π±Ρ€Π°Ρ…ΠΌΠ΅, Ρ‡Π΅ ОБ управлява ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅Ρ‰Π° Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ β€” стартира ΠΏΡŠΡ€Π²ΠΈΡ процСс, слСд Ρ‚ΠΎΠ²Π° втория ΠΈ Ρ‚Π°ΠΊΠ° Π½Π°Ρ‚Π°Ρ‚ΡŠΠΊ. Оказа сС, Ρ‡Π΅ Ρ‚Π°ΠΊΠΎΠ²Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ някои ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ. НапримСр ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈΡ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ ΠΈΠ·ΠΏΠΈΡ‚Π²Π°Ρ‚ Ρ‚Π°ΠΊΠΈΠ²Π° трудности.

НСка Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ слСдната ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°:

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ систСми: Π’Ρ€ΠΈ лСсни части. Част 1: Π’ΡŠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ (ΠΏΡ€Π΅Π²ΠΎΠ΄)

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° Π² Π³Π»Π°Π²Π½Π°Ρ‚Π° функция създава Π΄Π²Π° ΠΏΠΎΡ‚ΠΎΠΊΠ°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Pthread_create(). Π’ Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° мислим ΠΊΠ°Ρ‚ΠΎ Π·Π° функция, стартирана Π² Π΅Π΄Π½ΠΎ пространство Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π΄ΠΎ Π΄Ρ€ΡƒΠ³ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠ°Ρ‚ΠΎ броят Π½Π° стартиранитС Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΅ ясСн ΠΏΠΎ-голям ΠΎΡ‚ Π΅Π΄Π½Π°. Π’ Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ всСки ΠΏΠΎΡ‚ΠΎΠΊ стартира ΠΈ изпълнява функцията worker(), която просто ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π°,.

. Π©Π΅ стартирамС Ρ‚Π°Π·ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ 1000. ΠšΠ°ΠΊΡ‚ΠΎ Π²Π΅Ρ‡Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° сС досСтитС, Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ трябва Π΄Π° бъдС 2000, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ всСки ΠΏΠΎΡ‚ΠΎΠΊ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° 1000 ΠΏΡŠΡ‚ΠΈ. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, всичко Π½Π΅ Π΅ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° просто. НСка ΠΎΠΏΠΈΡ‚Π°ΠΌΠ΅ Π΄Π° стартирамС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° с число Π½Π° повтаряния, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ ΠΏΠΎΡ€ΡΠ΄ΡŠΠΊ ΠΏΠΎ-високо.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ систСми: Π’Ρ€ΠΈ лСсни части. Част 1: Π’ΡŠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ (ΠΏΡ€Π΅Π²ΠΎΠ΄)

Подайки Π½Π° Π²Ρ…ΠΎΠ΄ число, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 100000, ΠΎΡ‡Π°ΠΊΠ²Π°ΠΌΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ Π½Π° ΠΈΠ·Ρ…ΠΎΠ΄Π° число 200000. Но ΠΊΠΎΠ³Π°Ρ‚ΠΎ стартирамС числото 100000 няколко ΠΏΡŠΡ‚ΠΈ, Π½Π΅ само Ρ‡Π΅ Π½Π΅ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ правилния ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€, Π½ΠΎ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΈ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈ. Π Π°Π·Π³Π°Π΄ΠΊΠ°Ρ‚Π° Π΅ Π² Ρ‚ΠΎΠ²Π°, Ρ‡Π΅ Π·Π° ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° числото са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Ρ‚Ρ€ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ β€” ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅ Π½Π° числото ΠΎΡ‚ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½Π΅ ΠΈ слСд Ρ‚ΠΎΠ²Π° записванС Π½Π° числото ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ. Въй ΠΊΠ°Ρ‚ΠΎ всички Ρ‚Π΅Π·ΠΈ инструкции Π½Π΅ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Ρ‚ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎ (всички навСднъТ), Ρ‚Π°ΠΊΠΈΠ²Π° странни Π½Π΅Ρ‰Π° ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС случват. Π’Π°Π·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ сС Π½Π°Ρ€ΠΈΡ‡Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Π½Π° Π³ΠΎΠ½ΠΊΠ°. ΠšΠΎΠ³Π°Ρ‚ΠΎ нСизвСстни сили Π² нСизвСстСн ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° повлияят Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π²Π°ΡˆΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster