์ด์์ฒด์ ๋ก๋ถํฐ ์์คํ ์์์ ํ ์ฅ ๋ฐ๋ ์์ ์ ๋จ์๋ฅผ ํ๋ก์ธ์ค๋ผ๊ณ ํ๋ค.
์์คํ ์์์ ์๋ก๋ ๋ฌด์์ด ์์๊น โ
1. CPU ์๊ฐ
2. ์ด์๋๊ธฐ ์ํด ํ์ํ ์ฃผ์ ๊ณต๊ฐ
3. Code, Data, Stack, Heap์ ๊ตฌ์กฐ๋ก ๋์ด ์๋ ๋ ๋ฆฝ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ
ํ๋ก์ธ์ค๋ ๊ฐ๊ฐ ๋ ๋ฆฝ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๊ฐ์ง๊ณ ์๋๋ฐ ํ๋ก์ธ์ค ๋ด์ ์คํ๋๋ ์ฌ๋ฌ ํ๋ฆ์ ๋จ์์ธ ์ค๋ ๋์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๊ณต์ ํ๋ค.

ํ๋์ ํ๋ก์ธ์ค ์์ ์ฌ๋ฌ ์ค๋ ๋๊ฐ ์กด์ฌ(๊ธฐ๋ณธ์ ์ผ๋ก ํ๋์ ์ค๋ ๋๋ฅผ ๊ฐ์ง๊ณ ์์)ํ ์ ์์ผ๋ฉฐ ๊ฐ์ ํ๋ก์ธ์ค ๋ด์ ์๋ ์ค๋ ๋๋ค์ ๊ฐ๊ฐ์ Stack ์์ญ์ ๊ฐ์ง๊ณ ์๊ณ Code, Data, Heap ์์ญ์ ๊ณต์ ํ๋ค.
์คํ ์์๋ ์ง์ญ๋ณ์, ๋ฆฌํด ์ฃผ์, ๊ฐ ํ๋ผ๋ฏธํฐ, ๋ฆฌํด ๊ฐ์ด ๋ค์ด๊ฐ๋ฉฐ ์ด๊ฒ์ ๊ฐ๊ฐ์ ์ค๋ ๋๊ฐ ๊ฐ์ง๊ณ ์๋ค.
ํ ์์๋ ๋์ ์ผ๋ก ํ ๋น๋๋ ๋ฐฐ์ด์ด๋ ๊ฐ์ฒด๊ฐ ๋ค์ด๊ฐ๋ฉฐ ์ด๋ฅผ ๊ณต์ ํ๊ธฐ์ ํ ์ค๋ ๋๊ฐ ํ๋ก์ธ์ค ์์์ ๋ณ๊ฒฝํ๋ฉด(๋์ ์ด๋ผ๋ ๋ป์ด๋ฏ๋ก ์ฆ Heap Area ๋ถ๋ถ) ๋ค๋ฅธ ์ด์ ์ค๋ ๋๋ ๋ณ๊ฒฝ ์ฌ์ค์ ์ฆ์ ์ ์ ์๋ ๊ฒ์ด๋ค. ๊ทธ ๋ณ๊ฒฝ์ฌ์ค์ ๋ฐ์์์ ์คํ์์ ํ๋์ ํ์ฌ ๋ฐ์ํ ๊ฒ์ด๋ค.
| ๋ฉํฐํ๋ก์ธ์ค | ๋ฉํฐ์ค๋ ๋ |
| ํ๋์ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ฌ๋ฌ๊ฐ์ ํ๋ก์ธ์ค๋ก ๊ตฌ์ฑํ์ฌ ๊ฐ ํ๋ก์ธ์ค๊ฐ ํ๋์ ์์ ์ ์ฒ๋ฆฌํ๋๋ก ํ๋ ๊ฒ | ํ๋์ ์์ฉํ๋ก๊ทธ๋จ์ ์ฌ๋ฌ๊ฐ์ ์ค๋ ๋๋ก ๊ตฌ์ฑํ๊ณ ๊ฐ ์ค๋ ๋๋ก ํ์ฌ๊ธ ํ๋์ ์์ ์ ์ฒ๋ฆฌํ๋๋ก ํ๋ ๊ฒ |
| ์ฌ๋ฌ ๊ฐ์ ์์ ํ๋ก์ธ์ค ์ค ํ๋์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ๋ค๋ฅธ ํ๋ก์ธ์ค๋ก ์ ํ๋์ง ์๋๋ค. | ํต์ ๋ถ๋ด ์ ์, ์์คํ ์ฒ๋ฆฌ๋ ์ฆ๊ฐ, ์์คํ ์์ ์๋ชจ ๊ฐ์ |
| Context Switching ๋ฐ์(CPU ๋ ์ง์คํฐ ๊ต์ฒด ๋ฟ๋ง ์๋๋ผ RAM๊ณผ CPU ์ฌ์ด์ ์บ์ฌ ๋ฉ๋ชจ๋ฆฌ์ ๋ํ ๋ฐ์ดํฐ๊น์ง ์ด๊ธฐํ), ํ๋ก์ธ์ค๊ฐ ์ด๋ ต๊ณ ๋ณต์กํ ํต์ ๊ธฐ๋ฒ | ์์ ๊ณต์ ์ ๋ฌธ์ ๋ฐ์ (๋๊ธฐํ ๋ฌธ์ ๋ฐ์), ํ๋์ ์ค๋ ๋์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ์ ์ฒด ํ๋ก์ธ์ค๊ฐ ์ํฅ์ ๋ฐ๋๋ค. |
๋๊ธฐํ ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ ๊น โ
๋ณํ ์ ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ์ ๋ถ์ผ์น๋ฅผ ๋ง์์ผ ํ๋ค.
๐ก ์๊ณ ์์ญ
ํ๋์ ํ๋ก์ธ์ค๊ฐ ์์ ๊ฐ๋ฅํ ๊ณต์ ์์์ ์ก์ธ์คํ๊ณ ์์ ๋, ๋ค๋ฅธ ํ๋ก์ธ์ค๋ ๊ทธ ๊ณต์ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์๋๋ก ๋ณด์ฅ

