เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™: เบชเบฒเบกเบŠเบดเป‰เบ™เบ‡เปˆเบฒเบ. เบžเบฒเบเบ—เบต 1: เปเบ™เบฐเบ™เบณ (เบเบฒเบ™เปเบ›)

เปเบ™เบฐเบ™เบณเบเปˆเบฝเบงเบเบฑเบšเบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™

Hey Habr! เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบขเบฒเบเบˆเบฐเป€เบญเบปเบฒเบกเบฒเปƒเบซเป‰เบ„เบงเบฒเบกเบชเบปเบ™เปƒเบˆเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบŠเบธเบ”เบ‚เบญเบ‡เบšเบปเบ”เบ„เบงเบฒเบก - เบเบฒเบ™เปเบ›เบ‚เบญเบ‡เบงเบฑเบ™เบ™เบฐเบ„เบฐเบ”เบตเบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเปƒเบ™เบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™เบ‚เบญเบ‡เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒ - OSTEP. เป€เบญเบเบฐเบชเบฒเบ™เบ™เบตเป‰เบชเบปเบ™เบ—เบฐเบ™เบฒเบขเปˆเบฒเบ‡เป€เบฅเบดเบเป€เบŠเบดเปˆเบ‡เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบท unix, เบ„เบท, เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ‚เบฐเบšเบงเบ™เบเบฒเบ™, เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ•เปˆเบฒเบ‡เป†, เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปเบฅเบฐเบญเบปเบ‡เบ›เบฐเบเบญเบšเบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบญเบทเปˆเบ™เป†เบ—เบตเปˆเบ›เบฐเบเบญเบšเป€เบ›เบฑเบ™ OS เบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบก. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบšเบดเปˆเบ‡เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเบ‚เบญเบ‡เบงเบฑเบ”เบชเบฐเบ”เบธเบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบ™เบตเป‰ เบ—เบตเปˆเบ™เบตเป‰. เบเบฐเบฅเบธเบ™เบฒเบฎเบฑเบšเบŠเบฒเบšเบงเปˆเบฒเบเบฒเบ™เปเบ›เปเบกเปˆเบ™เป€เบฎเบฑเบ”เบšเปเปˆเป„เบ”เป‰เป€เบ›เบฑเบ™เบกเบทเบญเบฒเบŠเบตเบš (เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เป€เบชเบฅเบต), เปเบ•เปˆเบ‚เป‰เบญเบเบซเบงเบฑเบ‡เบงเปˆเบฒเบ‚เป‰เบญเบเบˆเบฐเบฎเบฑเบเบชเบฒเบ„เบงเบฒเบกเบซเบกเบฒเบเบ—เบปเปˆเบงเป„เบ›.

เบงเบฝเบเบ‡เบฒเบ™เบซเป‰เบญเบ‡เบ—เบปเบ”เบฅเบญเบ‡เบเปˆเบฝเบงเบเบฑเบšเป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบžเบปเบšเป„เบ”เป‰เบ—เบตเปˆเบ™เบตเป‰:
- เบ•เบปเป‰เบ™โ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹: pages.cs.wisc.edu/~remzi/OSTEP/Homework/homework.html
- เบ•เบปเป‰เบ™โ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹: github.com/remzi-arpacidusseau/ostep-code
- เบเบฒเบ™โ€‹เบ›เบฑเบšโ€‹เบ•เบปเบงโ€‹เบชเปˆเบงเบ™โ€‹เบšเบธเบโ€‹เบ„เบปเบ™โ€‹เบ‚เบญเบ‡โ€‹เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹: github.com/bykvaadm/OS/tree/master/ostep

เบ—เปˆเบฒเบ™เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบเบงเบ”เป€เบšเบดเปˆเบ‡เบŠเปˆเบญเบ‡เบ—เบฒเบ‡เบ‚เบญเบ‡เบ‚เป‰เบญเบเป„เบ”เป‰เบ—เบตเปˆ เป‚เบ—เบฅเบฐเป€เบฅเบ =)

เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เป‚เบ„เบ‡เบเบฒเบ™

