์ปค๋งจ๋ ๋ผ์ธ์์์ ๋ช
๋ น์ด๋ฅผ ์
๋ ฅ๋ฐ์์ ์คํ์์ผ๋ณด์!
์ปค๋งจ๋ ๋ผ์ธ์ ๋ฌธ์์ด์ ํ ํฐ ์ผ๋ก ๋ถ๋ฆฌํ๋ ๊ธฐ๋ฅ ๊ฐ๋ฐํ์!
ํ์ฌ 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()
)
์ด๋ ๊ฒ ๋ฐ๊พธ๋ ๊ฒ์ด ๋ชฉํ!