๐ก ์๊ณ ๊ตฌ์ญ ์ํธ ๋ฐฐ์ ๊ธฐ๋ฒ
1. ๋ฎคํ ์ค
์ผ์ข ์ locking ๋งค์ปค๋์ฆ์ผ๋ก lock์ ๊ฐ์ง๊ณ ์์ ๋๋ง ๊ณต์ ๋ฐ์ดํฐ ์ ๊ทผ ๊ฐ๋ฅ
ํค๋ฅผ ๊ฐ์ง ์ฌ๋๋ง์ด ์ ๊ทผ ๊ฐ๋ฅํ๊ณ ์ผ์ด ๋๋๋ฉด ํค ๋ฐ๋ฉ
2. ์ธ๋งํฌ์ด
๋์์ ๋ฆฌ์์ค์ ์ ๊ทผํ ์ ์๋ ํ์ฉ ๊ฐ๋ฅํ counter์ ๊ฐ์๋ฅผ ์๋ฏธ
count ์๊ฐ 1๊ฐ๋ฉด binary semaphore๋ผ๊ณ ํ๋ฉฐ ์ด๋ ๋ฎคํ ์ค์ ๊ฐ๋ ์ ์ผ๋ก ๊ฐ๋ค.
์ฌ๋ฌ๊ฐ์ด๋ฉด counting semaphore๋ผ๊ณ ๋ถ๋ฆฐ๋ค.
3. ๋ชจ๋ํฐ
๋ฎคํ ์ค์ condition valuable๋ฅผ ๊ฐ๊ณ ์๋ ๋งค์ปค๋์ฆ
์์ฐจ์ ์ผ๋ก๋ง ์ฌ์ฉํ ์ ์๋ ๊ณต์ ์์์ด๋ ๊ทธ๋ฃน์ ํ ๋นํ๋ฉฐ ๋ฐ์ดํฐ์ ํ๋ก์์ ๋ฅผ ํฌํจํ๋ ๋ณํ์ฑ ๊ณ ๊ธ ๊ตฌ์กฐ์ฒด
๋ชจ๋ํฐ ๋ด๋ถ ๋ณ์๋ ๋ชจ๋ํฐ ๋ด๋ถ์์๋ง ์ ๊ทผํ ์ ์๊ณ ์ด๋ ์ ๋ณด์ ์ํ ๊ธฐ๋ฒ
๋ชจ๋ ์๋ฐ ๊ฐ์ฒด๋ Monitor๋ฅผ ๊ฐ๊ณ ์๋ค.
๋ฎคํ ์ค์ ์ธ๋งํฌ์ด์ ์ฐจ์ด์ ์ โ
๋ฎคํ ์ค๋ ๊ณต์ ์์์ ๋ํ ์ ๊ทผ๊ถํ ์ฆ lock์ด๋ผ๋ ํค๋ฅผ ํ๊ฐ๋ง ๊ฐ์ง ์ ์๊ณ ์ธ๋งํฌ์ด๋ ์ฌ๋ฌ๊ฐ ๊ฐ๋ฅ
'OS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ๊ต์ฐฉ์ํ ํ์์กฐ๊ฑด๊ณผ ํด๊ฒฐ๋ฐฉ๋ฒ (0) | 2021.06.03 |
|---|---|
| CPU ์ค์ผ์ค๋ง (0) | 2021.05.24 |
| ํ๋ก์ธ์ค ์ค์ผ์ค๋ง์ด ๋ญ๊นโ (0) | 2021.01.04 |
| ์ค๋ ๋์ ๋ํด ์์๋ณด์ (0) | 2021.01.03 |
| ์ธํฐ๋ฝํธ๋ฅผ ์์๋ณด์ (0) | 2020.12.31 |