์ ๊ธ ๋ถํธ์บ ํ 6์ฃผ์ฐจ 1์ผ ๊ณต๋ถ ๊ณํ.
์ ๊ธ๋ถํธ์บ ํ์์ ๊ฒฉ์ฃผ๋ง๋ค ์ด์์ง๋ถ๋ค๊ณผ ์ง๋ฌธ์ ๋๋ ์ ์๋ ์๊ฐ์ ์ ๊ธ๋ฌ๋ค์ด ๋ฌผ์ด๋ณธ ์ง๋ฌธ๋ค์ noteํด๋ณด๋ ๊ธ์ ๋๋ค.์๊ธฐ๊ด์ฒ๋ผ ๋ฐ๋ก ์ด ๊ฒ์ด์๋๋ผ, ๊ฐ๋จํ ๋ ธํธํ ๊ฒ์ ์ ์ ์ฃผ๊ด์ผ๋ก ๋ค์ ํด์ํ ๋ด์ฉ์ด๋ ์ฐธ๊ณ ๋ง ํด์ฃผ์ธ์๐์์ฌ, ๋ถํ touble์ด ์์ ๋ ์ด๋ป๊ฒ ๋์ฒ
malloc-lab์ ์ฐ๋ ์ด์ .
malloc-lab์ ์ฒ์ ์ ํ์ ๋ ๋ณด๋ฉด ๋์๋๋ ์์์ด๋ค. ์ฌ์ฉํ ๋งํ ํจ์๊ฐ ์ด๋ค๊ฒ์ด ์๋์ง, ์ฐ๋ฆฌ๊ฐ ๊ตฌํํด์ผ ๋๋ ํจ์๊ฐ ๋ฌด์์ธ์ง, ๋๋ฒ๊น ์ ์ด๋ป๊ฒ ํ๋์ง, ํ ์คํธ ์ผ์ด์ค๋ ์ด๋ป๊ฒ ์ด๋ฃจ์ด์ก๋์ง ์ค๋ช ํ๋ค.
์ ๊ธ์์ ์ค CMU ๊ณผ์ ์ค ํ๋์ธ proxy-lab ์๋ด๋ฌธ์ด๋ค.์ฝ๋ฉ์ ์์ํ๊ธฐ ์์ ์ด๋ฒ์ ์ฃผ์ด์ง proxy-lab ๋๋ผ์ด๋ฒ์ ๋ํด ์๋ชฉ์กฐ๋ชฉ ๋ฏ์ด๋ณด๊ณ ์ดํดํด๋ณด๊ณ ๊ฐ๋ ค๊ณ ํ๋ค.
๋๋ํ ๊ฐ๋ฐ์ ์ ํฌ๋ธ๋ก ๊ณต๋ถํ๋ ๋คํธ์ํฌ
tiny.c๋ ๋ด๊ฐ ์ง์ ๋ง๋ค์ด๋ณด๋ ์๊ณ ์์คํ ์๋ฒ๋ค. tiny.c ์ฝ๋๋ CS:APP์ฑ ์ ๋ชจ๋ ์ ํ์์ผ๋ฉฐ, ํด๋น ์ฝ๋์ ๊ด๋ จ ์ค๋ช ์ ์ฒจ๋ถํ๋ฉด์ ์ ๋ฆฌํ๋ ค๊ณ ํ๋ค.
implicit free list ์ด๋ฒ ๊ธ์ CS:APP์ฑ 9์ฅ์ ์ ํ์๋ ์ฝ๋๋ฅผ ์ฐธ๊ณ ํ์ฌ ์์ฑํ implicit free list์ฝ๋์ ๊ทธ ์ค๋ช ์ด๋ค. implicit free list๋ ๋ฉ๋ชจ๋ฆฌ๊ณต๊ฐ์ ๊ด๋ฆฌํ๊ธฐ ์ํ ๋ฐฉ๋ฒ ์ค ์ ์ผ ๊ธฐ๋ณธ์ ์ด๊ณ , ๊ฐ๋จํ ๋ฐฉ๋ฒ์ด๋ค.
์ด์ ์ ์ฐ๋ ๋ค์ด๋ฒ ๋ธ๋ก๊ทธ ๊ธ์ ์กฐ๊ธ ์์ ํด์ ์ฎ๊ธด ๊ธ์ ๋๋ค. -์ ๊ธ6๊ธฐ ํฉ๊ฒฉ
์ด์ ์ ์ฐ๋ ๋ค์ด๋ฒ ๋ธ๋ก๊ทธ ๊ธ์ ์กฐ๊ธ ์์ ํด์ ์ฎ๊ธด ๊ธ์ ๋๋ค.๋๋ ์นด์นด์ค ์คํ์ฑํ ๋ฐฉ์์ ๊ฐ์ด ํ์ํ๊ณ ๊ฐ ์ฌ๋์ ๊ตฌํด์ ๋์ ์ญ์์ ํ์ํ๊ณ ๋ฌธ์ง์บ ํผ์ค๋ฅผ ์๋ค. ํ์๋น๋ ์ด 10800์. ๋์ฐฉํ๋ ์บ ํผ์ค๊ฐ ๋ฌด์ฒ ๊ดํํ๊ณ ์กฐ์ฉํ๋ค. ๊ทธ๋๋ ๊ณผ๊ธฐ๋๋ต๊ฒ ๊ธธ ์ค๊ฐ์ค๊ฐ ์ด์ ํ๊ฐ
์ ๊ธ ์ปค๋ฆฌํ๋ผ์ week01~04๊น์ง ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
์ ๊ธ week01์ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํ๋ฉด์ ์ ๋ฆฌํ๋ ๋ด์ฉ๋ค์ ๊ณต์ ํด๋ณธ๋ค.
์ ๊ธ2์ฃผ์ฐจ์ ๋ค์ด ์๊ณ ๋ฆฌ์ฆ์ ๋ํด ํ๊ณ ํด๋ณด๋ ๊ธ์ ์จ๋ณด๋ คํ๋ค.
2์ฃผ์ฐจ์ ํค์๋ ์ค ํ๋์ธ ์ด์ง๊ฒ์์ ๋ํ ์ด๋ก ์ ์ ๋ฆฌํด๋ณด๊ณ ์ ํ๋ค.
proxy-lab ๋๋ผ์ด๋ฒ ๋งค๋ด์ผ์ ๋ฐ๋ผ ๋ธ๋ผ์ฐ์ ๋ mozila firefox๋ฅผ ํตํด ํ ์คํธํ๋ค.
์ค๋์ ์ฝ์น๋์ด ์ฌ๋ ค์ค https://youtu.be/LtXEMwSG5-8 ์์์ ๋ณด๊ณ ๋ฐ๋ผํด๋ณด๊ณ , ์ ๋ฆฌํด์ ์ฑ ๊ณผ ์กฐ๊ธ ๋ค๋ฅธ ์คํ์ผ์ ์ฝ๋๋ฅผ ๊ณต๋ถํด ๋ณด์๋ค.ํด๋น ๊ฐ์๋ ํค๋ํ์ผ์ ์ ์๋์ด์๋ ํจ์๋ค์ ์ด์ฉํด socket ํต์ ์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ด๋ค.
PintOS์ ์ฃผ์ฐจ๊ฐ ์์๋์๋ค!PintOS๋ 2004๋ ์คํ ํฌ๋์์ ๋ง๋ค์ด์ง ๊ต์ก์ฉ ์ด์์ฒด์ ๋ก, ์ฐ๋ฆฌ๋ KAIST PintOS์ ๋ด์ฉ์ ๋ฐ๋ผ ์งํํ๊ฒ ๋๋ค.
proxy.lab ๋งค๋ด์ผ์ ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์์ํ๋ผ๊ณ ์๋ ค์ค๋ค.
์ฐ๋ฆฌ๋ฐ์ ๋ฐ์ํ๋ฅผ ์์ํ๋ค. ํ์์ผ ์ผ์ ์๊ฐ์ ๋งค์ฃผ ์๋ก ์ฃผ์ด์ง๋ ์ปค๋ฆฌํ๋ผ์ ํค์๋์ ๋ํด ์ง๋ฌธํ๊ณ , ๋๋ตํด ๋ณด๋ ์๊ฐ์ด๋ค. ์ด๋, ์ง๋ฌธ์ผ๋ก '์ถ์ํ'๋ ๋ฌด์์ธ๊ฐ์ ๋ํ ์ฃผ์ ๊ฐ ๋์๋ค.
๐คจ์ ๋ฒ์ฃผ์ฐจ์ ๋๋ thread ์ ๋ฒ ์ฃผ์ฐจ์์ thread๋ฅผ ์ ํ์ ๋ ๋ ์๊ฐ์ "thread๋ฅผ ์๋ฒฝํ ์ดํดํ๋ ค๋ฉด ์ข ๋ ํฐ ๋ฒ์์ os์ ์ปดํจํฐ์ ๋์์ ๋ํด ์๋ฒฝํ ์ดํดํด์ผ์ง ์๋๋ฉด ๋ง์ฐํ ์๊ฐ์์ ์์ธ ์ฑ ๋ถ๋ถ์ ์ธ ๋จ๋ฉด๋ง ์ดํดํ๋ ๊ฒ"์ด๋ผ๋ ์๊ฐ์ ํ๋ค.
์ ๊ธ OS์ 1์ฃผ์ฐจ๊ฐ ๋ฒ์จ ์ง๋ฌ๋ค.
๊ธฐ๋ณธ์ผ๋ก ์ฃผ์ด์ง Pintos๋ ํ๋ก๊ทธ๋จ๊ณผ ์ธ์๋ฅผ ๊ตฌ๋ถํ์ง ๋ชปํ๋๊ตฌ์กฐ๋ก ๋์ด์๋ค. ์์ ๊ฐ์ ๋ช ๋ น์ด๋ฅผ pintos์ ์ ๋ ฅํ์ ๋, task๋ก ์ ๋ ฅ๋๋ ๋ด์ฉ์ 'args-multiple arg1 hey2 hw3 til4' ๋ถ๋ถ์ด๋ค.
์ ๊ธ 10์ฃผ์ฐจ์ ์์๋ ์ผ๋ค์ ์งง๊ฒ ๋์๋ณธ๋ค.
2023.05.18 ๋ชฉ์์ผ ์ ๊ธ์ ํฌ๋ํํค ์ฑ์ฉ ์ค๋ช ํ๊ฐ ์งํ๋๋ค. ๊ด๋ จ ๋ด์ฉ์ ์๊ธฐ ์ ์ ์ ์ด๋ณธ๋ค.
2023.05.16 ํ์์ผ ์ ๊ธ์์ ๋น๊ทผ๋ง์ผ ์ฑ์ฉ์ค๋ช ํ๊ฐ ์งํ๋๋ค.HR๋ด๋น์ 2๋ถ์ด ์ค์ ์ ๋ฐํ๋ฅผ ์งํํด์ฃผ์ จ๋ค.๋ด์ฉ์ flow๋ HR๋ด๋น์์ ๊ฐ์ธ์ ์ธ PR(40๊ฐ๊ตญ ์ฌํ, SKY์ถ์ )์ผ๋ก ์์ํ๋ค.
2023.04.20 ์ ๊ธ์์ ๋์ด์ค๋ฉ ์ฑ์ฉ์ค๋ช ํ๊ฐ ์งํ๋๋ค.๋์ด์ค๋ฉ ์ฐฝ์ ์&CTO๋์ด ์ค์ ์ ์ง์ ํ์ฌ์ ์ฑ์ฉ์ ๋ํด ์ค๋ช ํด์ฃผ์ จ๋๋ฐ ์๊ฐ์ด ์ง๋์ ์์ธํ๋ ๋ชป์ฐ์ง๋ง ๋๋ฌด ์ข์ ์๊ฐ์ด์์ด์ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋ค.
PintOS๋ฅผ ํ์๋ค๊ณผ github๋ก ๊ณต๋์์ ์ ํ๋ค๋ณด๋ฉด ๊ฐ๋ ๋ณด์ด๋ ์๋ฌ๊ฐ ์๋ค.ํด๊ฒฐ๋ฒ์ ์ฐพ์์ง๋ง ์ธ๊ฐ์ ์ธ์ ๋ ๋ต์ ์ฐพ๊ณ ๋ ์์ด๋จน๊ธฐ ๋๋ฌธ์ ์๋์ ๊ธฐ๋กํด๋ณธ๋ค.
์ ๊ธ1์ฃผ์ฐจ์ ์ ๋ฆฌํด๋๋ ๋ฐ๋ณต๋ฌธ์์ ์ฐ๋ฉด ์ข์ -else๋ฌธ์ ์ ๋ฆฌํด๋ณธ๋ค.(๋ง์ ์ฐ๋ ค๋ฉด ๊น๋จน๋๋ผ.) ์ ์ฝ๋๋ count๊ฐ 0๋ถํฐ 2๊น์ง ์ถ๋ ฅํ๊ณ , while๋ฌธ์ด ์ข ๋ฃ๋๋ฉด else๋ฌธ์ด ์คํ๋์ด "count is now 3"์ ์ถ๋ ฅํ๋ค.
alarm clock์ devices ํด๋์ threads์ ์๋ ํ์ผ๋ถํฐ ์์ ํ๋ ๊ฒ๋ถํฐ ์์ํ๋ค. gitbook์ ๋ณด๊ณ ์ฒ์ฒํ ๋ฐ๋ผํด๋ณด์. devices/timer.c ์ ์๋ timer_sleep()์ ๋ค์ ๊ตฌํํด๋ด ์๋ค. Gitbook ๋ด์ฉ ๐ฅ ์ด๋ฏธ ์
2023.04.11 ์ ๊ธ์์ ํ์คํ๋ฅดํ ์ฑ์ฉ์ค๋ช ํ๊ฐ ์งํ๋๋ค. ์ฒ์ ์งํ๋ ์ฑ์ฉ ์ค๋ช ํ์ธ ๋งํผ ์ด์ฌํ ๋ค์์๋๋ฐ ๊ทธ๋ด์ฉ์ ์ ๋ฆฌํด ๋จ๊ฒจ๋ณด๋ ค๊ณ ํ๋ค.ํ ์คํ๋ฅดํ ์ค๋ช ํ๋ CTO๋์ด ์ค์ ์ ์ค๋ช ํด ์ฃผ์ จ๋ค. ์นด์ด์คํธ ์ถ์ ๊ฐ๋ฐ์ ์ จ๋๋ฐ, ์ฐ๋ฆฌ ์ ๊ธ์ ๋ํด ์ดํด๋๊ฐ ๋์๊ณ ๋ด
์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํจ์จ์ ์ผ๋ก ํ๊ธฐ์ํด ๋ง์ด ์ฌ์ฉ๋๋ python์ ๋ด์ฅ ๋ผ์ด๋ธ๋ฌ๋ฆฌ collections์ ๋ํด python ๊ณต์ ์ค๋ช ์๋ฅผ ๊ฐ์ด ๋ฏ์ด๋ณด์.์ด ๋ชจ๋์ ํ์ด์ฌ์ ๋ฒ์ฉ ๋ด์ฅ ์ปจํ ์ด๋ dict, list, set ๋ฐ tuple์ ๋ํ ๋์์ ์ ๊ณตํ๋ ํน์ ์ปจํ ์ด๋
์๊ณ ๋ฆฌ์ฆ์ optimalํ๊ฒ ํ๊ธฐ์ํด์๋ ๊ธฐ๋ณธ์ ์ธ ์ํ์ง์์ด ํ์ํ๋ค. ๊ณต๋ถํ๋ฉด์ ์ ๋ฆฌํ ์ํ๊ด๋ จ ๋ด์ฉ์ ๊ณต์ ํด๋ณด๋ก ํ๊ฒ ๋ค. GCD(์ต๋ ๊ณต์ฝ์) LCM(์ต์ ๊ณต๋ฐฐ์)
PintOS์์ ์ฐ์ ์์ ์ค์ผ์ค๋ง์ ๋ํด ์ ๋ฆฌํ ๋ด์ฉ์ด๋ค.
pintOS์ ๊ฐ์๋ฉ๋ชจ๋ฆฌ ์ปค๋ฆฌํ๋ผ์ด ์ง๋๊ฐ๋ค.์ด๋ฒ์ฃผ์ฐจ๋ฅผ ์ ๋ฆฌํ๋ฉด์ ์ฐ๋ฆฌํ์ด ์๋ฃ๋ฅผ ๋งค์ฐ ๊น๋ํ๊ฒ ๋ง๋ค์ด์ ์ด๋ฅผ ์ด์ฉํด์ WIL๋ฅผ ์จ๋ณด๋ ค๊ณ ํ๋ค.
์ฌ๊ท ์ฌ๊ท(Recursion)๋ ํจ์๊ฐ ์๊ธฐ ์์ ์ ํธ์ถํ๋ ๊ฒ์ ์๋ฏธํ๋ค.์ฌ๊ท ํจ์๋ ์ฌ๊ท ํธ์ถ์ ๋ฐ๋ณตํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค. ์ฌ๊ท์ ์ธ ์ ๊ทผ์ ๋ฌธ์ ๋ฅผ ๋ ์์ ํ์ ๋ฌธ์ ๋ก ๋ถํ ํ๊ณ , ๊ฐ ํ์ ๋ฌธ์ ์ ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐํฉํ์ฌ ์๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ์์ด๋ค. ์ฌ๊ท ํจ์๋ ๋ณดํต ๋ค
default pintOS๋ semaphore๋ฅผ ๋๊ธฐํ๊ณ ์๋ ์ค๋ ๋๋ค์ list์ waieters๊ฐ FIFO๋ก ๊ตฌํ๋์ด์๋ค.
์ด๋ฒ์ฃผ์ฐจ๋ gitbook์ ์ฐฌ์ฐฌํ ์ฝ์ผ๋ฉด์ os๋ฅผ ์ดํดํด๋ณด์.
๐ธ๐ธ๐ธ๋ด๊ฐ ์ข์ํ๋ window์ ํ์ผ ์์คํ ์ ์ด๋ป๊ฒ ๋์ด์๋์ง ์์๋ณด์.
์ด๋ฒ์ฃผ์ฐจ์๋ ์ฐ๋ฆฌํ์ด ํ์ฃผ๋ฅผ ๋ฐฐ์ด๊ฒ์ ์ ๋ฆฌํ๋ฉด์ ๋ง๋ค์๋ ์๋ฃ๋ฅผ ๊ณต์ ํ๋ฉด์ ๋ฌด์์ ๊ณต๋ถํ๋์ง WIL์ ์จ๋ณด๋ ค๊ณ ํ๋ค.