เบˆเบฐเป€เบเบตเบ”เบซเบเบฑเบ‡เบ‚เบถเป‰เบ™เป€เบกเบทเปˆเบญเป‚เบ›เบฃเปเบเบฃเบกเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆ? เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เปเบฅเปˆเบ™โ€‹เป€เบฎเบฑเบ”โ€‹เบชเบดเปˆเบ‡โ€‹เบ—เบตเปˆโ€‹เบ‡เปˆเบฒเบโ€‹เบ”เบฒเบ - เบกเบฑเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹. เบ—เบธเบเป†เบงเบดเบ™เบฒเบ—เบต, เบซเบผเบฒเบเบฅเป‰เบฒเบ™เปเบฅเบฐเปเบกเป‰เบเบฐเบ—เบฑเป‰เบ‡เบซเบผเบฒเบเบ•เบทเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบˆเบฐเบ–เบทเบเบ”เบถเบ‡เบญเบญเบเบกเบฒเป‚เบ”เบเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบˆเบฒเบ RAM, เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบ–เบญเบ”เบฅเบฐเบซเบฑเบ”เบžเบงเบเบกเบฑเบ™ (เบ•เบปเบงเบขเปˆเบฒเบ‡, เบกเบฑเบ™เบฎเบฑเบšเบฎเบนเป‰เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰) เปเบฅเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบžเบงเบเบกเบฑเบ™. เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบชเบญเบ‡เบ•เบปเบงเป€เบฅเบ, เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ, เบเบฒเบ™เบเบงเบ”เบชเบญเบšเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚, เป‚เบ”เบ”เป„เบ›เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆ, เปเบฅเบฐเบญเบทเปˆเบ™เป†. เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบ‚เบญเบ‡โ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เบซเบ™เบถเปˆเบ‡โ€‹, เป‚เบฎเบ‡โ€‹เบ‡เบฒเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เป„เบ”เป‰โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบเบฒเบ™โ€‹เบเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบ‚เบญเบ‡โ€‹เบ„เปเบฒโ€‹เบชเบฑเปˆเบ‡โ€‹เบญเบทเปˆเบ™โ€‹. เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบซเบผเบฑเบ‡เบˆเบฒเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ, เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบˆเบปเบ™เบเปˆเบงเบฒเป‚เบ„เบ‡เบเบฒเบ™เบชเบดเป‰เบ™เบชเบธเบ”เบฅเบปเบ‡.
เบ•เบปเบงเบขเปˆเบฒเบ‡เบ™เบตเป‰เบ–เบทเบเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบขเปˆเบฒเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบ - เปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡, เป€เบžเบทเปˆเบญเป€เบฅเบฑเปˆเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบต, เบฎเบฒเบ”เปเบงเบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบกเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ, เบ„เบดเบ”เป„เบฅเปˆเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰, เบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบžเป‰เบญเบกเป†เบเบฑเบ™, เปเบฅเบฐ tricks เบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™.

เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆ Von Neumann

เบฎเบนเบšเปเบšเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเบ—เบตเปˆเบญเบฐเบ—เบดเบšเบฒเบเป‚เบ”เบเบžเบงเบเป€เบฎเบปเบฒเปเบกเปˆเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบšเบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆ Von Neumann. Von Neumann เป€เบ›เบฑเบ™เปœเบถเปˆเบ‡เปƒเบ™เบœเบนเป‰เบšเบธเบเป€เบšเบตเบเบฅเบฐเบšเบปเบšเบ„เบญเบกเบžเบดเบงเป€เบ•เบต, เบฅเบฒเบงเบเบฑเบ‡เป€เบ›เบฑเบ™เบ™เบฑเบเบ‚เบฝเบ™เบ—เบดเบ”เบชเบฐเบ”เบตเป€เบเบก.. เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเป‚เบ„เบ‡เบเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เบ”เปเบฒเป€เบ™เบตเบ™เบขเบนเปˆ, เบเบดเบ”เบˆเบฐเบเปเบฒเบญเบทเปˆเบ™เป†เป€เบเบตเบ”เบ‚เบถเป‰เบ™, เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบญเบทเปˆเบ™เป†เบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบเปเบฅเบฐเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ•เบฒเบกเป€เบซเบ”เบœเบปเบ™เบ‚เบญเบ‡เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเบชเบฒเบก, เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ•เบปเป‰เบ™เบ•เปเปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบ‡เปˆเบฒเบเบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบง, เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เปเบฅเบฐเบเบฒเบ™เบšเปเบฒเบฅเบธเบ‡เบฎเบฑเบเบชเบฒเบฅเบฐเบšเบปเบš.
เบกเบตเบŠเบธเบ”เบ‚เบญเบ‡เบŠเบญเบŸเปเบงเบ—เบตเปˆเบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบšเบฑเบ™เบ”เบฒเป‚เบ„เบ‡เบเบฒเบ™เบ‡เปˆเบฒเบเบ—เบตเปˆเบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ (เบซเบผเบทเปเบกเป‰เบเบฐเบ—เบฑเป‰เบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบซเบผเบฒเบเป‚เบ„เบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™), เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบšเบฑเบ™เบ”เบฒเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเปเบšเปˆเบ‡เบ›เบฑเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ”เบฝเบงเบเบฑเบ™, เปเบฅเบฐเบ•เบดเบ”เบ•เปเปˆเบชเบทเปˆเบชเบฒเบ™เบเบฑเบšเบญเบธเบ›เบฐเบเบญเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. เบŠเบธเบ”เบ‚เบญเบ‡เบŠเปเปเบง (เบŠเบญเบšเปเบง) เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒเบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เปเบฅเบฐเบงเบฝเบเบ‡เบฒเบ™เบ‚เบญเบ‡เบกเบฑเบ™เบ›เบฐเบเบญเบšเบกเบตเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบงเปˆเบฒเบฅเบฐเบšเบปเบšเป€เบฎเบฑเบ”เบงเบฝเบเบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡เปเบฅเบฐเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบ„เบงเบฒเบกเบชเบฐเบ”เบงเบเปƒเบ™เบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบฅเบฐเบšเบปเบšเบ™เบตเป‰.

เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™

เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™, เบซเบเปเป‰เป€เบ›เบฑเบ™ OS, เปเบกเปˆเบ™เบŠเบธเบ”เบ‚เบญเบ‡เป‚เบ›เบฅเปเบเบฅเบกเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบ™เบ—เบตเปˆเบ–เบทเบเบญเบญเบเปเบšเบšเป€เบžเบทเปˆเบญเบˆเบฑเบ”เบเบฒเบ™เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ„เบญเบกเบžเบดเบงเป€เบ•เบตเปเบฅเบฐเบˆเบฑเบ”เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบœเบนเป‰เปƒเบŠเป‰เบเบฑเบšเบ„เบญเบกเบžเบดเบงเป€เบ•เบต..
OS เบšเบฑเบ™เบฅเบธเบ›เบฐเบชเบดเบ”เบ—เบดเบœเบปเบ™เปƒเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ—เปเบฒเบญเบดเบ”, เป‚เบ”เบเบœเปˆเบฒเบ™เป€เบ•เบฑเบเบ™เบดเบเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบชเบธเบ” - เป€เบ•เบฑเบเบ™เบดเบ virtualization. OS เบžเบปเบงเบžเบฑเบ™เบเบฑเบšเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบฒเบ‡เบเบฒเบเบฐเบžเบฒเบš (เป‚เบ›เป€เบŠเบ”เป€เบŠเบต, เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ, เปเบœเปˆเบ™, เปเบฅเบฐเบญเบทเปˆเบ™เป†) เปเบฅเบฐเบ›เปˆเบฝเบ™เบกเบฑเบ™เป„เบ›เบชเบนเปˆเบฎเบนเบšเปเบšเบšเบ—เบปเปˆเบงเป„เบ›, เบกเบตเบญเปเบฒเบ™เบฒเบ”เบซเบผเบฒเบ, เปเบฅเบฐเบ‡เปˆเบฒเบเบ•เปเปˆเบเบฒเบ™เปƒเบŠเป‰เบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเปƒเบˆเบ—เบปเปˆเบงเป„เบ›, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เบฝเบšเบ—เบฝเบšเบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡ virtual.
เป€เบžเบทเปˆเบญเปƒเบซเป‰เบœเบนเป‰เปƒเบŠเป‰เบชเบฒเบกเบฒเบ”เปƒเบซเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡เบเบฑเบšเบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เปƒเบŠเป‰เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ‚เบญเบ‡ virtual machine (เป€เบŠเบฑเปˆเบ™: เปเบฅเปˆเบ™เป‚เบ„เบ‡เบเบฒเบ™, เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ, เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป„เบŸเบฅเปŒ, เปเบฅเบฐเบญเบทเปˆเบ™เป†), เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ. API (เบเบฒเบ™โ€‹เป‚เบ•เป‰โ€‹เบ•เบญเบšโ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ„เปเบฒโ€‹เบฎเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบฑเบโ€‹) เปเบฅเบฐโ€‹เบ—เบตเปˆโ€‹เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบเบฒเบ™โ€‹เป‚เบ— (เป‚เบ—โ€‹)โ€‹. เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ›เบปเบเบเบฐเบ•เบดเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เป‚เบ—เบซเบฒเบฅเบฐเบšเบปเบšเบซเบผเบฒเบเบฎเป‰เบญเบเบ„เบฑเป‰เบ‡.
เบชเบธเบ”เบ—เป‰เบฒเบ, เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆ virtualization เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เป€เบฎเบฑเบ”เบงเบฝเบเบซเบผเบฒเบเป‚เบ„เบ‡เบเบฒเบ™ (เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™ CPU), เปเบฅเบฐเบžเป‰เบญเบกเป†เบเบฑเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ (เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ), เปเบฅเบฐเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เปเบœเปˆเบ™ (เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™ I / O เบญเบธเบ›เบฐเบเบญเบ™). , เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบญเบตเป‰เบ™เบงเปˆเบฒ a. เบœเบนเป‰เบˆเบฑเบ”เบเบฒเบ™เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™. เปเบ•เปˆเบฅเบฐเป‚เบ›เป€เบŠเบ”เป€เบŠเบต, เปเบœเปˆเบ™เปเบฅเบฐเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปเบกเปˆเบ™เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ‚เบญเบ‡เบฅเบฐเบšเบปเบš, เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบซเบ™เบถเปˆเบ‡เปƒเบ™เบšเบปเบ”เบšเบฒเบ”เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบเบฒเบเป€เบ›เบฑเบ™เบงเบฝเบเบ‡เบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰, เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš, เบŠเบทเปˆเบชเบฑเบ”, เบซเบผเบทเปƒเบ™เบ—เบฒเบ‡เบเบฑเบšเบเบฑเบ™, เบ‚เบถเป‰เบ™เบเบฑเบšเบงเบฝเบเบ‡เบฒเบ™เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ™เบตเป‰. เป„เบ”เป‰เบ–เบทเบเบญเบญเบเปเบšเบš.

