Operating Systems ááááşáááş
ááąá¸ ááŹá! ááťá˝ááşááąáŹáˇáşáĄááźááşáĄá á
áááşáááşá
áŹá¸á
ááŹááąáŹááşá¸áá˛áˇ á
áŹááąáá
áşááŻááźá
áşáá˛áˇ 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 ááž ááááŻáááşááŹááž ááźááşáááşááá°ááźáŽá¸ áááşá¸áááŻáˇáĄáŹá¸ ááŻááşááśááŤááşááťáŹá¸ ááŻááşááąá¸áááş (áĽáááŹá á¤áá˝ážááşááźáŹá¸ááťááşáĄááťááŻá¸áĄá áŹá¸ááᯠáĄáááĄáážááşááźáŻáááş) áážááˇáş áááşá¸áááŻáˇááᯠááŻááşááąáŹááşáááşá áááşá¸áááş ááśááŤááşáážá áşááŻááᯠááąáŤááşá¸áááˇáşááźááşá¸á áááşáááŻááŽáááşááąáŹááşááźááşá¸á áĄááźáąáĄááąáá áşáᯠá á áşááąá¸ááźááşá¸á ááŻááşááąáŹááşááťááşáá áşááŻáááŻáˇ ááŻááşááźááşá¸á áááşááźááˇáş ááźá áşáááŻááşáááşá áá˝ážááşááźáŹá¸ááťááşáá áşááŻáĄáŹá¸ áĄááąáŹááşáĄáááşááąáŹáşááźáŽá¸ááąáŹááş ááááŻáááşááŹáááş áĄááźáŹá¸áá áşááŻáááŻááşááąáŹááşáážáŻááŽáááŻáˇ áááşáááşááŻááşááąáŹááşáááşá áááŻáˇááźáąáŹááˇáş áá˝ážááşááźáŹá¸ááťááşááᯠáááşááźáŹá¸ááźáŽá¸ááąáŹááşá ááááŻááááş ááźáŽá¸ááŻáśá¸áááˇáşáááŻááşáĄáąáŹááş áááşá¸áááŻáˇááᯠá áŽááśááąáŹááşáá˝ááşáááşá
á¤áĽáááŹááᯠáááŹááĄáááŻááşá¸ áááŻá¸áážááşá¸áĄáąáŹááşááźáŻááŻááşááŹá¸áááşáᯠáá°ááááş - áĄáážááşáážáŹá ááááŻáááşááŹááᯠáĄáážáááşááźážááˇáşáááşáĄáá˝ááş ááąááşááŽááŹáˇááşáá˛áááş áááˇáşáĄáŹá¸ áá˝ážááşááźáŹá¸ááťááşááťáŹá¸ááᯠáĄáážááˇáşáĄááźáąáŹááşá¸á ááźá áşáááŻááşáááˇáşááááşááťáŹá¸ááᯠáá˝ááşááťááşáááşá áá˝ážááşááźáŹá¸ááťááşááťáŹá¸ááᯠáá áşááźááŻááşáááşáááşá¸ááŻááşááąáŹááşáááşáážááˇáş áĄááŹá¸áá°áážááˇáşáá˝ááşááťáŹá¸ááᯠááŻááşááąáŹááşáááŻááşá áąáááşááźá áşáááşá
Von Neumann á áá˝ááşááťááşáážáŻááŻáśá áś
ááťá˝ááşáŻááşáááŻáˇ ááąáŹáşááźááŹá¸ááąáŹ áááŻá¸áážááşá¸ááąáŹ áĄááŻááşááŻáśá áśáááş Von Neumann áá˝ááşááťááşáážáŻááŻáśá áśáážááˇáş áááşáá°áááşá Von Neumann áááş áá˝ááşááźá°ááŹá áá áşááťáŹá¸á áážáąáˇááąáŹááşááťáŹá¸áá˛ááž áá áşáŚá¸ááźá áşááźáŽá¸ ááááşá¸ááŽáĄááŻááŽááąá¸ááŹá¸áá°áááşá¸ááźá áşáááşá. ááááŻááááşááᯠááŻááşááąáŹááşááąááťáááşáá˝ááşá áĄááźáŹá¸ááąáŹ ááźá áşáááşááťáŹá¸á á˝áŹá áĄááźáŹá¸ááąáŹ ááŻááşáááşá¸á ááşááťáŹá¸á á˝áŹáážááˇáş ááźááşáááž ááŻáášááááąááááŻááşáᏠááŻááşááąáŹááşáážáŻááťáŹá¸á áĄááá áááşáá˝ááşááťááşáážáŹ á áá áşá á áááşáážáŻá áááşáááşáážáŻáážááˇáş ááźáŻááźááşááááşá¸ááááşá¸áážáŻáááŻáˇááᯠáááŻá¸áážááşá¸á áąáááşááźá áşáááşá
ááááŻááááşááťáŹá¸ááᯠáá˝ááşáá°á á˝áŹáááşáááşáááş (áááŻáˇáááŻááş ááááŻááááşááťáŹá¸á á˝áŹááᯠáá áşááťáááşáááşá¸áá˝ááş ááŻááşááąáŹááşáááşáá˝ááˇáşááźáŻááźááşá¸) áá˝ááş ááááŻááááşááťáŹá¸ááᯠáá°ááŽááąáŹáážááşááŹááşááťáŹá¸ááťážááąáááşáážááˇáş ááá°ááŽááąáŹá ááşáá ášá ááşá¸ááťáŹá¸áážááˇáş áááşáá˝ááşáááŻááşá áąáááşáĄáá˝ááş ááŹáááşáážááááˇáşááąáŹáˇááşáá˛áĄá áŻáá áşááŻáážáááŤáááşá áááŻáá˛áˇáááŻáˇááąáŹ ááąáŹáˇááşáá˛ááş (ááąáŹáˇááşáá˛ááş) áĄá áŻáĄááąá¸ááᯠáĄááźáąááśáĄáŹá¸ááźááˇáş áááşáááşáážáŻá áá áşááŻááąáŤáşáá˝ááşááźáŽá¸ áááşá¸áááŻááşáááşá¸ááŹáááşááťáŹá¸áážáŹ á áá áşáážááşáááşááźáŽá¸ ááááąáŹááşáážáŻáážáááážá á áąáŹááˇáşááźááˇáşá á áşááąá¸ááźááşá¸áážááˇáş á áá áşáĄáŹá¸ á áŽááśáááˇáşáá˝á˛ááá˝ááşáá°ááźáąáŹááşá¸ ááąááťáŹá áąááźááşá¸áááŻáˇááŤáááşáááşá
operating system áááŻ
OS áá áşááŻáᯠáĄáááŻááąáŹááşááąáŤáşááąáŹ áááşáááşáážáŻá áá áşáááş áá˝ááşááťá°ááŹáĄáááşá¸áĄááźá áşááťáŹá¸ááᯠá áŽááśáááˇáşáá˝á˛áááşáážááˇáş áĄááŻáśá¸ááźáŻáá°á áĄááźááşáĄáážááşáááşáá˝ááşáážáŻááᯠá áŻá ááşá¸áááş ááŽáááŻááşá¸ááŻááşááŹá¸ááąáŹ áĄááźááşáĄáážááşáááşá ááşááááŻááááşáĄá áŻáĄááąá¸áá áşááŻááźá áşáááşá.
OS áááş áĄááąá¸ááźáŽá¸ááŻáśá¸áááşá¸áááŹááźá áşááąáŹ áááşá¸áááŹáĄáŹá¸ááźááˇáş áááááąááŹá áááşá¸áááááąáŹááşáážáŻááᯠááážááááşá virtualization. OS áááş ááŻááşáááŻááşá¸áááŻááşááŹáĄáááşá¸áĄááźá áşááťáŹá¸ (ááááŻáááşááŹá áááşáááŻááŽá áá áşááşá áááş) áážááˇáş áĄááźááşáĄáážááşáĄááťááŻá¸áááşááąáŹááşááźáŽá¸ áááşá¸ááᯠáááŻáááŻááąáá°ááťá áááŻáááŻáĄáŹá¸ááąáŹááşá¸ááźáŽá¸ áĄááŻáśá¸ááźáŻááá˝ááşáá°ááąáŹááŻáśá áśáĄááźá áş ááźáąáŹááşá¸áá˛ááąá¸áááşá áááŻáˇááźáąáŹááˇáşá ááąáá°ááťááŹá¸áááşáááşáĄáá˝ááşá áááşáááş operating system ááᯠvirtual machine áá áşááŻáážááˇáş áĄááźááşá¸ááťááşá¸ áážááŻááşá¸áážááşáááŻááşáááşá
áĄááŻáśá¸ááźáŻáá°ááťáŹá¸áĄáŹá¸ áááşáááşáážáŻá áá áşáĄáŹá¸ áĄááááˇáşááťáŹá¸ááąá¸áááŻááşáááş áá˝ááˇáşááźáŻááŹá áááŻáˇááźáąáŹááˇáş ááááŻááááşáá áşááŻááŻááşááąáŹááşááźááşá¸á áážááşááŹááşáá˝á˛ááąááźááşá¸á áááŻááşáá áşááŻááá°ááźááşá¸á áááşááźááˇáş) ááááŻááááşááᯠvirtual machine áá á˝ááşá¸áááşááťáŹá¸ááᯠáĄááŻáśá¸ááźáŻáááŻááşáááşá API ááᯠ(áĄáááŽááąá¸áážááşá¸ ááááŻááááşá¸áááşá¸ áĄááşááŹááąáˇá áş) áážááˇáş ááŻááşá¸ááąáŤáşáááŻáážáŻ (ááąáŤáşáááŻáážáŻ) áááŻáˇ ááźáŻááŻááşáááŻááşáááşá ááŻáśáážááşáááşáááşáážáŻá áá áşáááş ááŹáážááˇáşááťáŽááąáŹ á áá áşááąáŤáşáááŻáážáŻááťáŹá¸ááᯠááźáŻááŻááşáááŻááşá áąááŤáááşá
ááąáŹááşááŻáśá¸áĄááąááźááˇáşá virtualization áááş ááááŻááááşááťáŹá¸á á˝áŹááᯠrun áááş (CPU áááŻááťážááąááźááşá¸) áážááˇáş áááşá¸áááŻáˇá áá˝ážááşááźáŹá¸ááťááşááťáŹá¸áážááˇáş ááąááŹááťáŹá¸ááᯠáá áşááźááŻááşáááş áááşááąáŹááşááźááˇáşáážáŻáááŻááşáááş (áááŻáˇááźáąáŹááˇáş memory ááťážááąááźááşá¸) áážááˇáş disks ááťáŹá¸ (áááŻáˇááźáąáŹááˇáş I/O á ááşáá ášá ááşá¸ááťáŹá¸ááᯠááťážááąááźááşá¸) áááŻáˇááᯠáá˝ááˇáşááźáŻááąá¸ááąáŹááźáąáŹááˇáşá áááşáááşáážáŻá áá áşáááŻáááşá¸ ááąáŤáşáááŻááŤáááşá áĄáááşá¸áĄááźá áşáááşááąááťáŹá ááááŻáááşááŹá áá áşááşáážááˇáş áááşáááŻáᎠáá áşááŻá áŽáááş á áá áşá áĄáááşá¸áĄááźá áşáá áşááŻááźá áşááźáŽá¸á áááŻáˇááźáąáŹááˇáş á¤áááşáááşáážáŻá áá áşá áĄáááşá¸ááášáááťáŹá¸áá˛ááž áá áşááŻáááş á¤áááşáááşáážáŻá áá áşá ááŻááşááąáŹááşáážáŻáĄááąáŤáş áá°áááşá ááááąáŹááşá á˝áŹá áááŻá¸ááŹá¸á á˝áŹ ááŻááşááąáŹááşááźááşá¸ áááŻáˇáááŻááş áĄááźááşáĄáážááşáĄáŹá¸ááźááˇáş á¤áĄáááşá¸áĄááźá áşááťáŹá¸ááᯠá áŽááśáááˇáşáá˝á˛áááş ááŹáááşááźá áşááŹáááşá ááŽáááŻááşá¸ááŻááşááŹá¸áááşá
CPU virtualization
áĄáąáŹááşááŤáĄá
áŽáĄá
ááşááᯠá
ááşá¸á
áŹá¸ááŤá
(https://www.youtube.com/watch?v=zDwT5fUcki4)
áááşá¸áááş áááşáááˇáş áĄáá°á¸ááŻááşááąáŹááşááťááşááťáŹá¸áááŻááťáž ááŻááşááąáŹááşááźááşá¸ááážáááŤá áĄáážááşáážáŹ áááşá¸ááŻááşááąáŹááşáááťážáááş ááŻááşááąáŹááşááťááşáá
áşááŻááŻááąáŤáşáááŻááźááşá¸ááźá
áşáááşá ááťááşáááş() áááŹáááşáážáŹ áá
áşá
áášáááˇáşáá˝ááşááźáŽá¸ááąáŹááş áĄááťáááşá
á
áşááąá¸ááźáŽá¸ ááźááşáááşááźá
áşáááşá áááŻáˇááźáąáŹááˇáşá áááşá¸áááş áĄááŻáśá¸ááźáŻáá°áĄáŹá¸ áĄááźááşá¸áĄááŻáśáá
áşááŻáĄááźá
áş ááźááşáá˝áŹá¸ááąáŹ á
áŹááźáąáŹááşá¸ááᯠáĄáááˇáşáĄáááşááážá ááźááşááŻááşáááşá
ááŽááááŻááááşááᯠrun ááźáŽá¸ argument áĄááźá áş "A" ááᯠááťáąáŹáşáááŻááşááźááĄáąáŹááşá ááááşáááş áĄáá°á¸á áááşáááşá áŹá¸á ááŹáááŻááşá፠- á áá áşáááş ááŹááşááąáŹááş "A" ááᯠáĄááŤáĄáŹá¸ááťáąáŹáşá á˝áŹ ááźááááˇáş ááááŻááááşáá áşááŻááᯠáááŻá¸áááŻá¸áážááşá¸áážááşá¸ ááŻááşááąáŹááşáááşá
ááᯠáá°ááŽááąáŹ ááááŻááááşááťáŹá¸á á˝áŹááᯠááŻááşááąáŹááşááąááąáŹáşáááşá¸ áááŻáááŻáážááşá¸áááşá¸á áąáááş á áŹááŻáśá¸áĄááťááŻá¸ááťááŻá¸ááᯠááŻááşááŻááşáááˇáşáĄá፠áá˝áąá¸ááťááşáážáŻááᯠá ááşá¸ááźááˇáşááźááŤá ááŻáˇá á¤ááá ášá áá˝ááşá ááááşáááşáĄáááşá¸áááşáá˝á˛ááźáŹá¸ááááˇáşáááşá ááťá˝ááşáŻááşáááŻáˇáá˝ááş ááááŻáááşááŹáá áşááŻáážáááąáŹáşáááşá¸á ááááŻááááşááᯠáá áşááźááŻááşáááşááŻááşááąáŹááşáááşá áááşáááŻááźá áşááŹáá˛? ááŤááąáááˇáş ááŹáˇááşáá˛áá˛áˇ á á˝ááşá¸ááąáŹááşáááŻááşáááşáĄáá°áĄááŽáááŤáᲠáááşáááşáážáŻá áá áşáᏠáááşááąáŹááşáááşáážáŹá¸ááźá áşá áąáá˛áˇ áĄááŹáá áşáᯠáááşááŽá¸ááąá¸ááźáąáŹááşá¸ áá˝ááşááąáŤáşááŹááŤáááşá á áá áşáá˝ááş ááááŻáááşááŹáĄááťáŹá¸áĄááźáŹá¸áážáá ááŻááşáááŻááşá¸áááŻááşááŹááááŻáááşááŹáá áşááŻáááşá¸ááᯠááŽáĄááŻááŽáĄá áĄáááˇáşáĄáááşááážáááąáŹ áĄááąáĄáá˝ááşáĄááźá áş ááźáąáŹááşá¸áá˛áᏠáá áşááźááŻááşáááşááŻáááşáááąáŹ ááááŻááááşááťáŹá¸ááᯠááŻááşááąáŹááşáááŻááşá áąáááşáᯠáááşááąáŹááşáááşáážáŹá¸ááźá áşá áąáááşá ááŤááᯠááášááŹááááŻáˇ ááąáŤáşáááşá CPU virtualization.
á¤ááŻáśáá˝ááş ááááŻááááşááťáŹá¸á á˝áŹááᯠáá áşááźááŻááşáááşáááşá¸ ááŻááşááąáŹááşáááŻááŤáá áááşáááˇáşáĄááŹááᯠá áááşááŻááşááąáŹááşáááşáááşá¸á OS á "áá°ááŤáááťáŹá¸" áááş á¤ááąá¸áá˝ááşá¸áĄáá˝ááş ááŹáááşáážáááŤáááşá áá°ááŤáááťáŹá¸ááᯠOS áážá ááąááŹááťáŹá¸á á˝áŹáá˝ááş áĄááŻáśá¸ááźáŻááźáŽá¸ á¤áá˛áˇáááŻáˇááąáŹ ááąá¸áá˝ááşá¸ááťáŹá¸ááᯠááźáąááąá¸áᏠOS áĄááąáŹááşáĄáááşááąáŹáşáááˇáş áĄááźáąááś ááášáááŹá¸ááťáŹá¸ááźá áşáááşá áááŻáˇááźáąáŹááˇáş OS á áĄáááşá¸ááášááááş áĄáááşá¸áĄááźá áşáááşááąááťáŹáĄááźá áş áážááááşá
Memory virtualization
áᲠMemory áááŻááźááˇáşááĄáąáŹááşá ááąááşááŽá áá áşááťáŹá¸áá˝ááş memory áááŻááşáááŻááşá¸áááŻááşááŹááŻáśá áśááᯠbytes á array áá áşááŻáĄááźá áşáááŻááşá áŹá¸ááźáŻáááşá. Memory áážáááşáááşá áááşáááşáážááşáááşáááŻáĄááşáááşá áá˛ááşááááşá áŹáááşááąáŹááşáááşá ááąááŹááᯠááąá¸áááş áááŻáˇáááŻááş áĄááşááááşááŻááşáááşá áááşá¸ááᯠááąá¸ááááˇáşááąááŹáá˝ááş áá˛ááşá ááąááŹáážááˇáş ááááşá áŹáááŻáááşá¸ áááş áááşáážááşáááŤáááşá
ááááŻááááşááŻááşááąáŹááşááąá ááşáĄáá˝ááşá¸ Memory áááş áĄáááşáááźááşáááşááąáŹááşááąááŤáááşá ááááŻááááşáá áşááŻáááş áááşá¸áááąááŹáá˝á˛áˇá ááşá¸ááŻáśáá áşááŻááŻáśá¸ááᯠmemory áá˝ááşááááşá¸áááşá¸ááźáŽá¸ áá˝ážááşááźáŹá¸ááťááşáĄááťááŻá¸ááťááŻá¸áááŻááŻááşááąáŹááşááźááşá¸ááźááˇáş áááşá¸áááŻáááşááąáŹááşááźááˇáşáážáŻáááşá áá˝ážááşááźáŹá¸ááťááşááťáŹá¸ááᯠMemory áá˛áá˝ááşáááşá¸ ááááşá¸áááşá¸ááŹá¸ááąáŹááźáąáŹááˇáş ááąáŹááşáá˝ážááşááźáŹá¸ááťááşáĄáá˝ááş ááąáŹááşá¸áááŻáážáŻáá áşááŻá áŽáĄáá˝ááş áááşá¸ááᯠáááşááąáŹááşááźááˇáşáážáŻáááŻááşáááşááźá áşáááşá
malloc() ááąáŤáşáááşá
ááąáŤáşáááŻáážáŻááᯠáĄááŻáśá¸ááźáŻá áááşáááŻááŽá á§ááááŹááᯠáá˝á˛ááąááąá¸áááˇáş áĄáąáŹááşááŤááááŻááááşááᯠááŻáśá¸áááşááźááˇáşááŤá malloc () (https://youtu.be/jnlKRnoT1m0):
ááááŻááááşáááş áĄááŹááťáŹá¸á
á˝áŹááᯠááŻááşááąáŹááşáááşá ááááŚá¸á
á˝áŹá áááşá¸áááş áááşáááŻááŽáĄááťááŻáˇ (áááŻááşá¸ 7) ááᯠáá˝á˛ááąááąá¸áááşá áááŻáˇááąáŹááş áá˝á˛ááąááťááŹá¸ááąá¸áááˇáşáá˛ááş (áááŻááşá¸ 9) áááááşá
áŹááᯠááááˇáşááŻááşááŹá áá˝á˛ááąááťááŹá¸ááąá¸ááąáŹ áááşáááŻááŽá ááááĄáááŻááşáááŻáˇ ááŻáááŻááąá¸áááşá áááŻáˇááąáŹááşá ááááŻááááşáááş âpâ variable áážá ááááşá
áŹáá˝ááş áážááşááŹááşáá˝ááş ááááşá¸áááşá¸ááŹá¸ááąáŹ áááşáááŻá¸ááᯠáááŻá¸ááąá¸áááˇáş áá˝ááşá¸áááşáá
áşááŻáááŻáˇ áááşááąáŹááşáááşá áááşá¸áááş áááşá¸áááŻááşáááŻááşá ááŻááşáááşá¸á
ááş ID ááᯠááááˇáşááŻááşáááşá ááŻááşáááşá¸á
ááş ID áááş ááŻááşááąáŹááşááąáááˇáş ááŻááşáááşá¸á
ááşáá
áşááŻá
áŽáĄáá˝ááş ááŽá¸áááˇáşááźá
áşáááşá. áááášáá°ááťáŹá¸á
á˝áŹááᯠááŻááşáá˝ážááşáááŻááşááźááşá¸ááźááˇáş ááťá˝ááşáŻááşáááŻáˇáááş á
áááşáááşá
áŹá¸á
ááŹááąáŹááşá¸ááąáŹ ááááşááᯠáĄáśááŻááááááˇáşáááş- áááááá
ášá
áá˝ááşá áááşáááş ááŹáážáááŻááşáᲠáááášáá°ááťáŹá¸á
á˝áŹááᯠáá˝ááˇáşáááŻááşááťážááş ááááşá
áŹááťáŹá¸áááş áá˝á˛ááźáŹá¸áá˝áŹá¸ááŤáááşá ááŤááąáááˇáş ááŤá ááťá˝ááşááąáŹáşáááŻáˇáá˛áˇ ááŽáĄááŻááŽáĄáąáŹááşáážáŹ áááťááŤáá°á¸á ááąááşááŽááźááˇáşááąáážáŻááťáŹá¸áá˝ááş ááŻáśáážááşáĄáŹá¸ááźááˇáş áááşáááŻááŽááťáááşá¸ááŻááşááąáŹááşááźááşá¸ááᯠáá˝ááˇáşááŹá¸ááąáŹááźáąáŹááˇáş áážááşááŤáááşá áááşá¸ááᯠááááşááŤá ááťá˝ááşáŻááşáááŻáˇ ááťážáąáŹáşáááˇáşááŹá¸áááˇáş ááááşááᯠááážááááş - áá
áşááźááŻááşáááş ááŻááşááąáŹááşááąáááˇáş ááááŻááááşáážá
áşááŻá áážááşááŹááşááááşá
áŹááťáŹá¸áááş áá°ááŽáááşááźá
áşáááşá
ááááşáĄááąáážááˇáşá áá˝ááşáááşááąáŹááááŻááááşáážá
áşááŻáááş áááşá¸áááŻáˇááááŻááşáááŻááşááááşá
áŹááąááŹááťáŹá¸áážááˇáşáĄáá° áĄááŻááşááŻááşááźáąáŹááşá¸á áááşá¸áááş áááşá¸ááᯠááŻááşáááŻááşá¸áááŻááşááŹáážááşááŹááşáá˝ááş áááşáááşáážáŻá
áá
áşááźááˇáş ááŻáśááąáŹáşááŹá¸áááşá. áááŻáˇááźáąáŹááˇáş ááááŻááááşáá
áşááŻáĄáá˝ááşá¸áážá memory ááááşá
áŹááťáŹá¸áááŻáĄááŻáśá¸ááźáŻááźááşá¸áááş áĄááźáŹá¸áááşáááˇáşáááşá¸ááźááˇáşááťáž áááááŻááşáááşáááŻááşááźáąáŹááşá¸á ááááŻááááşáá
áşááŻá
áŽáá˝ááş áááşá¸ááááŻááşáááŻááşáážááşááŹááşáĄáááŻááşá¸ááᯠááŻáśá¸ááŻáśá¸ááťáŹá¸ááťáŹá¸ááąá¸ááŹá¸ááŻáśááááşá áááŻáˇááąáŹáş áááşáá˝áąáˇáá˝ááş ááŻááşáááŻááşá¸áááŻááşááŹáážááşááŹááşáááş áááşáááşáážáŻá
áá
áşááž á
áŽááśáááˇáşáá˝á˛áááˇáş ááťážááąáĄáááşá¸áĄááźá
áşáá
áşááŻááźá
áşáááşá
áážáąáˇááąáŹááşááŽáá˝ááşáážáŻ
áááşáááşáážáŻá áá áşááťáŹá¸áĄáá˝ááşá¸ áĄááąá¸ááŤááąáŹ áĄááźáąáŹááşá¸áĄááŹááťáŹá¸áĄáááş ááąáŹááşáá áşááŻáážáŹ - ááŽáá˝ááşáážáŻ. á¤áĄááŻáśá¸áĄáážáŻááşá¸áááş áá°ááŽááąáŹááááŻááááşáá áşááŻáĄáá˝ááşá¸ áĄááŹááťáŹá¸á á˝áŹááᯠáááźááŻááşáááşáááşá¸ ááŻááşááąáŹááşáááˇáşáĄááŤáá˝ááş ááźá áşááąáŤáşáááŻááşááąáŹ á áá áşáážá ááźáżááŹááťáŹá¸áĄááźáąáŹááşá¸ ááźáąáŹááąáŹáĄááŤáá˝ááş á¤áĄááŻáśá¸áĄáážáŻááşá¸ááᯠáĄááŻáśá¸ááźáŻáááşá áááşáááşáážáŻá áá áşáĄáá˝ááşá¸ááááş ááŽáá˝ááşáážáŻááźáżááŹááťáŹá¸ ááąáŤáşááąáŤááşááŹáááşá ááááş memory áážááˇáş processor virtualization áĽáááŹááťáŹá¸áá˝ááşá OS áááş áĄááŹááťáŹá¸á á˝áŹááᯠáá áşááźááŻááşáááşáááşá¸ á áŽááśáááˇáşáá˝á˛ááźáąáŹááşá¸ ááťá˝ááşáŻááşáááŻáˇ áááąáŹááąáŤááşáááş - áááşá¸áááş áááááŻááşáááşá¸á ááşááᯠá áááşáááşá áááŻáˇááąáŹááş ááŻáááá á áááşááźááˇáşá áá˝ááşááąáŤáşááŹáááˇáşáĄáááŻááşá¸ á¤áĄááźáŻáĄáá°áááş ááźáżááŹáĄááťááŻáˇááᯠáŚá¸áááşáá˝áŹá¸á áąáááŻááşáááşá áááŻáˇááźáąáŹááˇáş áĽáááŹáĄáŹá¸ááźááˇáş ááąááşááŽááąáŹ ááźááŻá¸ááťááŻá¸á áŻáś ááááŻááááşááťáŹá¸áááş áááŻáá˛áˇáááŻáˇááąáŹ áĄáááşáĄáá˛ááťáŹá¸ááᯠáá˝áąáˇááźáŻáśááśá áŹá¸ááááşá
áĄáąáŹááşááŤáĄá áŽáĄá ááşááᯠá ááşá¸á áŹá¸ááŤá
áááşáááŻááşááąáŹááşááťááşáážá ááááŻááááşáááş ááąáŤáşáááŻáážáŻááᯠáĄááŻáśá¸ááźáŻá á
áŹáá˝á˛áážá
áşááŻááᯠáááşááŽá¸áááşá pthread_create(). á¤áĽáááŹáá˝ááşá thread áá
áşááŻáĄáŹá¸ áĄááźáŹá¸ááŻááşááąáŹááşááťááşááťáŹá¸áážááˇáşáĄáá° áá°ááŽááąáŹ memory space áá˝ááş ááŻááşááąáŹááşááąáááˇáş function áá
áşááŻáĄááźá
áş áá°ááááŻááşááźáŽá¸á áá
áşááťáááşáááşá¸áá˝ááş function áá
áşááŻáááşáááŻá ááŻááşááąáŹááşááąááŤáááşá á¤áĽáááŹáá˝ááşá thread áá
áşááŻá
áŽáááş ááŻááşááąáŹááşááťááşááᯠá
áááşááźáŽá¸ ááŻááşááąáŹááşáááşá worker() áááş variable áááŻáááŻá¸áážááşá¸á
á˝áŹáááŻá¸á
áąáááşá,.
áĄááźááşá¸áĄááŻáś 1000 ááźááˇáş á¤ááááŻááááşááᯠrun ááźááŤá ááŻáˇá áááş áááˇáşáážááşá¸ááŹá¸áááˇáşáĄáááŻááşá¸á ááźááŻá¸áá áşááŻá áŽáááş ááááşá¸áážááşááᯠáĄááźáááş 2000 áááŻá¸ááŹá¸ááąáŹááźáąáŹááˇáş ááááşáááş 1000 ááźá áşáááˇáşáááşá áááŻáˇááąáŹáşá áĄááŹáĄáŹá¸ááŻáśá¸áááş á¤ááťážááąáŹááşááááŻá¸áážááşá¸ááŤá áááşááŤáááşá፠áááşááŤáááşá፠ááźááşá¸áĄáŹá¸áĄá áŽáĄá áĽáşááźááˇáş ááááŻááááşááᯠrun ááźááŤá ááŻáˇá
áĽáááŹá 100000 ááᯠááááşá¸áá
áşááŻáááˇáşáá˝ááşá¸ááźááşá¸ááźááˇáşá áĄáá˝ááşááᯠááśááŤááş 200000 áĄááźá
áşááźááşááááşáᯠááťá˝ááşáŻááşáááŻáˇ ááťážáąáŹáşáááˇáşááŤáááşá áááŻáˇááąáŹáşá ááťá˝ááşáŻááşáááŻáˇáááş ááśááŤááş 100000 ááᯠáĄááźáááşááťáŹá¸á
á˝áŹ run ááŤá áĄááźáąáážááşááᯠááźááşááŻáśáááşáááᲠáĄááťááŻá¸ááťááŻá¸ááąáŹ áážáŹá¸áá˝ááşá¸ááąáŹ áĄááźáąááťáŹá¸áááŻáááşá¸ ááážááááşááźá
áşáááşá ááááşá¸ááááşá¸ááᯠáááŻá¸ááźážááˇáşáááşáĄáá˝ááş ááŻááşááąáŹááşááťááşááŻáśá¸ááťááŻá¸ áááŻáĄááşáááş - áážááşááŹááşááž ááśááŤááşááᯠááŻááşáá°ááźááşá¸á áááŻá¸ááźááşá¸áážááˇáş ááśááŤááşááᯠááźááşááąá¸ááźááşá¸ á
áááˇáşáĄááťááşáá˝ááş áĄááźáąáážáŹ áĄááťáŻáśá¸áááşááŤáááşá á¤áá˝ážááşááźáŹá¸ááťááşáĄáŹá¸ááŻáśá¸ááᯠáĄááşáááşáááşá¸áĄá (áĄáŹá¸ááŻáśá¸áá
áşááźááŻááşáááşáááşá¸) ááŻááşááąáŹááşááźááşá¸áááŻááşááąáŹááźáąáŹááˇáşá á¤áá˛áˇáááŻáˇááąáŹ áá°á¸áááşá¸áááˇáşáĄááŹááťáŹá¸ ááźá
áşáá˝áŹá¸áááŻááşáááşá á¤ááźáżááŹááᯠprogramming ááŻááąáŤáşáááşá ááźááŻááşáá˝á˛áĄááźáąáĄááą. áááááąáŹáĄáááŻááşáĄáááˇáşáá˝ááş áĄááťááŻá¸áĄáááşáááááąáŹ áááşáá˝á˛áˇááťáŹá¸áááş áááşá ááŻááşááąáŹááşááťááşáá
áşááŻááŻá á
á˝ááşá¸ááąáŹááşáááşááᯠáááááŻááşá
áąáááŻááşáááşá
source: www.habr.com