์ปค๋งจ๋ ๋ผ์ธ์์์ ๋ช
๋ น์ด๋ฅผ ์
๋ ฅ๋ฐ์์ ์คํ์์ผ๋ณด์!
์ปค๋งจ๋ ๋ผ์ธ์ ๋ฌธ์์ด์ ํ ํฐ ์ผ๋ก ๋ถ๋ฆฌํ๋ ๊ธฐ๋ฅ ๊ฐ๋ฐํ์!
ํ์ฌ Pintos๋ ํ๋ก๊ทธ๋จ๊ณผ ์ธ์๋ฅผ ๊ตฌ๋ถํ์ง ๋ชปํ๋ ๊ตฌ์กฐ์ด๋ค.
(ex: $ls โa /* Pintos๋ โls -aโ๋ฅผ ํ๋์ ํ๋ก๊ทธ๋จ๋ช
์ผ๋ก ์ธ์)
ํ๋ก๊ทธ๋จ ์ด๋ฆ๊ณผ ์ธ์๋ฅผ ๊ตฌ๋ถํ์ฌ ์คํ์ ์ ์ฅ, ์ธ์๋ฅผ ํ๋ก๊ทธ๋จ์ ์ ๋ฌํ๋ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํด๋ณด์!
main() -> run_action() -> ์ ์ ํ๋ก๊ทธ๋จ์ธ์ง ํ์ธํ๊ณ ์ ์ ํ๋ก๊ทธ๋จ์ด๋ผ๋ฉด
-> run_task() -> process_execute() -> thread_create() -> process_wait() -> ์ค์ผ์ค๋์๋ค๋ฉด -> start_process() -> load() -> ๋ก๋ ์ฑ๊ณตํ๋ค๋ฉด -> user program ์คํ (์คํจํ๋ค๋ฉด thread_exit())
main() -> run_action() -> ์ ์ ํ๋ก๊ทธ๋จ์ธ์ง ํ์ธํ๊ณ ์ ์ ํ๋ก๊ทธ๋จ์ด๋ผ๋ฉด
-> run_task() -> process_execute() -> ์ปค๋งจ๋ ๋ผ์ธ์์ ํ๋ก์ธ์ค ์ด๋ฆ ํ์ธ -> thread_create() -> process_wait() -> ์ค์ผ์ค๋์๋ค๋ฉด -> start_process() -> ์ปค๋งจ๋ ๋ผ์ธ Parsing ํ์ฌ ์ธ์ ํ์ธ -> load() -> ์ธ์๋ค์ ์คํ์ ์ฝ์
-> ๋ก๋ ์ฑ๊ณตํ๋ค๋ฉด -> user program ์คํ (์คํจํ๋ค๋ฉด thread_exit())
์ด๋ ๊ฒ ๋ฐ๊พธ๋ ๊ฒ์ด ๋ชฉํ!