
priority-condvar ํ ์คํธ๊ฐ ๋จ์๋ค์ด๋ฒ ํฌ์คํธ์์๋ Pintos์ ์ฐ์ ์์ ์ค์ผ์ค๋ง ๊ตฌํ์ ๋ง์ง๋ง ๋จ๊ณ์ธ priority-condvar ๋ฐ ๊ด๋ จ ๊ฐ๋ ์ ๋ค๋ฃน๋๋ค. ๋ค์ด๊ฐ๊ธฐ์ ์์ mutex์ semaphore, condition variable์ ๋ํ ํฌ์คํธ๋ฅผ ์ฝ๊ณ ์์ฃผ์๊ธฐ๋ฅผ ๊ถํด ๋๋ฆฝ๋๋ค.์ ๊น, Priority Scheduling์์ Condition Variable์?๋๋ต์ ์ธ ๊ตฌ์กฐ๋ ์์ ๊ฐ์ผ๋ฉฐ, ์๋๊ฐ ๋ฐ๋ก synch.h์ ์์นํ ์ปจ๋์ ๋ณ์์ ๋๋ค.๋ฌธ์ ์ํฉPintos๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋น์ ์ ํ FIFO ์ ์ฑ ์ผ๋ก ์ค๋ ๋๋ฅผ ์ฒ๋ฆฌํ๋๋ก ๋์ด ์์๊ณ , ์ง๊ธ๊น์ง ์ ํฌ๋ ์ด๋ฅผ ์ ์ ํ ์ฐ์ ์์ ์ค์ผ์ค๋ง์ผ๋ก ๊ณ ์น๊ณ ์์์ต๋๋ค. ๋ค๋ง synch.c/h์ ํจ์๋ค์ ์์ ํ์ง ์์ ์ฑ ๋ด๋ฒ๋ ค๋๊ณ ์์์ง์. syn..

์ธํธ๋ก์ฐ์ ์์ ์ค์ผ์ค๋ง์์ ์ค์ํ ๋ ๋ค๋ฅธ ๊ฐ๋ ์ ์ฐ์ ์์ ์ญ์ (inversion)/๊ธฐ๋ถ(donation)์ ๋๋ค. ๋ฎ์ ์ฐ์ ์์ ์ค๋ ๋๊ฐ ๋์ ์ฐ์ ์์ ์ค๋ ๋๊ฐ ํ์๋ก ํ๋ ๋ฎคํ ์ค๋ฅผ ํ๋ํ๊ณ ์ค๋ซ๋์ ๋์ง ์์ผ๋ฉด, ๋์ ์ฐ์ ์์ ์ค๋ ๋๋ ๊ณ์ ๊ธฐ๋ค๋ ค์ผ ํ๋ ์ฐ์ ์์ ์ญ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ฐ์ ์์ ์์ ๋ฉ์ปค๋์ฆ์ด ์ฌ์ฉ๋ ์ ์์ต๋๋ค. ๋ฎคํ ์ค๋ฅผ ํ๋ํ ๋ฎ์ ์ฐ์ ์์ ์ค๋ ๋๋ ๊ทธ ๋ฎคํ ์ค๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ๊ฐ์ฅ ๋์ ์ฐ์ ์์ ์ค๋ ๋์ ์ฐ์ ์์๋ฅผ ์ผ์์ ์ผ๋ก ์์๋ฐ์ ์คํ๋ฉ๋๋ค. ๋ฎคํ ์ค๋ฅผ ํด์ ํ๋ฉด ์๋์ ์ฐ์ ์์๋ก ๋์๊ฐ๋๋ค.๋ค์ด๊ฐ๊ธฐ์ ์์ mutex์ semaphore, condition variable์ ๋ํ ํฌ์คํธ๋ฅผ ์ฝ๊ณ ์์ฃผ์๊ธฐ๋ฅผ ๊ถํด ๋๋ฆฝ๋๋ค.์ฐ์ ์์ ์ญ์ ์๋์ ๊ฐ์ ์ํฉ์ ๊ฐ์ ํฉ์๋ค.์ฑ๊ธ์ฝ..

์ธํธ๋กPintos ํ๋ก์ ํธ ๊ฒฝํ์ ๊ณต์ ํ๋ ๋ ๋ฒ์งธ ๊ธ์ ๋๋ค. ์ด์ ๊ธ์์ timer_sleep ํจ์์ Busy Waiting ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ํจ์จ์ ์ธ Sleep ๋ฉ์ปค๋์ฆ์ ๊ตฌํํ๋ '์๋ ์๊ณ' ํํธ๋ฅผ ๋ค๋ฃจ์์ต๋๋ค. ์ด๋ฒ ๊ธ์์๋ OS์ ํต์ฌ ๊ธฐ๋ฅ ์ค ํ๋์ธ ์ค์ผ์ค๋ง(Scheduling), ๊ทธ ์ค์์๋ ์ฐ์ ์์ ์ค์ผ์ค๋ง(Priority Scheduling)์ ๋ํด ์ด์ผ๊ธฐํ๋ ค ํฉ๋๋ค.๋ค์ด๊ฐ๊ธฐ์ ์์ mutex์ semaphore, condition variable์ ๋ํ ํฌ์คํธ๋ฅผ ์ฝ๊ณ ์์ฃผ์๊ธฐ๋ฅผ ๊ถํด ๋๋ฆฝ๋๋ค.์ค์ผ์ค๋ง์ด๋?๋ค์ค ํ๋ก๊ทธ๋๋ฐ ํ๊ฒฝ์์ ์ฌ๋ฌ ์ค๋ ๋(๋๋ ํ๋ก์ธ์ค)๊ฐ ๋์์ ์คํ๋ ์ค๋น๊ฐ ๋์ด ์์ ๋, CPU๋ ํ ๋ฒ์ ํ๋์ ์ค๋ ๋๋ง ์คํํ ์ ์์ต๋๋ค. ์ด๋ ์ด๋ค ์ค๋ ๋์๊ฒ CPU๋ฅผ ํ ๋นํ ..

