CS(11)
-
Race Condition
Race Condition(๊ฒฝ์ ์ํ)๋, ๋ ์ด์์ ํ๋ก์ธ์ค ํน์ ์ค๋ ๋๊ฐ ๊ณต์ ๋ ์์์ ์ ๊ทผํ ๋ ์๋ก ๊ฒฝ์ํ๋ ๊ฒ์ฒ๋ผ ๋์๋ค๋ฐ์ ์ผ๋ก ์ ๊ทผ์ ์ํํ์ฌ ๋์์ฑ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ ์ํ๋ฅผ ๊ฒฝ์ ์ํ๋ผ๊ณ ํ๋ค. ์ด๋ฌํ ์ํ์์๋ ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ํน์ ์์์ ๋์์ ์ ๊ทผํ๊ฒ ๋๋๋ฐ ์ ๊ทผ ์์๊ฐ ๋งค๋ฒ ์กฐ๊ธ์ฉ ๋ฌ๋ผ์ง ์ ์๊ธฐ ๋๋ฌธ์ ๊ทธ์ ๋ฐ๋ฅธ ์๋ฃ ์ฒ๋ฆฌ์ ์ผ๊ด์ฑ์ด ๋จ์ด์ง๊ฒ ๋๋ค. ํด๊ฒฐ์ฑ ๊ณต์ ์์์ ๋ํ ๋์์ฑ ๋ฌธ์ ๋ฅผ ์ํด ์ํธ ๋ฐฐ์ (Mutual Exclusion) ๋ก์ง์ ์ฌ์ฉํ ์ ์๋ค. ์ด์์ ๊ฐ์ฅ ๋ง์ด ์ฐ์ด๋ ๊ฒ์ด Mutex, Semaphore ๊ฐ์ ๋ฐฉ๋ฒ๋ค์ธ๋ฐ, ์ด๋ค์ ๋ํ ์ค๋ช ์ ๋ค์ ๋งํฌ์์ ๋์ฒดํ๋๋ก ํ๊ฒ ๋ค. 2023.03.26 - [CS/CS ์คํฐ๋] - Mutex & Semaphore Mute..
2023.03.30 -
Mutex & Semaphore
๊ณต์ ์์ ์ ๊ทผ์ ๋ํด ๋์์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ ๊ฐ๋ฐ์์ ์ ์ฅ์์ ์ค์ํ ํ๋์ด๋ค. ๊ฐ๋ น, ๋ฉํฐ ์ค๋ ๋ ํ๊ฒฝ์์ ์คํ์ ์ ์ธํ ๋ค๋ฅธ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ๋ ์ํฉ์ด๋ ๋ค์ค ํ๋ก์ธ์ค ํ๊ฒฝ์์ IPC๋ฅผ ์ํด ๊ณต์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ์ํฉ ๋ฑ์ด ์กด์ฌํ ์ ์๋ค. ์ด ๋ ํ์ฉํ ์ ์๋ ์คํฌ์ด ๋ฐ๋ก Mutex์ Semaphore์ด๋ค. Mutex ๋ฎคํ ์ค๋ Mutual Exclusion์ ์ค์๋ง๋ก ์ํธ ๋ฐฐ์ ๋ผ๋ ๋ป์ ๊ฐ๋๋ค. ๋ฎคํ ์ค๋ ํน์ ๊ณต์ ์์์ ๋ํด ๋จ ํ๋์ ์ฃผ์ฒด๋ง์ด ์ ๊ทผํ ์ ์๊ฒ ๋ง๋๋ ๋ฝ์ ๊ฐ๋ ์ด๋ค. ๋ฎคํ ์ค์ ๊ตฌํ์ ํฌ๊ฒ lock()๊ณผ unlock()์ผ๋ก ์ด๋ฃจ์ด ์ง๋๋ฐ, (wait()์ release()๋ก๋ ํํํ๋๋ฐ ์ฌ๊ธฐ์๋ lock()๊ณผ unlock()์ด ๋ ์ง๊ด์ ์ธ ์๋ฉ์ด๋ผ๊ณ ํ๋จ) lock()์ ํน์ ..
2023.03.26 -
CPU ์ค์ผ์ค๋ง
ํ๋์ ๋ค์ด์ PC์ ์ปดํจํ ์ฑ๋ฅ์ด ์ฆ๊ฐํ๊ณ , ์ด์ ๋ฐ๋ผ ๋์์ ์ฌ๋ฌ ํ๋ก๊ทธ๋จ์ ๋์ ์ฌ์ฉํ๋ ์ผ์ด ์ฆ๋ค. ์ด์์ฒด์ ์ ์ฅ์์๋ ๋์๋ค๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๊ณ ์๋ ํ๋ก์ธ์ค๋ค์ ๋ํด, ๋น๋ก CPU ์ฝ์ด๊ฐ ํ๋๋ผ์ ํ ๋ฒ์ ํ๋์ ํ๋ก์ธ์ค ๋ง์ ์คํ์ํฌ ์ ์๋ ์ํฉ์ผ์ง๋ผ๋, ์ฌ์ฉ์๋ก ํ์ฌ๊ธ ๋ชจ๋ ํ๋ก์ธ์ค๋ค์ด ๋ณ๋ ฌ์ ์ผ๋ก ์คํ๋๊ณ ์๋ค๋ ์ฐฉ๊ฐ์ ๋ถ๋ฌ์ผ์ผํฌ ์ ์์ด์ผ ํ๋ค. ๋ง์ฝ PC๋ฅผ ํตํด ์์ ์ ๋ค์ผ๋ฉด์ ์น์ํ์ ํ๋ ์ํฉ์์, ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์คํ๋๋ ๋์ ๊ฒ์์ฐฝ์ ํ์ดํ์ด ์๋๋ค๋ฉด ์ด๋ ์ด์์ฒด์ ์ ์ญํ ์ ์ ๋๋ก ์ํํ๊ณ ์์ง ์์ ๊ฒ์ด๋ค. ์ด๋ฅผ ์ํด, ์ด์์ฒด์ ๋ CPU๋ฅผ ํ ๋นํ ์์ ๋ค์ ๋ํ ์ค์ผ์ค๋ง์ ์ํํ๋ค. ๋จ์ํ ์ค์ผ์ค๋ง์ ์ํ์ํค๋ ๋จ๊ณ๋ฅผ ๋์ด, ์ด๋ฅผ ์ ์ํํ ์ ์์ด์ผ ํ๋ค. ์ค์ผ์ค๋ง์ ํ๊ฐ ํญ..
2023.03.25 -
ํ๋ก์ธ์ค ์ฃผ์ ๊ณต๊ฐ
ํ๋ก์ธ์ค? ํ๋ก์ธ์ค๋ User mode์์ ์๋ํ๋ ํ๋์ ํ๋ก๊ทธ๋จ์ ์๋ฏธํ๋ค. (ex. ํฌ๋กฌ, ์นด์นด์คํก, ๋์ค์ฝ๋ ๋ฑ) ๊ฐ ํ๋ก์ธ์ค๋ค์ CPU์ ๋ฉ๋ชจ๋ฆฌ ์์์ ์์กดํ์ฌ ์๋๋๋ฉฐ User mode ์์ค์์ ์๋ํ๊ธฐ ๋๋ฌธ์ ํ์ผ ์ ์ถ๋ ฅ, ๋คํธ์ํฌ ํต์ ๋ฑ์ ์ง์ ์ํํ์ง๋ ๋ชปํ๊ณ ํธ๋ฉ์ ํตํด ๋ค์ํ ์์คํ ์ฝ์ ํธ์ถํ์ฌ ์ด๋ฅผ Kernel mode(์ด์ ์ฒด์ )์ ์์ฒญํ๊ฒ ๋๋ค. ๊ฐ ํ๋ก์ธ์ค๋ค์ ๋์๋ค๋ฐ์ ์ผ๋ก ์๋ํ ์ ์๋๋ฐ, ์ด๋ ์ด์์ฒด์ ์ ๋ฆฌ์์ค ๊ฐ์ํ๋ฅผ ํตํด์ ์ด๋ฃจ์ด์ง๋ค. ํน์ PC์ CPU์ ๋ฉ๋ชจ๋ฆฌ๋ ๊ฐ๊ฐ ํ๋๋ฟ์ผ์ง๋ผ๋ ์ด์์ฒด์ ๊ฐ ์ด๋ค์ ๋ง์น ๊ฐ ํ๋ก์ธ์ค๋ค๋ง์ ์ํ CPU, ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋ ๊ฒ์ฒ๋ผ ์ชผ๊ฐ๊ณ ์ค์ผ์ค๋งํ๋ค. CPU ๊ฐ์ํ๋ ๊ฐ ํ๋ก์ธ์ค๊ฐ ๋งค์ฐ ์งง์ ์๊ฐ ๋์๋ง์ CPU๋ฅผ ์ ์ ํ๋๋ก ํ์ฌ ๊ณ์..
2023.03.01 -
์ฃผ๋์ด ๊ฐ๋ฐ์ ๋ฉด์ ์ค๋น - DB
ํด๋น ํฌ์คํ ์ ๋ฉด์ ์ค๋น๋ฅผ ํ๋ฉด์ ๊ณต๋ถํ ๋ด์ฉ๋ค์ ๊ธฐ๋กํ๊ณ ํ์ ๋ค์ ๋ณด๊ธฐ ์ํด ์์ฑํ์ต๋๋ค! ๋ง์ฝ ์๋ชป๋ ๋ด์ฉ์ด ์๋ค๋ฉด ์ ๊ทน์ ์ผ๋ก ํผ๋๋ฐฑํด์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํน์ง ์ค์๊ฐ ์ ๊ทผ์ฑ(Real-Time Accessibility) ์ฌ์ฉ์์ ๋ฐ์ดํฐ ์๊ตฌ์ ์ค์๊ฐ์ผ๋ก ์๋ต ๊ฐ๋ฅ ์ง์์ ์ธ ๋ณํ(Continuous Evolution) ์ง์์ ์ผ๋ก ๋ณํํ๋ ํ์ค ์ธ๊ณ๋ฅผ ์ ํํ ๋ฐ์ํ๊ธฐ ์ํด DB ๋ํ ์ง์์ ์ผ๋ก ๋ณํ ๊ฐ๋ฅ ๋์ ๊ณต์ ๊ฐ๋ฅ(Concurrent Sharing) ์ฌ๋ฌ ์ฌ์ฉ์๊ฐ ๋ฌธ์ ์์ด ๋์์ ์ด์ฉ ๊ฐ๋ฅ ๋ด์ฉ์ ์ํ ์ฐธ์กฐ(Content Reference) ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋ ๋์คํฌ์ ์์น, ์ฃผ์๊ฐ ์๋ ๋ฐ์ดํฐ์ ๊ฐ์ ํตํด ์ฐธ์กฐ ๊ฐ๋ฅ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์ด DDL(์ ์์ด: Data Definition La..
2023.01.10