97์ ์ง๋ฆฌ ์ฝ๋์
๋๋ค.. 100์ ๋์ ์ ํด๋ณด์๋๋ฐ, ์ ์์ ์ผ๋ก๋ ์๋๋๋ผ๊ตฌ์.. ํน์ ๋๊ตฐ๊ฐ ์ ์์ ์ผ๋ก 100์ ์ ๋ฐ์๋ค๋ฉด.. ์ฌ์ฉ ์๋ ค์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.. ํ์ดํ
ํ์ธ์ :)
๐ฅ Computer Science/์์คํ ํ๋ก๊ทธ๋๋ฐ
๐ง ํ๋ก์ธ์ค ์ฐ์ ํ๋ก์ธ์ค์ ๋ํด ์์๋ณด๊ธฐ ์ ์, ํ๋ก์ธ์ค์ ๊ฐ์ด ์์๋์ด์ผ ํ ์ฉ์ด๊ฐ ์์ต๋๋ค. ๋ฐ๋ก ํ๋ก๊ทธ๋จ๊ณผ Task์
๋๋ค. ๐ ํ๋ก๊ทธ๋จ ์ผ๋ฐ์ ์ผ๋ก ํ๋ ๋์คํฌ์ ์ ์ฅ๋์ด ์๋ ์คํ์ฝ๋๋ฅผ ๋ปํ๋๋ฐ, ์๋ฅผ ๋ค์ด ์นด์นด์คํก, ์๋, ํ๊ธ ๋ฑ์ด ๊ฐ๊ฐ ํ๋์ ํ๋ก๊ทธ๋จ์
๋๋ค. ์นด์นด์คํก์ ์์๋ก ๊ณ์ ์ค๋ช
ํ์๋ฉด, ์นด์นด์คํก์ ์ปดํจํฐ์ ์ค์นํ๊ธฐ๋ง ํด์๋ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์นด์นด์คํก ํ๋ก๊ทธ๋จ์ ์คํํ์ฌ์ผ ์ฌ์ฉํ ์ ์๋๋ฐ, ์คํํ๋ ๊ฒฝ์ฐ ์นด์นด์คํก ํ๋ก๊ทธ๋จ์ ๋ํ ์ธ์คํด์ค๊ฐ ์์ฑ๋ฉ๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก ํ๋ก์ธ์ค์
๋๋ค. ํ๋ก์ธ์ค๋ OS๊ฐ ๋ง๋ค์ด ์ฃผ๋ ์คํ ํ๋ก๊ทธ๋จ์ ์ธ์คํด์ค์
๋๋ค. ์ปดํจํฐ๋ User, Kernel, HW ์์ญ์ผ๋ก ๋๋์ด์ง๋๋ค. ์นด์นด์คํก, ์๋ ๋ฑ์ ํ๋ก๊ทธ๋จ์ User ์์ญ์์ ์คํ๋๋ฉฐ, Kernel ์์ญ์..
๐ง ๋ถ๋ฆฌ ๊ฐ์ฉ ๋ฆฌ์คํธ(Segregated free list) ์ด์ ๊ธ๋ค์์ ์ดํด๋ณธ ๊ฒ๊ณผ ๊ฐ์ด ๊ฐ์ฉ ๋ธ๋ก ๋ฆฌ์คํธ๋ฅผ ๋จ ํ๊ฐ๋ง ์ฌ์ฉํ๋ ํ ๋น๊ธฐ๋ ํ ๊ฐ์ ๋ธ๋ก์ ํ ๋นํ๋ ๋ฐ ๋ธ๋ก์ ์(ํน์ ๊ฐ์ฉ ๋ธ๋ก์ ์)์ ๋น๋กํ๋ ์๊ฐ์ด ํ์ํฉ๋๋ค. ํ ๋น ์๊ฐ์ ์ค์ด๋ ๋ํ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก ์๋ ค์ง ๋ถ๋ฆฌ ์ ์ฅ์ฅ์น(Segregated Storage)๋ ๋ค์์ ๊ฐ์ฉ ๋ฆฌ์คํธ๋ฅผ ์ ์งํ๋ฉฐ, ๊ฐ ๋ฆฌ์คํธ๋ ๊ฑฐ์ ๋์ผํ ํฌ๊ธฐ์ ๋ธ๋ก๋ค์ ์ ์ฅํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ธ ์์ด๋์ด๋ ๋ชจ๋ ๊ฐ๋ฅํ ๋ธ๋ก์ ํฌ๊ธฐ๋ฅผ ํฌ๊ธฐ ํด๋์ค(size class)๋ผ๊ณ ํ๋ ๋์ผ ํด๋์ค์ ์งํฉ์ผ๋ก ๋ถ๋ฆฌํ๋ ๊ฒ์
๋๋ค. ํฌ๊ธฐ ํด๋์ค๋ฅผ ์ ์ํ๋ ๋ฐฉ๋ฒ์๋ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์์ต๋๋ค. ๋๋ถ๋ถ ์ ์ ํฌ๊ธฐ์ ๋ธ๋ก๋ค์ ๋งค ํฌ๊ธฐ๋ง๋ค ํด๋์ค๋ฅผ ๊ฐ๋๋ก ํฉ๋๋ค.(2, 3, 4, ...) ํฌ๊ธฐ๊ฐ ํฐ ๊ฒฝ์ฐ์..
๐ง ๋ช
์์ ๋ฆฌ์คํธ(Explicit List) ๋ฌต์์ ๋ฆฌ์คํธ ๋ฐฉ์์ ์ฌ์ฉํ๋ ๊ฒ์ ๊ฐ๋จํ์ง๋ง, ๋ธ๋ก ํ ๋น ์๊ฐ์ด ์ ์ฒด ํ ๋ธ๋ก์ ์์ ๋น๋กํ๊ธฐ ๋๋ฌธ์ ๋๋ฆฌ๋ค๋ ๋จ์ ์ด ์์์ต๋๋ค. ์ด ๋จ์ ์ ํด๊ฒฐํ๊ธฐ ์ํด์ ๋ช
์์ ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ช
์์ ๋ฆฌ์คํธ ๋ฐฉ์์ ๊ฐ์ฉ ๋ธ๋ก๋ค์ ์ด์ ๊ฐ์ฉ ๋ธ๋ญ๊ณผ ๋ค์ ๊ฐ์ฉ ๋ธ๋ญ์ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ๋ฅผ ๊ฐ์ง ์ผ์ข
์ ์ด์ค ์ฐ๊ฒฐ ๋งํฌ๋ ๋ฆฌ์คํธ ์๋ฃ๊ตฌ์กฐ๋ก ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์
๋๋ค. ๊ฐ์ฉ ๋ธ๋ญ์ ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉ๋์ง ์๊ธฐ ๋๋ฌธ์, ํด๋น ์๋ฃ๊ตฌ์กฐ๋ฅผ ๊ตฌํํ๋ ํฌ์ธํฐ๋ค์ ๊ฐ์ฉ ๋ธ๋ก์ ๋ณธ์ฒด ๋ด์ ์ ์ฅ๋ ์ ์์ต๋๋ค. ์ ๊ทธ๋ฆผ์์์ฒ๋ผ ๊ฐ ๊ฐ์ฉ ๋ธ๋ก ๋ด์ pred(predeccesor)์ succ(successor) ํฌ์ธํฐ๋ฅผ ํฌํจํ๋ ์ด์ค ์ฐ๊ฒฐ ๊ฐ์ฉ ๋ฆฌ์คํธ๋ก ๊ตฌ์ฑ๋ ์ ์์ต๋๋ค. ํ ๋น๋ ๋ธ๋ก์ ๊ตฌ์กฐ๋..
์ด์ ๊ธ์ ์ด์ด์ง๋ ๋ด์ฉ์ผ๋ก, ๊ฐ์ฉ ๋ธ๋ก์ ๊ด๋ฆฌํ๋ ์ฒซ๋ฒ์งธ ๋ฐฉ๋ฒ์ธ ๋ฌต์์ ๋ฆฌ์คํธ ๋ฐฉ์์ ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๐ง ๋ฌต์์ ๋ฆฌ์คํธ ๋ฐฉ์ (Implicit List) ๐ ํค๋(Header) ๋ชจ๋ ํ ๋น๊ธฐ๋ ๋ธ๋ก ๊ฒฝ๊ณ๋ฅผ ๊ตฌ๋ถํ๊ณ , ํ ๋น๋ ๋ธ๋ก๊ณผ ๊ฐ์ฉ ๋ธ๋ก์ ๊ตฌ๋ถํ๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ํ์๋ก ํฉ๋๋ค. ๋๋ถ๋ถ์ ํ ๋น๊ธฐ๊ฐ ํด๋น ์ ๋ณด๋ฅผ ๋ธ๋ก ๋ด๋ถ์ ์ ์ฅํฉ๋๋ค. ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก๋ ์ถ๊ฐ์ ์ผ๋ก 1๋ธ๋ก์ ์ฌ์ฉํ์ฌ ๋ธ๋ก ์์ ๋ธ๋ก์ ํฌ๊ธฐ๋ฅผ ์ ์ฅํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ์ด๋ ์ถ๊ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ 1 ์๋๋ฅผ ํค๋(Header)๋ผ๊ณ ํฉ๋๋ค. ํค๋๋ ๋ธ๋ก ํฌ๊ธฐ์ ๋ธ๋ก์ด ํ ๋น๋์๋์ง, ํน์ ๊ฐ์ฉ ์ํ์ธ์ง๋ฅผ ์ธ์ฝ๋ฉํฉ๋๋ค. ๋ง์ฝ ๋๋ธ ์๋(8๋ฐ์ดํธ) ์ ๋ ฌ ์ ์ฝ์กฐ๊ฑด์ ์ค์ ํ๋ค๋ฉด, ๋ธ๋ก ํฌ๊ธฐ๋ ํญ์ 8์ ๋ฐฐ์์
๋๋ค. ์ฆ ๋ธ๋ก ํฌ๊ธฐ์ ํ์ 3๋นํธ๋ ..
๐ง ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ํ๋ก๊ทธ๋จ์ด ์คํ๋๊ธฐ ์ ์๋ ๊ทธ ํฌ๊ธฐ๋ฅผ ์ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๋ฐํ์ ์์ ํ๋ํ๊ธฐ ์ํด ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์ฌ์ฉํฉ๋๋ค. ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น๊ธฐ๋ ํ(heap)์ด๋ผ๊ณ ํ๋ ํ๋ก์ธ์ค์ ๊ฐ์๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๊ด๋ฆฌํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์์คํ
๋ง๋ค ๋ค๋ฅด์ง๋ง, ์ผ๋ฐํ์ ์ค๋ฅ๋ฅผ ๋ฒํ์ง ์๋ ํ๋์์, ํ ์์ญ์ด ์ด๊ธฐํ๋์ง ์์ ๋ฐ์ดํฐ ์์ญ ์ดํ๋ถํฐ ์์ํ์ฌ ์์ชฝ(์ฃผ์๊ฐ ์ฆ๊ฐํ๋ ๋ฐฉํฅ)์ผ๋ก ์ปค์ง๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ด๋ผ ๊ฐ์ ํ๊ฒ ์ต๋๋ค. ๊ฐ๊ฐ์ ํ๋ก์ธ์ค์ ํ ๋น๋๋ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ๋ํ์ฌ, ์ปค๋์ ํ ์์ญ์ ๊ผญ๋๊ธฐ๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ(brk ptr)๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ฉ๋ชจ๋ฆฌ ํ ๋น๊ธฐ๋ ํ์ ๋ค์ํ ํฌ๊ธฐ์ ๋ธ๋ก ๋จ์๋ก ๊ด๋ฆฌํฉ๋๋ค. ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๋ ๋ฐฉ๋ฒ์๋ ๋ช
์์ (Explicit)์ผ๋ก ํ ๋นํ๋ ๋ฐฉ๋ฒ๊ณผ ๋ฌต์์ (Implici..
๐ง Trace00 EOF(ctrl + d) ์
๋ ฅ์ ๋ฐ์ผ๋ฉด ํ๋ก๊ทธ๋จ์ ์ข
๋ฃ์์ผ์ผ ํฉ๋๋ค. ๋๋ณด๊ธฐ main๋ฌธ์ ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์ด๋ฏธ ๊ตฌํ๋์ด ์๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. while(1)์ ํตํด ์์ ๊ณ์ ์คํ์ํค๋ค๊ฐ ctrl + d๊ฐ ์
๋ ฅ๋๋ฉด ํ๋ก๊ทธ๋จ์ ์ข
๋ฃํฉ๋๋ค. ๐ง Trace01 quit ๋ช
๋ น์ด๋ฅผ built-in command๋ก ๋ฑ๋กํฉ๋๋ค. quit์ด ์
๋ ฅ๋๋ฉด ํ๋ก๊ทธ๋จ์ด ์ข
๋ฃ๋์ด์ผ ํฉ๋๋ค. ๋๋ณด๊ธฐ void eval(char *cmdline) { cahr * argv[MAXARGS]; parseline(cmdline, argv); builtin_cmd(argv); return; } int builtin_cmd(char **argv) { char * cmd = argv[0]; if (!strcmp(cmd,..
๐ง ์๊ทธ๋ ์ด๋ฒคํธ๊ฐ ์์คํ
์ ๋ฐ์ํ๋ค๋ ๊ฒ์ ํ๋ก์ธ์ค์๊ฒ ์๋ ค์ฃผ๋ ์งง์ ๋ฉ์ธ์ง ์๊ทธ๋์ ์์์์ค์ ์ํํธ์จ์ด ํํ์ ์์ธ์ ์ธ ์ ์ดํ๋ฆ์ผ๋ก์จ, ์๊ทธ๋์ ํ๋ก์ธ์ค์ ์ปค๋์ด ๋ค๋ฅธ ํ๋ก์ธ์ค๋ฅผ ์ค๋จํ๋๋ก ํฉ๋๋ค. ์๊ทธ๋์ ์์ธ์ํฉ๊ณผ ์ธํฐ๋ฝํธ๋ฅผ ์ปค๋์์ ์ถ์ํํ ๊ฐ๋
์ผ๋ก์จ, ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์ปค๋์ด ํ๋ก์ธ์ค์๊ฒ๋ก ์๊ทธ๋์ ๋ณด๋ด์ฃผ๋ ํํ๋ฅผ ๊ฐ์ง๋๋ค. ์๊ทธ๋์๋ 30๊ฐ์ ์ข
๋ฅ๊ฐ ์์ผ๋ฉฐ, ๊ฐ ์๊ทธ๋์ ์ ์ ์์ด๋๋ก ๊ตฌ๋ถํฉ๋๋ค.(1 - 30) ์๊ทธ๋์ ํฌํจ๋ ์ ๋ณด๋ ์๊ทธ๋์ ์์ด๋์ ์๊ทธ๋์ด ๋์ฐฉํ๋ค๋ ์ฌ์ค์
๋๋ค. ๋ค์์ ์ฃผ๋ก ์ฌ์ฉ๋๋ ๋ช๋ช ์๊ทธ๋๋ค์
๋๋ค. ์๊ทธ๋์ ๋ชฉ์ ์ง ํ๋ก์ธ์ค๋ก ์ ๋ฌํ๋ ๊ฒ์ ์๊ทธ๋ ์ก์ ๊ณผ ์๊ทธ๋ ์์ ์ ๋ ๋จ๊ณ๋ก ์ด๋ฃจ์ด์ง๋๋ค. ๐ง ์๊ทธ๋ ์ก์ ์ปค๋์ ๋ชฉ์ ์ง ํ๋ก์ธ์ค์ ์ปจํ
์คํธ ๋ด์ ์๋ ์ผ๋ถ ์ํ๋ฅผ ๊ฐฑ..