
์ฃผ์๊ทธ๋ฃน ์ ์ฑ ํธ์ง๊ธฐ๊ฐ ์๋ ๊ฒฝ์ฐ (Windows 11 Home ๋ฑ) ์ด๋ฅผ ์ ์ฉํ์ง ๋ชปํ ์ ์์ต๋๋ค.๋ฐฉ๋ฒ1. Win+R๋ฅผ ์ ๋ ฅํ์ฌ ์คํ์ฐฝ์ด ๋จ๋ฉด, gpedit.msc๋ฅผ ์ ๋ ฅ ํ ์ํฐ๋ฅผ ์นฉ๋๋ค.2. ์๋์ ๊ฐ์ ๊ทธ๋ฃน ์ ์ฑ ํธ์ง๊ธฐ๊ฐ ๋ํ๋ฉ๋๋ค.3. ํ๋ฉด ์ข์ธก ํธ๋ฆฌ์์ Computer Configuration > Administrative Templates > Windows Components > Windows AI (์ปดํจํฐ ๊ตฌ์ฑ > ๊ด๋ฆฌ ํ ํ๋ฆฟ > Windows ๊ตฌ์ฑ์์ > Windows AI)๋ก ์ด๋ํฉ๋๋ค.4. ์์ ๊ฐ์ด Disable Click to Do (Click to Do ๋นํ์ฑํ)๋ฅผ ๋๋ธํด๋ฆญํฉ๋๋ค.5. ์์ ๊ฐ์ด ํ์ ์ฐฝ์ด ๋ํ๋ฉ๋๋ค. Enabled (ํ์ฑํ๋จ)์ ์ ํ ํ OK (ํ์ธ)๋ฅผ ๋๋ฆ ๋..

ํ์ฌ ํ๊ฒฝ์์ Ubuntu 25.04 ๋ฐ์คํฌํฑ ํ๊ฒฝ (Gnome 48, Wayland ์ธ์ , ibus ํ๊ธ ์ ๋ ฅ๊ธฐ)Fractional scaling ์ ์ฉ๋จsnap์ด ์๋ .deb ํจํค์ง ํ์ผ๋ก ์ค์นํ VS Code๋ฌธ์ ์ค๋ช VS Code ์คํ ์ ํ๋ฆฐ(blurry) ํ๋ฉด, ์ธํ ๋ ๋ฐ์(์ ์ด์๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ์ฌ) VS Code์ Ozone ํ๋ซํผ ์ต์ ์ X11 (Xwayland)๊ฐ ์๋ Wayland๋ก ์ ์ฉ ์ ํ๊ธ ์ ๋ ฅ์ด ๋ถ๊ฐ์ฆ, ์ ํ์ง๊ฐ ๋ ๊ฐ์์ต๋๋ค. ํ๋ฆฐ ํ๋ฉด๊ณผ ์ธํ ๋์ ์ฐธ๊ณ ์ฐ๊ฑฐ๋, ์ ๊ฑธ ๊ณ ์น๊ณ ํ๊ธ ์ ๋ ฅ์ ํฌ๊ธฐํ๊ฑฐ๋.๋ชฉํํ๋ฆฐ ํ๋ฉด, ์ธํ ๋, ํ๊ธ ์ ๋ ฅ ๋ถ๊ฐ ํ์์ ๋ชจ๋ ํด๊ฒฐํฉ๋๋ค.ํด๊ฒฐ์ฑ VS Code ์คํ ์ --ozone-platform-hint=wayland --enable-wayland..