์ธํธ๋กํฌ๋ํํค ์ ๊ธ 9์ฃผ์ฐจ, Pintos ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉฐ ๋ฐฐ์ฐ๊ณ ๋๋ ์ ๋ค์ ๊ณต์ ํ๋ ์๋ฆฌ์ฆ์ ์ฒซ ๋ฒ์งธ ๊ธ์ ๋๋ค. Pintos ํ๋ก์ ํธ๋ ์ด๋ก ์ผ๋ก๋ง ๋ฐฐ์ฐ๋ ์ด์์ฒด์ ์ ํต์ฌ ๊ฐ๋ ๋ค์ ์ง์ ์ฝ๋๋ก ๊ตฌํํด๋ณด๋ฉด์ ๊น์ด ์ดํดํ ์์ฃผ ์ข์ ๊ธฐํ์ธ๋ฐ์. ๊ทธ ์ฒซ ๋ฒ์งธ ํํธ์ธ '์๋ ์๊ณ(Alarm Clock)' ๊ตฌํ์ ๋ํด ์ด์ผ๊ธฐํด ๋ณด๊ณ ์ ํฉ๋๋ค.์ฐธ๊ณ : ์ ํฌ๋ ์คํ ํฌ๋๋ CS 112/212์ ์ค๋ฆฌ์ง๋ Pintos๊ฐ ์๋, x86-64์ ๋ง์ถ Pintos-KAIST๋ก ํ๋ก์ ํธ๋ฅผ ์ํํ๊ณ ์์ผ๋ฉฐ, ํฌ์คํธ ๋ํ ์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ํฉ๋๋ค.๊ณผ์ ๋ชฉํ: timer_sleep() ๊ฐ์ ์ ํฌ๊ฐ ๋ค๋ฃฐ ํจ์๋ devices/timer.c์ ์ ์๋ void timer_sleep(int64_t ticks)์ ๋๋ค. ์ต์ด๋ก ๋ฐ์์ ๋น์ ๊ธฐ๋ณธ ๊ตฌ..

์์คํ UI๋ ํ๋ ์ ํ ์ด์ ์ ์ ํฉํ SF UI Display OTF์ ๋๋ค. ์์ถ ์ํธ 123

Ubuntu์์๋ Windows์ ๋ง์ฐฌ๊ฐ์ง๋ก Firefox Developer Edition์ ์ฌ์ฉํ ์ ์์ผ๋, ์ํ๊น๊ฒ๋ ์๋์ ๊ฐ์ด .tar.xz ์์ถ ํํ๋ก ๋ฐฐํฌ๋๊ธฐ์ ์ด๋ฅผ /opt/firefox ๊ฐ์ ๊ณณ์ ์ง์ ํ๊ณ ๋ฐ์คํฌํฑ ์ํธ๋ฆฌ๋ฅผ ์์ฑํด์ผ ํ๋ ๋ฑ ๋ถํธํ ์ ์ด ์์์ต๋๋ค. Windows์ชฝ์ ๋น์ ํ์๋ฉด ๋ง์น ํฌํฐ๋ธ ZIP ํ์ผ์ ๋ฐ์๋ค๊ฐ ํน์ ๊ฒฝ๋ก์ ํ๊ณ ๋ฐํํ๋ฉด์ EXE ๋ฐ๋ก๊ฐ๊ธฐ๋ฅผ ๋ง๋๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. ์ด๊ฑด ์ค์น ์์ฒด๋ ๋ฒ๊ฑฐ๋กญ์ง๋ง ์๋ ์ ๋ฐ์ดํธ๊ฐ ์๋๋ค๋ ์ ์ด ๊ฐ์ฅ ํฐ ๋ฌธ์ ์ ๋๋ค.๋ค๋ง ์ต๊ทผ์ APT๋ฅผ ํตํด ์ค์นํ๋ ๋ฐฉ๋ฒ์ ์ฐพ์๋ด์ด ํฌ์คํธ๋ก ๋จ๊น๋๋ค.์ค์น ๋ฐฉ๋ฒ (APT ํจํค์ง ๊ด๋ฆฌ์)APT ํค ์ ์ฅ ๋๋ ํฐ๋ฆฌ ์์ฑsudo install -d -m 0755 /etc/apt/keyringsMozil..

