ααΆαααααΆαα’αααΈααααααααααααα·ααααα·ααΆα
α αα α! αααα»αα
ααααΆαααααΆαααα
α·ααααα»αααΆααααααα’αααααΌααααααΈααα’ααααα-ααΆαααααααααα’αααααα·αααααα½αα±ααα
αΆααα’αΆαααααααα½ααα
αααα»ααααα·ααααααααα»α - OSTEP α αααααΆααααααα·ααΆααααΆαααΆααααΈααααα
α’αααΈααΆαααΆαααααααααααααααααα·ααααα·ααΆαααΌα
ααΌααΈα αααααΊααααΎααΆαααΆαα½αααααΎαααΆα αααααα·ααΈαααααααααααααα α’αααα
αα
αΆα αα·ααααΆαααΆαα»ααααααααααΆααααααααααααααααΎαααΆααααααααααααα·ααααα·ααΆαααααΎαα α’αααα’αΆα
ααΎαααΎαααΎααααααααΆααααΆααα’αααα
ααΈααα
ααΆαααΆααααααΈααα·αααααααΎαααααΆααααααα’αΆα ααααΆααα ααΈαααα
- ααΎαα
pages.cs.wisc.edu/~remzi/OSTEP/Homework/homework.html - ααΎαα
github.com/remzi-arpacidusseau/ostep-code - ααΆαααααααααα½αααααΆαααααα½ααααααααα»αα
github.com/bykvaadm/OS/tree/master/ostep
α’αααααα’αΆα
αα·αα·αααααΎαααΆααααααααααα»ααα
ααααα·ααααα·ααΆααααααα·ααΈ
ααΎααΆαα’αααΈααΎαα‘αΎααα αααααααααααα·ααΈαααα»αααααΎαααΆα? αααααα·ααΈααααααα»αααααΎαααΆαααααΎααΏαααΆαααααα½α - ααΆααααα·ααααα·ααΆαααααΆαα ααΆαααααΆαααα·ααΆααΈ ααΆαααααΆαααΆααααΆα αα·αααΌααααΈααααΆααααΆααααΆαααααΌαααΆαααΆαααααα processor ααΈ RAM αααααααααΆαα·ααΌααα½αααΆ (α§ααΆα ααα ααΆααα½αααααΆααααααααααΆαααααΆαααΆαααααααΆαααααα·αααα·) α αΎαααααα·ααααα·αα½αααΆα αααα’αΆα ααΆααΆααααααααααααΈα α αΌαααααΎα’αααα αα αΆα αα·αα·ααααααααααα ααααα αα»αααΆα ααΆααΎαα αααααΆααααΈααΆαααααα·ααααα·ααααΆαααααΆααα½α processor αααααα ααααα·ααααα·ααααα ααααΈααααΆααα½ααααα ααΌα ααααα αΎα ααΆαααααΆααααααΆααααΈααΆαααααΆα αα½αααααααΌαααΆαααααα·ααααα·αα αΌαααααααααα·ααΈαααα ααα
α§ααΆα ααααααααααΌαααΆαα αΆαααα»αααΆααΆαααα - ααΆααΆααα·α ααΎααααΈαααααΎαααααΏαααααΎαααΆα ααααΏαααΉαααααΎαα’αα»ααααΆαα±ααα’αααααααα·ααααα·ααΆαααααΆαα ααααΈααα ααααΆαααααααααα’αΆα ααααΎααΆα ααααα·ααααα·ααΆαααααΆααααα»ααααααααΆαααααΆ αα·ααααα·α ααααααααααΆα
Von Neumann ααααΌααααΆαααααΆ
ααααααααΆααααααααΆαααΆααααααΆααα·αααααΆααααα½αααΎαααΊαααααααα ααΉαααααΌ Von Neumann ααααΆαααααΆα ααα Von Neumann ααΊααΆα’ααααααα½αααααΆαααααΌααααααααααααα»αααααΌααα α αΎαααΆααααααΆα’ααααα·ααααααααΆααααααααΉααααΈα αααα. ααααααααααααααα·ααΈαααα»αααααΎαααΆα ααααΉαααα·ααΆαααααΆα αααΎαααααααααααΎαα‘αΎα ααααΎαααΆαααααααααααΆα αααΎα αα·αααΆαααΆααααααα·ααααΆααΆααΈααΈααΈ αααααααααααΆααααΊααααΎα±ααααΆαααΎαααααΎαααΆα ααααα·ααααα·ααΆα αα·αααΆαααααΆαααααααααααΆαααΆαααΆααααα
ααΆααααα»ααααααααα·ααΈαααααα½ααα»αααααΌααααα»αααΆαααααΎα±αααααααα·ααΈααΆααααα½αααααΎαααΆα (α¬ααΌααααΈααα’αα»ααααΆαα±αααααααα·ααΈααΆα αααΎαααααΎαααΆααααα»αααααααα½α) αααα’αα»ααααΆαα±αααααααα·ααΈα αααααααα’αααα αα αΆαααΌα ααααΆ αα·αααααΆααααααααΆαα½αα§αααααααααααα αααα»ααααααααα·ααΈ (Software) ααααααααααΌαααΆαααα α ααΆααΆααααααααααααα·ααααα·ααΆαααααααΆαα α αΎαααΆααα·α αα ααααααΆαα½αααΆαααΆααααα½ααα·αα·αααααΆααααααααααααΎαααΆαααΆαααααΉαααααΌα αα·αααΆαααααα·αααααΆα ααααΌα ααΆααΆαααΆααΆααΆααααααααααΆαααΆαααΆααααα½ααααα»αααΆααααααααααα
ααααααααααααα·ααααα·ααΆα
ααααααααααααα·ααααα·ααΆα α’ααααααΆααααΆ OS ααΊααΆαααα»ααααααααα·ααΈαααααΆααααααααΆαααααααΌαααΆααα ααΆα‘αΎαααΎααααΈαααααααααααααΆααα»αααααΌααα αα·ααααα αα’ααααααααα’αααααααΎααααΆααααΆαα½ααα»αααααΌαααα.
ααααααααααααα·ααααα·ααΆααααααα ααΆαααΌαααααα·αααααΆαααααααΆαα ααααααααααΌαααΆαααααα αα αααααααααΆαααααα»α - αα αα ααααα αα·αααα·α. ααααααααααααα·ααααα·ααΆαααΆαα’ααααααααααΆαα½αααααΆαααΌααααα (α§αααααααααΎαααΆα α’αααα αα αΆα ααΆαα ααΌα αααααααααΆααααΆααααααΉαααΌαα α’αααα’αΆα ααααααααααααααααααααα·ααααα·ααΆαααΆαα½ααααΆαααΈααα·αααα·αα
ααΎααααΈα’αα»ααααΆαα±ααα’αααααααΎαααααααΆααααααααΆαα ααααααααααααα·ααααα·ααΆα α αΎαααΌα ααααααααΎαααααααΆααααααααΆαααΈααα·αααα·α (ααΌα ααΆααΆαααααΎαααΆααααααα·ααΈ ααΆααααα ααα’αααα αα αΆα ααΆαα αΌαααααΎα―αααΆαααΆααΎα) ααααααααααααα·ααααα·ααΆααααααααΌαα ααα»α αααααΆαααα½αα ααα½ααααα α ααΆ ααΆα API (α ααα»α αααααΆαααααααα·ααΈαααααα·ααΈ) αα·ααααα’αααα’αΆα ααααΎααΆαα α (call) α ααααααααααααα·ααααα·ααΆαααααααΆα’αα»ααααΆαα±ααααΆαααΆαα α ααααααααααΆααααα
ααΆα α»αααααα αααααΆααα·αααα·αα’αα»ααααΆαα±αααααααα·ααΈααΆα αααΎαααααΎαααΆα (ααΌα ααααα ααααααααααΈααΈααΌ) α αΎααααα»ααααααααΆαααααΆα αΌαααααΎααΆαααααΆα αα·ααα·αααααααααααα½ααα (ααΌα ααααααΆαα αααααααα’αααα αα αΆα) αα·αααΆαα αΌαααααΎααΆα (ααΌα ααααααΆαα αααααααα§ααααα I/O) ααααααααααααα·ααααα·ααΆαααααααΌαααΆαααα α ααΆ α’ααααααααααααααααΆαα αα½αααααΆα ααΆα αα·αα’αααα αα αΆαααΈαα½ααααΊααΆααααΆααααααααααα α αΎαααΌα αααααα½ααΆααΈαα½αααααααααααααααα·ααααα·ααΆαααααΆαααΆααΆααα·α αα ααααΆααααααααααααααΆαααΆααααα αααααααΎααΆα±ααααΆαααααα·αααααΆα αααααααααα α¬αααα»ααααα·α α’αΆαααααααΎααΆααα·α αα αααααααααααααααα·ααααα·ααΆαααα ααααΌαααΆααα ααΆα‘αΎαα
αααΈααΈααΌαα·αααα·α
αα·α
αΆαααΆαααααα·ααΈααΆααααααα
(https://www.youtube.com/watch?v=zDwT5fUcki4)
ααΆαα·αα’αα»αααααααααααΆααα·αααααΆαα½ααα ααΆααα·α α’αααΈααΆααα’αααααααΆααααΎααΊα α
ααΆαα»αααΆα ααααα·α() αααααΆααα·α
αα
ααΊααααΌαααααααΆααααΆααααα½ααα·αα·ααααααααααΆ α αΎααααααααααα·ααααααΆααααΈαα½ααα·ααΆααΈααΆαααααααα»ααα
α ααΌα
αααα ααΆααααΎααααααααααααααΆααααααααΌαααααα’αααααααα’αααααααΎααααΆααααΆαααααααΆααααΆα’αΆαα»αααααα
α αΌαβααααΎαααΆαβαααααα·ααΈβαααβα αΎαβα α»α βαα½α’αααα "A" ααΆβα’αΆαα»αααααα ααααααααΊαα·ααα½αα±ααα αΆααα’αΆααααααααΆαα·ααα - ααααααααααααΆααααααααΎαααΆααααααα·ααΈααααααα αΆααα½α’αααα "A" ααΆαααααΆααα
α₯α‘αΌαααα ααΌαααΆααααααααααΎα αα αααααααααααα·ααΈααΌα ααααΆααΆα αααΎααααα»αααααΎαααΆα ααα»ααααααΆαα ααα’αααααααααααααΆααΎααααΈααααΎα±ααααΆααΆααααα αααΆααα αααα»αααααΈαααααααααααΉααα»αααααΆααααα αααααΈααΆααΆααα·ααααααΆααΎαααΆααα½αααααΆααααα½αααααααααααααα·ααΈααααΌαααΆαααααα·ααααα·αααα»ααααααααΆαααααΆα ααΎααΆααΎαα‘αΎααααααααααΆ? ααα»ααααααΆααααααΆααααααααααααα·ααααα·ααΆααα·αααααααααααΆααααα½αααΈαααααααΆααααααααΉααααααΎαααΆαααααΆααα ααΆαααααΆααααΆααααααααααΆα processors αα·αααα·αα αααΎα ααααααααΆα processor ααΆαααΆααααα½ααα ααΆα ααα½αααααΆααααααααΆαααααΉααααΈ α αΎααααα ααα»αααα’αα»ααααΆαα±αααααααα·ααΈα αΆααααΌα ααΆααααΎαααΆααααα»ααααααααΆαααααΆα ααΆαααααΆαααααααααΌαααΆαααα α ααΆ αααΈααΈααΌαα·αααα·α.
ααΌαααΆααααα ααααΆαααα½αααΆα αααΎα α§ααΆα αααααΆ ααααα·αααΎαααααα·ααΈααΆα αααΎαα ααααααΎαααΆααααα»αααααααα½α ααΎαααααα·ααΈαα½αααΆααΉαααααΌαααΎαααααΎαααΆα? "αααααΆααα" αααα OS ααα½ααα»αααααΌαα αααααααα½ααααα αααααΆαααααααΌαααΆαααααΎααααΆαααα ααααααααΆα αααΎααα αααα»α OS α αΎαααααΎααααα½αααΌα ααα α αΎαααΆααααααΆαααΌαααααΆαααα OS α’αα»ααααα ααΌα αααααα½ααΆααΈαααα OS ααΆα’ααααααααααααααααΆαα
ααα·αα·αααα·α
α₯α‘αΌααααααΌααααα‘ααααΎαααΆαα αα αΆαα ααααΌααΌαααααααα’αααα αα αΆααα αααα»αααααααααααααΎαααααΌαααΆαααααΆαααΆα’αΆααααααα. ααΎααααΈα’αΆαααΈα’αααα αα αΆαα’αααααααΌααααααΆαα α’αΆααααααΆααααα‘αΆααΎααααΈα αΌαααααΎααΆα ααΎααααΈααααα α¬ααααΎαα αα α»ααααααααΆααα·αααααα α’αααααααααΌααααααΆαααα·αααααα αα·αα’αΆααααααΆααααααααα‘αΆαααααααΌαααααααααααα
α’αααα αα αΆαααααΌαααΆαα αΌαααααΎαααΆαα₯ααααααααα‘α»ααααααααΎαααΆααααααα·ααΈα αααααα·ααΈαα½ααααααΆαα»ααα ααΆαααααααααα·ααααααααΆααααΌαααααααΆαα αααα»αα’αααα αα αΆα α αΎαα αΌαααααΎααΆαααααααα·ααααα·ααΆαααααΆαααααααα αααααΉαααΉαααα ααΆαααααΆαααααααΌαααΆααααααΆαα»ααααα»αα’αααα αα αΆαααααα ααΌα ααααααΆααααααΌαααΆαα αΌαααααΎαααααΆααααααΎααΈαα½αααααααΆααααΆαααααΆααααααΆααα
malloc() α α
αα·α αΆαααΆαααααα·ααΈααΆαααααα ααααααα αααααααααα’αααα αα αΆααααααααΎααΆαα α ααΌααααα malloc () (https://youtu.be/jnlKRnoT1m0)α
αααααα·ααΈαααααααΎαα·α
αα
ααΆαααΆα
αααΎαα ααααΌαααΆαααα
ααα’αααα
αα
αΆααα½αα
ααα½α (αααααΆααααΈ 7) αααααΆααααααααα»αααα’αΆααααααΆααααααα‘αΆαααααΆααααα
αα (αααααΆααααΈ 9) ααααααααααΌααααα
αααααααααΈαα½αααα’αααα
αα
αΆααααααΆααααα
ααα αααααΆαααααααααα·ααΈα
αΌααα
αααα»αααααα·ααα»ααααααΆαααααΎααααααααααααααΆαα»ααααα»αα’αααα
αα
αΆααα
α’αΆααααααΆααα
αααα»αα’ααα "p" α ααΆααααααα»αααααααααααΆααααααΎαααΆαααααααα½αα―ααααααα ααααααααΆααααααΎαααΆαααΊααΆααααα½αααααααααΆααααααΎαααΆαααααααα»αααααΎαααΆαααΈαα½αα. αααααΆαααΎαααααΎαααΆαα
αααΆααα
ααααααΆα
αααΎα ααΎαααΉαααααααα½αααΎαααααααα½αα±ααα
αΆααα’αΆαααααααα½αα αααα»αααααΈααααΌα ααααα·αααΎα’ααααα·αααααΎα’αααΈααα α αΎαααααΆααααααααΎαααΆαα
αααΆααα
ααααααΆα
αααΎα αααα’αΆααααααΆαααΉααα»αααααΆα ααα»ααααααααα·ααααα·ααα
αααααααααΉααααΈααααααΎααα! ααααΉαααααΌα α
αΆααααΆααααΈααΆαα
ααα
αΆαααααΎαααΆαα’αααα
αα
αΆαα
αααααααααΌαααΆαααΎαααΆαααααΆαααΎαα ααααα·αααΎααΆααααΌαααΆααα·α ααΎαααα½αααΆααααααααααααααΉααα»α - α’αΆααααααΆαα’αααα
αα
αΆααααααααα·ααΈααΈαααααααα»αααααΎαααΆααααα»ααααααααΆαααααΆααΉαααααΌαααααΆα
ααΆαααααα ααΆαααα αΆαααΆαααααα·ααΈα―αααΆαααααΈαααααΎαααΆαααΆαα½αα
αααααα’αΆααααααΆαα―αααααααΆαααααα½ααααααα½ααα ααααα
αααα»ααααααααΌαααΆαααΌααααααΈαααααααααααααααα·ααααα·ααΆααα
αααα»αα’αααα
αα
αΆαααΌαααααα. ααΌα
αααα ααΆαααααΎααααΆααα’αΆααααααΆαα’αααα
αα
αΆααααα»ααααααα·ααΈαα½αααΉααα·ααααααΆαααααα’ααααααααΆααααααααΆαααΆαα½αα‘αΎα α αΎαααΆα αΆααααΈααΌα
ααΆαααααα·ααΈααΈαα½αααααααΆααΆαα’αααα
αα
αΆαααΌαααααααααΆαααααα½α αααααααΌαααΆααααααα±ααααΆααΆαααααα»αα αααααΆαααΆαααΆααααα ααΆααα·αααΊααΆ α’αααα
αα
αΆαααΌααααα ααΊααΆααααΆαα
ααααααααααααααααααααααααααααααααααα·ααααα·ααΆαα
ααΆαααΆααααΆαα
αααααΆαααααααΆαααα½αααααα αααα»αααααααααααααα·ααααα·ααΆαααΊ β ααΆααααα·αααααα. ααΆααααααααααΌαααΆαααααΎαα ααααα·ααΆαα’αααΈαααα αΆαα αααα»ααααααααααααα’αΆα ααΎαα‘αΎααα αααααααΎααΆαααΆαα½αα’αααΈαααΆα αααΎααααα»αααααααα½ααααα»ααααααα·ααΈαααα½αα αααα αΆααααΆααααΈαααααΆααααααΆααΎαα‘αΎαααΌααααΈαααα αααα»αααααααααααααα·ααααα·ααΆααααα½αα―ααααααα αα αααα»αα§ααΆα ααααα»αααα’αααα αα αΆα αα·αααααΎαααΆααα·αααα·α ααΎαααΆαααΉαααΆ OS αααααααααα’αααΈαααΆα αααΎααααα»αααααααα½α - ααΆα αΆααααααΎαααααΎαααΆαααααΌα αααααΆααααααΈααΈα α αΎαααΌα αααααα ααΎα ααΌα αααααΆααΆαααααααααΆαα₯αα·ααΆαααααα’αΆα ααΆαα±ααααΆααααα αΆαα½αα ααα½αα ααΌα αααα ααΆα§ααΆα ααα αααααα·ααΈαα α»αααααααα‘αΆαααααΎααα½ααααααααΆαααααΆαααααααα
αα·α αΆαααΆαααααα·ααΈααΆααααααα
αααααα·ααΈαα
αααα»ααα»αααΆαα
αααααααααΎααααααααα‘αΆαααΈααααααααΎααΆαα α
pthread_create(). αααα»αα§ααΆα αααααα αααααααα‘αΆαα’αΆα
ααααΌαααΆααααα·αααΆααΆαα»αααΆααααααααΎαααΆααααα»αααα αα’αααα
αα
αΆαααΌα
ααααΆ αα½αααΆαα½αααΉααα»αααΆααααααααα αααα
αααΆααααΆααΆααα»αααΆαα
αααΎαααΆααα½αααααΎαααΆααααα»αααααααα½αα αααα»αα§ααΆα αααααα ααααααΈαα½ααα
αΆααααααΎα αα·αααααΎαααΆααα»αααΆα worker() ααααα
αααα»ααααααααΆαααααααααΎαα’ααα,.
α αΌαααααΎαααΆααααααα·ααΈαααααΆαα½αααΉαα’αΆαα»αααααα ααα½α 1000α ααΌα αααα’ααααααα ααααΆααΆαααΆα αααααααα½αααααΆ 2000 ααααααααααααα‘αΆαααΈαα½ααααΆααααααΎαα’ααα 1000 ααα ααααααΆαααΆαααααα’αααΈααααααααΆαααΊαα·αααΆααααααα α αΌαααΎαααααΆααΆαααααΎαααΆααααααα·ααΈαααααααΆααααααα αααΆαααααααααααααααααα
αααααΆααααα
αΌαααα α§ααΆα ααα 100000 ααΎαααααΉαααΆααΉαααΎαααααααααΆααα 200000α ααααααΆαααΆααααα ααααα·αααΎααΎααααααα 100000 α
αααΎααα αααααΎααα·αααααΉααααα·αααΎαα
ααααΎαααααΉαααααΌαααα»ααααααα ααα»αααααααααΆααααα½αααΆαα
ααααΎααα»ααααααααααααα α
ααααΎαααΊαααα·ααα
αααα»αααΆααα·ααααααΆ ααΎααααΈαααααΎαα
ααα½α ααααα·ααααα·ααΆαααΈααααΌαααΆαααΆαααΆα - αααααα
ααααΈα’αααα
αα
αΆα αααααΎα α αΎααααααΆαααααααααααααααα‘αααααα·αα αααααΆαααΆαααααΆαααΆααα’ααααααα·αααααΌαααΆαααααα·ααααα·ααΆαα’αΆααΌαα·α
αα (ααΆααα’αααααα»αααααααα½α) ααΏαα
αααααααααααα’αΆα
ααΎαα‘αΎαα αααα αΆαααααααΌαααΆαααα α
ααΆαα
αααα»ααααααα·ααΈ ααααΆαααΆααααααΆαα. αα
αααααααααααααΆαααα·αααααΆαααα
ααααα·αααααΆααα’αΆα
αααααΆαααααααααΎαααΆαααααααα·ααααα·ααΆαααΆαα½αααααα’αααα
ααααα: www.habr.com