์ธํธ๋กํ๋ฆฌํ ๋ค๋์ ํด์ง ๊ณ ๋์ ๊ฐ๊ฒฐํ๊ณ ์ค๋ฆฝ์ ์ด๋ฉด์๋ ๋ฏธ๋ คํ ๋ชจ์์๋ฅผ ๊ฐ์ถ์ด ์์คํ UI๋ก ์ ๊ฒฉ์ธ ํฐํธ์ ๋๋ค.๊ทธ๋ฌ๋ ์ด ํฐํธ๋ค์๋ ์์ ๊ฐ์ด (์ซ์)x(์ซ์)๊ฐ (์ซ์)×(์ซ์)๋ก ๋์ฒด๋๋ '๋ฌธ๋งฅ ๋์ฒด (calt, ligature ๋ฑ)' ๊ธฐ๋ฅ์ด ํฌํจ๋์ด ์๋๋ฐ, ์ด๊ฑด ์ธ์์ ์ ํฉํ ์ง๋ ๋ชฐ๋ผ๋ ํ ๊ธ์ ํ ๊ธ์๊ฐ ์๋ณธ ๊ทธ๋๋ก์ฌ์ผ ํ๋ ์์คํ UI์๋ ๊ทธ๋ ์ง ์์ ์ ์์ต๋๋ค.ํ์ฌ, ์ด๋ฒ ํฌ์คํธ์์๋ FontForge๋ผ๋ ํฐํธ ํธ์ง ํด์ ์ด์ฉํ์ฌ ํน์ ligature๋ฅผ ์ ๊ฑฐํ๋ ๋ฐฉ๋ฒ์ ์๊ฐํด ๋๋ฆฌ๊ฒ ์ต๋๋ค. ํฐํธ ์ด๊ธฐ์ ๋ ํด์ง ๊ณ ๋ Medium์ OTF ๋ฒ์ ์ ์ด์์ต๋๋ค.ํฐํธ ์์ ํ๊ธฐ์๋จ ๋ฉ๋ด์์ Element > Font Info...๋ฅผ ์ ํํฉ๋๋ค.ํฐํธ ์ ๋ณด ์ฐฝ์ด ์ด๋ฆฝ๋๋ค. ์ข์ธก Lookups๋ฅผ ํด๋ฆญํ ๋ค,..

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๋ฅผ ํ ๋นํ ..

Mutex์ Semaphore, Condition Variable๋ ๋๊ธฐํ/๋์์ฑ ์ ์ด์์ ์์ฃผ ์ค์ํ ๊ฐ๋ ์ ๋๋ค. Mutex์ Semaphore๊ฐ ๋ง์น ๊ตํต ์ฒด์ฆ์ ๊ด๋ฆฌํ๋ ๊ฒฝ์ฐฐ๊ด์ด๋ ์ ํธ๋ฑ๊ณผ ๊ฐ๋ค๋ฉด, Condition Variable์ ์ ํธ๊ฐ ๋ฐ๋๊ธธ ๊ธฐ๋ค๋ฆฌ๋ ์ฐจ๋๋ค์ ์ ์ง์ ๊ฐ์ ์กด์ฌ์ ๋๋ค. Condition Variable์ ์ด๋ค ์กฐ๊ฑด์ด ๋ง์กฑ๋ ๋๊น์ง ์ค๋ ๋๊ฐ ๊ธฐ๋ค๋ฆฌ๊ฒ ํด์ฃผ๋ ๋๊ธฐํ ๋๊ตฌ์ด๊ธฐ์, ์ด๋ฅผ ๊ตํต ์ ํธ์ ๋น์ ํ๋ฉด, ์ฐจ๋ค์ด ์ ํธ๊ฐ ์ด๋ก๋ถ๋ก ๋ฐ๋๊ธฐ ์ ๊น์ง ์ ์ง์ ์์ ๊ธฐ๋ค๋ฆฌ๋ ์ํฉ์ด๋ ๋น์ทํ๊ฑฐ๋ ์.Mutex (Mutual Exclusion)Mutex๋ ํ๊ตญ์ด๋ก "์ํธ ๋ฐฐํ(๋ฐฐ์ )"๋ก ๋ฒ์ญ๋ฉ๋๋ค. ๊ทธ ์ด๋ฆ ๊ทธ๋๋ก ๊ณต์ ์์์ ๋ํด ์ค์ง ํ๋์ ์ค๋ ๋๋ง ์ ๊ทผํ๋๋ก ํ์ฉํ๋ ๋ฉ์ปค๋์ฆ์ ๋๋ค. ๋ง์น ํ์ฅ..

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