์ด๋ฒ ํฌ๋ํํค ์ ๊ธ 8์ฃผ์ฐจ์์ web proxy lab ๊ณผ์ ๋ฅผ ์ํํ๋ฉด์ C์ธ์ด๋ก HTTP ์์ฒญ๊ณผ ์๋ต์ ํ์ฑํด์ผ ํ์ต๋๋ค. ๋ค๋ฅธ ์ธ์ด์์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ ์ค์ด๋ฉด ๋๋ ์์ ๋ค์ด C์์๋ ์ ์ด๋ฆฌ ์ด๋ ต๊ณ , ๋ฒ๊ทธ๋ ์ ์ด๋ฆฌ ์์ฃผ ๋ํ๋๋์ง ์ ์คํ ๊นจ๋ฌ์์ต๋๋ค. ์๋ง ๋ง์ ๋ถ๋ค์ด ๋น์ทํ ๊ฒฝํ์ ํ์ จ๊ฑฐ๋, ์์ผ๋ก ๊ฒช๊ฒ ๋์๋ฆฌ๋ผ ์๊ฐํฉ๋๋ค.๊ทธ๋์ ์ค๋์ C์ธ์ด์์์ ํ์ฑ ์์ ์ด ์ ์ ๋ ๊น๋ค๋ก์ด์ง, ๊ทธ๋ฆฌ๊ณ ์ด ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํค์ณ๋๊ฐ ์ ์์์ง์ ๋ํ ์ ๊ฒฝํ๊ณผ ํ์ ๊ณต์ ํ๊ณ ์ ํฉ๋๋ค.C์ธ์ด ํ์ฑ, ์ ์ด๋ ๊ฒ ์ด๋ ค์ด ๊ฑธ๊น์?'๋งจ์์ผ๋ก ์ ๋ฒฝ ํ๊ธฐ' - ๋ฎ์ ์์ค์ ๋ฌธ์์ด ์ฒ๋ฆฌ: C๋ ๋ณธ์ง์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์ง์ ๊ณต๊ฐ์ ๋ด๊ณ , ๊ทธ ๊ณต๊ฐ์ ์ฐธ์กฐ, ์ฐ์ฐ, ์ ์ฅํ๋ ๊ฒ์ด ์ ๋ถ์ ๋๋ค. ๋ฌผ๋ก ์ง์ ํ๋ค๋ ๊ทธ ์์ฒด๊ฐ ๊ฐ๋ ฅํ์ง๋ง, ์ด..

ํค์๋: djb2 ํด์, ํด์โฏ+โฏ์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ(LRU), ReaderโWriter Lock, MAX_CACHE_SIZE, MAX_OBJECT_SIZE1. ์ ๋ณ๋์ ์บ์๊ฐ ํ์ํ๊ฐ?ํ๋ก์ ์๋ฒ์์ ์ธ๋ฉ๋ชจ๋ฆฌ ์บ์ฑ์ด๋? ๋์ผ ๊ฐ์ฒด ์ฌ์์ฒญ ์, ์ค๋ฆฌ์ง ์๋ฒ๋ฅผ ๊ฑฐ์น์ง ์๊ณ ๋ฐ๋ก ๋ฉ๋ชจ๋ฆฌ์์ ์ ๊ณตํ๋ ๊ฒ์ ๋๋ค.์ ํฌ ์ด๋ฒ 8์ฃผ์ฐจ ์น ํ๋ก์ ๋ฉ์ ์บ์ฑ ๋ถ๋ถ์ ์๊ตฌ์กฐ๊ฑด์ ์๋์ ๊ฐ์ต๋๋ค.์ธ๋ฉ๋ชจ๋ฆฌ๋ก ๋ค์ค ์ฝ๊ธฐ, ๋จ์ผ ์ฐ๊ธฐ ๋ณด์ฅ → ์ฌ์ค์ ๋ฉํฐ์ค๋ ๋ฉ ๊ตฌํ์ด ๊ฐ์ LRU ์ ์ฑ ์ผ๋ก ๊ฐ์ฅ ์ค๋๋ (๋๋ ์ง์ ๋ ์ฉ๋์ ๋ง์ถ ๋๊น์ง) ๊ฐ์ฒด ์๋ ํด์ถ์ ๊ฐ์ธ์ ์ผ๋ก ๋ชฉํํ์๋ ์ถ๊ฐ ์กฐ๊ฑด์ ์๋์ ๊ฐ์ต๋๋ค. ๊ท๋ชจ๊ฐ ์ปค์ ธ๋ ๋น ๋ฅธ ์๋ต์ ๋ณด์ฅํ๊ธฐ ์ํด O(1) ํ์์๋ต ํค๋๊น์ง ํต์งธ๋ก ์บ์ (์ฌ์ ์ก ์ ์์ ๋์ผํ ์๋ต ๊ฐ๋ฅํ๋๋ก)์ผ๋ฐ์ ..