CPU virtualization

เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเป‚เบ„เบ‡เบเบฒเบ™เบ•เปเปˆเป„เบ›เบ™เบตเป‰:
(https://www.youtube.com/watch?v=zDwT5fUcki4&feature=youtu.be)

เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™: เบชเบฒเบกเบŠเบดเป‰เบ™เบ‡เปˆเบฒเบ. เบžเบฒเบเบ—เบต 1: เปเบ™เบฐเบ™เบณ (เบเบฒเบ™เปเบ›)

เบกเบฑเบ™เบšเปเปˆเป„เบ”เป‰เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบžเบดเป€เบชเบ”เปƒเบ”เป†, เปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡, เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบกเบฑเบ™เป€เบฎเบฑเบ”เปเบกเปˆเบ™เป‚เบ—เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆ spin(), เบงเบฝเบเบ‡เบฒเบ™เบ‚เบญเบ‡เบกเบฑเบ™เปเบกเปˆเบ™เบงเบปเบ‡เบˆเบญเบ™เป‚เบ”เบเบœเปˆเบฒเบ™เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ—เบตเปˆเปƒเบŠเป‰เป€เบงเบฅเบฒเปเบฅเบฐเบเบฑเบšเบ„เบทเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบซเบ™เบถเปˆเบ‡เบงเบดเบ™เบฒเบ—เบตเป„เบ”เป‰เบœเปˆเบฒเบ™เป„เบ›. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบกเบฑเบ™เบŠเปเป‰เบฒเบ„เบทเบ™เบชเบฐเบ•เบฃเบดเบ‡เบ—เบตเปˆเบšเปเปˆเบกเบตเบเปเบฒเบ™เบปเบ”เบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰เบœเปˆเบฒเบ™เป€เบ›เบฑเบ™เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡.
เปƒเบซเป‰เบ”เปเบฒเป€เบ™เบตเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ™เบตเป‰เปเบฅเบฐเบœเปˆเบฒเบ™เบกเบฑเบ™เบ”เป‰เบงเบเบ•เบปเบงเบญเบฑเบเบชเบญเบ™ "A" เป€เบ›เบฑเบ™เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡. เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเปเบกเปˆเบ™เบšเปเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ - เบฅเบฐเบšเบปเบšเบžเบฝเบ‡เปเบ•เปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบชเบฐเปเบ”เบ‡เบ•เบปเบงเบญเบฑเบเบชเบญเบ™ "A" เป€เบ›เบฑเบ™เปเบ•เปˆเบฅเบฐเป„เบฅเบเบฐเปƒเบ™เบซเบ™เป‰เบฒเบˆเป.
เบ•เบญเบ™เบ™เบตเป‰เปƒเบซเป‰เบฅเบญเบ‡เปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบกเบทเปˆเบญเบซเบผเบฒเบเป†เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เป‚เบ›เบฃเปเบเบฃเบกเบ”เบฝเบงเบเบฑเบ™เบเบณเบฅเบฑเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆ, เปเบ•เปˆเปƒเบซเป‰เบญเบญเบเบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบŠเบฑเบ”เป€เบˆเบ™เบ‚เบถเป‰เบ™. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบ™เบตเป‰, เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบˆเบฐเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. เป€เบ–เบดเบ‡เบงเปˆเบฒเบˆเบฐเบกเบตเบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบกเบตเบซเบ™เบถเปˆเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบต, เป‚เบ„เบ‡เบเบฒเบ™เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบžเป‰เบญเบกเป†เบเบฑเบ™. เบกเบฑเบ™เป€เบเบตเบ”เบ‚เบถเป‰เบ™เปเบ™เบงเปƒเบ”? เปเบ•เปˆเบกเบฑเบ™ turns เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒเบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™, เบšเปเปˆเปเบกเปˆเบ™เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเบ‚เบญเบ‡เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ‚เบญเบ‡เบฎเบฒเบ”เปเบง, เบชเป‰เบฒเบ‡เบžเบฒเบšเบฅเบงเบ‡เบ•เบฒ. เบžเบฒเบšเบฅเบงเบ‡เบ•เบฒเบ—เบตเปˆเบฅเบฐเบšเบปเบšเบกเบตเป‚เบ›เป€เบŠเบ”เป€เบŠเบต virtual เบซเบผเบฒเบ, เบ›เปˆเบฝเบ™เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ—เบฒเบ‡เบ”เป‰เบฒเบ™เบฎเปˆเบฒเบ‡เบเบฒเบเบ”เบฝเบงเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบˆเปเบฒเบ™เบงเบ™เบ—เบตเปˆเบšเปเปˆเบกเบตเบ‚เบญเบšเป€เบ‚เบ”เบ—เบฒเบ‡เบ—เบดเบ”เบชเบฐเบ”เบตเปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบšเบฑเบ™เบ”เบฒเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเป€เบฎเบฑเบ”เบงเบฝเบเบžเป‰เบญเบกเป†เบเบฑเบ™. เบžเบฒเบšเบฅเบงเบ‡เบ•เบฒเบ™เบตเป‰เป€เบญเบตเป‰เบ™เบงเปˆเบฒ CPU virtualization.
เบฎเบนเบšเบžเบฒเบšเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบ„เปเบฒเบ–เบฒเบกเบซเบผเบฒเบเบขเปˆเบฒเบ‡, เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ–เป‰เบฒเบซเบฅเบฒเบเป‚เบ„เบ‡เบเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™, เบญเบฑเบ™เปƒเบ”เบˆเบฐเป€เบ›เบตเบ”เบ•เบปเบง? "เบ™เบฐเป‚เบเบšเบฒเบ" เบ‚เบญเบ‡ OS เปเบกเปˆเบ™เบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบ•เปเปˆเบ„เปเบฒเบ–เบฒเบกเบ™เบตเป‰. เบ™เบฐเป‚เบเบšเบฒเบเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบซเบผเบฒเบเบšเปˆเบญเบ™เปƒเบ™ OS เปเบฅเบฐเบ•เบญเบšเบ„เปเบฒเบ–เบฒเบกเป€เบŠเบฑเปˆเบ™เบ™เบตเป‰, เปเบฅเบฐเป€เบ›เบฑเบ™เบเบปเบ™เป„เบเบžเบทเป‰เบ™เบ–เบฒเบ™เบ—เบตเปˆ OS เบ›เบฐเบ•เบดเบšเบฑเบ”. เป€เบžเบฒเบฐเบชเบฐเบ™เบฑเป‰เบ™, เบžเบฒเบฅเบฐเบšเบปเบ”เบšเบฒเบ”เบ‚เบญเบ‡ OS เป€เบ›เบฑเบ™เบœเบนเป‰เบˆเบฑเบ”เบเบฒเบ™เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™.

Virtualization เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ

เบ•เบญเบ™เบ™เบตเป‰เปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒ. เบฎเบนเบšเปเบšเบšเบ—เบฒเบ‡เบเบฒเบเบฐเบžเบฒเบšเบ‚เบญเบ‡เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเปƒเบ™เบฅเบฐเบšเบปเบšเบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบกเปเบกเปˆเบ™เบชเบฐเปเบ”เบ‡เป€เบ›เบฑเบ™ array เบ‚เบญเบ‡ bytes.. เป€เบžเบทเปˆเบญเบญเปˆเบฒเบ™เบˆเบฒเบเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒ, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบฅเบฐเบšเบธ เบ—เบตเปˆเบขเบนเปˆเบ•เบฒเบฅเบฒเบ‡เป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบกเบฑเบ™. เป€เบžเบทเปˆเบญเบ‚เบฝเบ™เบซเบผเบทเบ›เบฑเบšเบ›เบธเบ‡เบ‚เปเป‰เบกเบนเบ™, เบ—เปˆเบฒเบ™เบเบฑเบ‡เบ•เป‰เบญเบ‡เบฅเบฐเบšเบธเบ‚เปเป‰เบกเบนเบ™เปเบฅเบฐเบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เบ•เบฒเบฅเบฒเบ‡เบ—เบตเปˆเบˆเบฐเบ‚เบฝเบ™เบกเบฑเบ™.
เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเป„เบ”เป‰เบ–เบทเบเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ„เบ‡เบเบฒเบ™. เป‚เบ›เบฅเปเบเบฅเบกเป€เบเบฑเบšเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡เบกเบฑเบ™เป„เบงเป‰เปƒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปเบฅเบฐเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบกเบฑเบ™เป‚เบ”เบเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ•เปˆเบฒเบ‡เป†. เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ, เปƒเบ™เบ‚เบฐเบ™เบฐเบ”เบฝเบงเบเบฑเบ™, เบเบฑเบ‡เบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบกเบฑเบ™เบเบฑเบ‡เบ–เบทเบเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ•เปเปˆเป„เบ›.

malloc() เป‚เบ—

เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเป‚เบ„เบ‡เบเบฒเบ™เบ•เปเปˆเป„เบ›เบ™เบตเป‰, เป€เบŠเบดเปˆเบ‡เบˆเบฑเบ”เบชเบฑเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเป‚เบ”เบเปƒเบŠเป‰เบเบฒเบ™เป‚เบ— malloc () (https://youtu.be/jnlKRnoT1m0):

เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™: เบชเบฒเบกเบŠเบดเป‰เบ™เบ‡เปˆเบฒเบ. เบžเบฒเบเบ—เบต 1: เปเบ™เบฐเบ™เบณ (เบเบฒเบ™เปเบ›)

เป‚เบ„เบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบซเบผเบฒเบเบชเบดเปˆเบ‡เบซเบผเบฒเบเบขเปˆเบฒเบ‡. เบซเบ™เป‰เบฒเบ—เปเบฒเบญเบดเบ”, เบกเบฑเบ™เบˆเบฑเบ”เบชเบฑเบ™เบšเบฒเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ (เป€เบชเบฑเป‰เบ™ 7), เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบžเบดเบกเบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เบˆเบธเบฅเบฑเบ‡เบˆเบฑเบ”เบชเบฑเบ™ (เป€เบชเบฑเป‰เบ™ 9), เบ‚เบฝเบ™เบชเบนเบ™เปƒเบชเปˆเบŠเปˆเบญเบ‡เบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเบˆเบฑเบ”เบชเบฑเบ™. เบ•เปเปˆเป„เบ›, เป‚เบ›เบฅเปเบเบฅเบกเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ loop เป€เบŠเบดเปˆเบ‡เบกเบฑเบ™เป€เบžเบตเปˆเบกเบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบขเบนเปˆเบ—เบตเปˆเบ—เบตเปˆเบขเบนเปˆเปƒเบ™เบ•เบปเบงเปเบ› "p". เบกเบฑเบ™เบเบฑเบ‡เบžเบดเบก ID เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡. ID เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เปเบกเปˆเบ™เป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบเบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เปเบฅเปˆเบ™. เบกเบตเบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบงเบซเบผเบฒเบเป†เบชเปเบฒเป€เบ™เบปเบฒ, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐ stumble เบ•เบฒเบกเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆ: เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เปเบฒเบญเบดเบ”, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบšเปเปˆเป€เบฎเบฑเบ”เบซเบเบฑเบ‡เปเบฅเบฐเบžเบฝเบ‡เปเบ•เปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบซเบผเบฒเบเบชเปเบฒเป€เบ™เบปเบฒ, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เบตเปˆเบขเบนเปˆเบˆเบฐเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. เปเบ•เปˆเบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบ•เบปเบเบขเบนเปˆเบžเบฒเบเปƒเบ•เป‰เบ—เบดเบ”เบชเบฐเบ”เบตเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ! เบ–เบทเบเบ•เป‰เบญเบ‡, เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบเบฒเบ™เปเบˆเบเบขเบฒเบเบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบกเบกเบตเบเบฒเบ™เป€เบ›เบตเบ”เบเบฒเบ™เบชเบธเปˆเบกเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบ–เป‰เบฒเบกเบฑเบ™เบ–เบทเบเบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เบ—เบตเปˆเบ„เบฒเบ”เป„เบงเป‰ - เบ—เบตเปˆเบขเบนเปˆเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ‚เบญเบ‡เบชเบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบžเป‰เบญเบกเป†เบเบฑเบ™เบˆเบฐเบเบปเบ‡เบเบฑเบ™.

เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™: เบชเบฒเบกเบŠเบดเป‰เบ™เบ‡เปˆเบฒเบ. เบžเบฒเบเบ—เบต 1: เปเบ™เบฐเบ™เบณ (เบเบฒเบ™เปเบ›)

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบกเบฑเบ™เบ›เบฒเบเบปเบ”เบงเปˆเบฒเบชเบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™เป€เบญเบเบฐเบฅเบฒเบ”เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ—เบตเปˆเบขเบนเปˆเบชเปˆเบงเบ™เบ•เบปเบงเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡, เป€เบŠเบดเปˆเบ‡เปƒเบ™เบ—เบฒเบ‡เบเบฑเบšเบเบฑเบ™เป„เบ”เป‰เบ–เบทเบเปเบœเบ™เบ—เบตเปˆเป‚เบ”เบเบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เปƒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบฒเบ‡เบ”เป‰เบฒเบ™เบฎเปˆเบฒเบ‡เบเบฒเบ.. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบตเปˆเบขเบนเปˆเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบžเบฒเบเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบซเบ™เบถเปˆเบ‡เบˆเบฐเบšเปเปˆเบชเบปเปˆเบ‡เบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบ„เบปเบ™เบญเบทเปˆเบ™เปƒเบ™เบ—เบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก, เปเบฅเบฐเบกเบฑเบ™เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเปเบ•เปˆเบฅเบฐเป‚เบ›เบฅเปเบเบฅเบกเบกเบฑเบ™เบกเบตเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบฒเบ‡เบเบฒเบเบฐเบžเบฒเบšเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡, เบกเบญเบšเปƒเบซเป‰เบกเบฑเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”. เบ„เบงเบฒเบกเบˆเบดเบ‡, เปเบ™เบงเปƒเบ”เบเปเปˆเบ•เบฒเบก, เปเบกเปˆเบ™เบงเปˆเบฒเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบ—เบฒเบ‡เบ”เป‰เบฒเบ™เบฎเปˆเบฒเบ‡เบเบฒเบเปเบกเปˆเบ™เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบฎเปˆเบงเบกเบเบฑเบ™เบ—เบตเปˆเบ„เบธเป‰เบกเบ„เบญเบ‡เป‚เบ”เบเบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™.

เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡

เบญเบตเบเบ›เบฐเบเบฒเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบซเบปเบงเบ‚เปเป‰เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบžเบฒเบเปƒเบ™เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เปเบกเปˆเบ™ โˆ’ เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡. เบ„เปเบฒเบชเบฑเบšเบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบšเบฑเบ™เบซเบฒเปƒเบ™เบฅเบฐเบšเบปเบšเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เป€เบเบตเบ”เบ‚เบถเป‰เบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบซเบผเบฒเบเบชเบดเปˆเบ‡เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™เบžเบฒเบเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ”เบฝเบงเบเบฑเบ™. เบšเบฑเบ™เบซเบฒเบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เป€เบเบตเบ”เบ‚เบทเป‰เบ™เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบขเบนเปˆเปƒเบ™เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡. เปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปเบฅเบฐเป‚เบ›เป€เบŠเบ”เป€เบŠเบต virtualization เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฑเบšเบฎเบนเป‰เบงเปˆเบฒ OS เบˆเบฑเบ”เบเบฒเบ™เบซเบผเบฒเบเป†เบขเปˆเบฒเบ‡เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™ - เบกเบฑเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เปเบฒเบญเบดเบ”, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เบตเบชเบญเบ‡, เปเบฅเบฐเบญเบทเปˆเบ™เป†. เบเป‰เบญเบ™เบงเปˆเบฒเบกเบฑเบ™เบซเบฑเบ™เบญเบญเบ, เบžเบถเบ”เบ•เบดเบเปเบฒเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ™เปเบฒเป„เบ›เบชเบนเปˆเบšเบฑเบ™เบซเบฒเบšเบฒเบ‡เบขเปˆเบฒเบ‡. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, เป‚เบ„เบ‡เบเบฒเบ™เบซเบผเบฒเบเบเบฐเบ—เบนเป‰เบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบกเบ›เบฐเบชเบปเบšเบเบฑเบšเบ„เบงเบฒเบกเบซเบเบธเป‰เบ‡เบเบฒเบเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง.

เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเป‚เบ„เบ‡เบเบฒเบ™เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™: เบชเบฒเบกเบŠเบดเป‰เบ™เบ‡เปˆเบฒเบ. เบžเบฒเบเบ—เบต 1: เปเบ™เบฐเบ™เบณ (เบเบฒเบ™เปเบ›)

เป‚เบ›เบฃเปเบเบฃเบกเปƒเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบ•เบปเป‰เบ™เบ•เปเบˆเบฐเบชเป‰เบฒเบ‡เบชเบญเบ‡เบเบฐเบ—เบนเป‰เป‚เบ”เบเปƒเบŠเป‰เบเบฒเบ™เป‚เบ— pthread_create(). เปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ™เบตเป‰, เบเบฐเบ—เบนเป‰เบชเบฒเบกเบฒเบ”เบ„เบดเบ”เบงเปˆเบฒเป€เบ›เบฑเบ™เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ”เบฝเบงเบเบฑเบ™เบžเป‰เบญเบกเบเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™เบญเบทเปˆเบ™เป†, เป‚เบ”เบเป€เบซเบฑเบ™เป„เบ”เป‰เบŠเบฑเบ”เป€เบˆเบ™เบซเบผเบฒเบเบเบงเปˆเบฒเบซเบ™เบถเปˆเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™. เปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ™เบตเป‰, เปเบ•เปˆเบฅเบฐเบเบฐเบ—เบนเป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบฅเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆ worker() เป€เบŠเบดเปˆเบ‡เบžเบฝเบ‡เปเบ•เปˆเป€เบžเบตเปˆเบกเบ•เบปเบงเปเบ›,.

เปƒเบซเป‰เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ™เบตเป‰เบ”เป‰เบงเบเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ‚เบญเบ‡ 1000. เบ”เบฑเปˆเบ‡เบ—เบตเปˆเป€เบˆเบปเป‰เบฒเบญเบฒเบ”เบˆเบฐเบ„เบฒเบ”เป€เบ”เบปเบฒเป„เบ”เป‰, เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ„เบงเบ™เบˆเบฐเป€เบ›เบฑเบ™ 2000 เป€เบžเบฒเบฐเบงเปˆเบฒเปเบ•เปˆเบฅเบฐ thread เป€เบžเบตเปˆเบกเบ•เบปเบงเปเบ› 1000 เป€เบ—เบทเปˆเบญ. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบšเปเปˆเบ‡เปˆเบฒเบเบ”เบฒเบ. เปƒเบซเป‰เบžเบฐเบเบฒเบเบฒเบกเบ”เปเบฒเป€เบ™เบตเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบกเบตเบ„เปเบฒเบชเบฑเปˆเบ‡เบ‚เบญเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เบŠเป‰เปเบฒเบเบฑเบ™เบซเบผเบฒเบ.

เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™: เบชเบฒเบกเบŠเบดเป‰เบ™เบ‡เปˆเบฒเบ. เบžเบฒเบเบ—เบต 1: เปเบ™เบฐเบ™เบณ (เบเบฒเบ™เปเบ›)

เป‚เบ”เบเบเบฒเบ™เปƒเบชเปˆเบ•เบปเบงเป€เบฅเบ, เบ•เบปเบงเบขเปˆเบฒเบ‡, 100000, เบžเบงเบเป€เบฎเบปเบฒเบ„เบฒเบ”เบงเปˆเบฒเบˆเบฐเป€เบซเบฑเบ™เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเป€เบ›เบฑเบ™เบ•เบปเบงเป€เบฅเบ 200000. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเปเบฅเปˆเบ™เบˆเปเบฒเบ™เบงเบ™ 100000 เบซเบผเบฒเบเบ„เบฑเป‰เบ‡, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบšเปเปˆเป€เบซเบฑเบ™เบ„เปเบฒเบ•เบญเบšเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡, เปเบ•เปˆเบเบฑเบ‡เป„เบ”เป‰เบฎเบฑเบšเบ„เปเบฒเบ•เบญเบšเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. เบ„เปเบฒเบ•เบญเบšเปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒเป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบˆเปเบฒเบ™เบงเบ™, เบชเบฒเบกเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เปเบกเปˆเบ™เบˆเปเบฒเป€เบ›เบฑเบ™ - เบเบฒเบ™เบชเบฐเบเบฑเบ”เบ•เบปเบงเป€เบฅเบเบˆเบฒเบเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒ, เบเบฒเบ™เป€เบžเบตเปˆเบก, เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ‚เบฝเบ™เบ•เบปเบงเป€เบฅเบเบเบฑเบšเบ„เบทเบ™เป„เบ›เบšเปˆเบญเบ™. เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบ”เป‰เบงเบเบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบน (เบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™), เบชเบดเปˆเบ‡เปเบ›เบเบ›เบฐเบซเบฅเบฒเบ”เป€เบŠเบฑเปˆเบ™เบ™เบตเป‰เบเปเปˆเบชเบฒเบกเบฒเบ”เป€เบเบตเบ”เบ‚เบถเป‰เบ™เป„เบ”เป‰. เบšเบฑเบ™เบซเบฒเบ™เบตเป‰เป€เบญเบตเป‰เบ™เบงเปˆเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก เบชเบฐโ€‹เบžเบฒเบšโ€‹เบเบฒเบ™โ€‹เป€เบŠเบทเป‰เบญโ€‹เบŠเบฒเบ”โ€‹. เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเปเบฒเบฅเบฑเบ‡เบ—เบตเปˆเบšเปเปˆเบฎเบนเป‰เบˆเบฑเบเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบšเปเปˆเบฎเบนเป‰เบˆเบฑเบเบชเบฒเบกเบฒเบ”เบชเบปเปˆเบ‡เบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เปƒเบ”เป†เบ‚เบญเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™