ํ๋์ address space์ ์๋ก ๋ค๋ฅธ ์ค๋ ๋๋ค์ด ๋์์ ์ ๊ทผํ๋ฉด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
Race Condition
- ๋ ๊ฐ ์ด์ ํ๋ก์ธ์ค/์ค๋ ๋๊ฐ shared resource์ ๋์์ concurrentํ๊ฒ ์ ๊ทผํจ์ผ๋ก์จ ๊ฒฐ๊ณผ ๊ฐ์ด ํ์ ๋์ง๊ฐ ์๊ณ , ๊ทธ๋ ๊ทธ๋ ์คํํ ๋๋ง๋ค ์กฐ๊ธ์ฉ ๋ฐ๋๋ ํ์
- ๋ ๊ฐ ์ด์์ concurrent ํ ํ๋ก์ธ์ค, ์ค๋ ๋๋ค์ด ๊ณต์ ์์์ ์ ๊ทผ ํ ๋ ๋๊ธฐํ ํด๊ฒฐ ๊ณผ์ ์์ด ์ํํ๋ ์ํฉ
race condition์ ๋ฐฉ์งํ๊ธฐ ์ํ ๊ธฐ๋ฒ → synchronization
Critical Section
- ์ฝ๋์์ ๋๊ฐ ์ด์์ ํ๋ก์ธ์ค๊ฐ ๋์์ ๋ฆฌ์์ค๋ฅผ ์ ๋ฐ์ดํธ ํ ์ ์๋ ๊ตฌ๊ฐ.
- ๊ฐ ํ๋ก์ธ์ค์์ ๊ณต์ ๋ฐ์ดํฐ์ ์ ๊ทผํ๋ ํ๋ก๊ทธ๋จ ์ฝ๋ ๋ถ๋ถ.
- ์ฌ๋ฌ ๊ฐ์ ์ค๋ ๋๊ฐ ์ํ๋๋ ํ๋ก๊ทธ๋จ์์ ๊ฐ ํ๋ก์ธ์ค/์ค๋ ๋๋ค์ด ๊ณต์ ํ๋ ๋ฐ์ดํฐ ๋ฑ์ ๋ณ๊ฒฝํ๋ ์ฝ๋ ์์ญ
critical section์ ๋ณดํธํ๊ธฐ ์ํด ๋ฐ๋์ ์ง์ผ์ ธ์ผ ํ๋ 3๊ฐ์ง
- Mutual exclusion
- critical section์ ์ค์ง ํ๋ฒ์ ํ๋์ ํ๋ก์ธ์ค๋ง ๋ค์ด๊ฐ ์ ์์.
- ํ ํ๋ก์ธ์ค๊ฐ ์ํ ์ค์ธ ์ํ์์๋ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ์ ๋ ์ํ ์ค์ธ critical section์ ์ ๊ทผํ ์ ์์.
- Progress
- lock์ ๋ํด์ ์ฌ๋ฌ๊ฐ๊ฐ ์์ฒญํ์ ๋, lock์ ์ก๊ณ ์๋ ์ฌ๋์ด ์๋ฌด๋ ์๋ ๊ฒฝ์ฐ์๋ ์์ฒญํ ์ฌ๋ฌ ๊ฐ ์ค์ ํ๋๋ ๋ฐ๋์ lock์ ์ก์ ์ ์์ด์ผ ํจ. critical section์ ๋ค์ด๊ฐ ์ ์์ด์ผ ํจ.
- Bounded waiting
- lock์ ์ก์ผ๋ ค๊ณ ํ๋๋ฐ ํ๋ช ์ด ๊ณ์ lock์ ๋ชป ์ก๋ ์ํฉ ๋ฐ์ํ๋ฉด ์๋จ. starvaiton ํ์ ์๋ฐฉํ ์ ์์ด์ผํจ.
- critical section์ ๋ค์ด๊ฐ๊ณ ์ ํ๋ ํ๋ก์ธ์ค๋ ์ธ์ ๊ฐ๋ ๊ผญ ์ง์ ํ ์ ์์ด์ผ ํจ.
'๐ป > CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ด์์ฒด์ ] Synchronization - 3. Spin lock๊ณผ Mutex lock, Mutex์ Semaphore (0) | 2022.12.16 |
---|---|
[์ด์์ฒด์ ] Synchronization - 2 (0) | 2022.12.16 |
[์ด์์ฒด์ ] Real-time System์ด๋? (1) | 2022.12.16 |
CS ์ฐธ๊ณ (0) | 2022.06.12 |
CS50_๋ฐฐ์ด (0) | 2022.06.12 |