์ด์์ฒด์ ๋?
๐ก ์ด์์ฒด์ ๋?
- ์ปดํจํฐ ํ๋์จ์ด๋ฅผ ๊ด๋ฆฌํ๋ ์ํํธ์จ์ด
- ์์ฉ ํ๋ก๊ทธ๋จ๊ณผ ์ปดํจํฐ ํ๋์จ์ด ์ฌ์ด์ ์ธํฐํ์ด์ค ์ญํ
- ์ฌ์ฉ์๊ฐ ์ปดํจํฐ๋ฅผ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ํ๊ฒฝ ์ ๊ณต
- ์์คํ ์ ์์๊ณผ ๋์์ ๊ด๋ฆฌํ๋ ์ํํธ์จ์ด
๐ก ์ด์์ฒด์ ์ ๊ด๋ จ๋ ๊ธฐ๋ณธ ์ฉ์ด
- ํ๋ก๊ทธ๋จ(Program)
: ์ปดํจํฐ๋ฅผ ์คํ์ํค๊ธฐ ์ํด ์์ฐจ์ ์ผ๋ก ์์ฑ๋ ์ผ๋ จ์ ๋ช ๋ น์ด ๋ชจ์ - ํ๋ก์ธ์ค(Process)
: ์คํ๋๊ณ ์๋ ํ๋ก๊ทธ๋จ์ ์ถ์ํ - ์ฃผ์ ๊ณต๊ฐ(Address Space)
: ํ๋ก์ธ์ค๊ฐ ์ฐจ์งํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ผ๋ก ์๋ก์ ์ฃผ์ ๊ณต๊ฐ์ ์นจ๋ฒํ ์ ์์(Protection Domain) - ํ์ผ(File)
: ํ๋ก์ธ์ค์์ ์ฝ๊ณ ์ธ ์ ์๋ persistent storage - ํฌํธ(Port)
: ์ปดํจํฐ ๊ฐ์ ๋ฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ๋ communication endpoint๋ก ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๋คํธ์ํฌ ์์์ ์์ด์ง ์๊ฒ ํด ์ค
๐ก ์ ์ ๋ชจ๋ vs ์ปค๋ ๋ชจ๋
์ด์์ฒด์ ๋ ์ ์ ๋ชจ๋(user mode)์ ์ปค๋ ๋ชจ๋(kernel mode)๋ก ๋๋์ด์ ๋์ํ๋ค. ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ด์์ฒด์ ์ ์ค์ํ ๋ฐ์ดํฐ์ ์ ๊ทผํด์ ๋ณ๊ฒฝํ์ง ๋ชปํ๊ฒ ํ๊ธฐ ์ํด์ ๋ ๊ฐ์ง ๋ชจ๋๋ก ๋๋๋ค. ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ปค๋ ๋ชจ๋์์๋ง ์ ๊ณต๋๋ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด, ์ ์ ๋ชจ๋ ํ๋ก์ธ์ค์์ ์์คํ ์ฝ(system call)์ ํด์ ํธ๋ฉ(trap)์ ๋ฐ์์ํจ๋ค. ์ดํ ์ปค๋ ๋ชจ๋์์ ๋ช ๋ น์ด๋ฅผ ์คํํ ๋ค์ ๋ค์ ์ ์ ๋ชจ๋๋ก ์คํ ๊ฐ์ ๋ฐํํ๋ค.
์ ์ ๋ชจ๋ | ์ปค๋ ๋ชจ๋ |
์ปค๋ ๋ชจ๋์ ๋นํด ๋ฎ์ ๊ถํ์ ๊ฐ์ง | ๋ชจ๋ ๊ถํ์ ๊ฐ์ง |
์์ฉ ํ๋ก๊ทธ๋จ์ด ์คํ๋จ | ์ด์์ฒด์ ๊ฐ ์คํ๋จ |
privilege ๋ช ๋ น์ด ์คํ ๋ถ๊ฐ๋ฅ | privilege ๋ช ๋ น์ด ์คํ ๋ฐ ๋ ์ง์คํฐ ์ ๊ทผ ๊ฐ๋ฅ |
โ์์คํ
์ฝ(System Call)
์ด์์ฒด์ ์ ์ปค๋์ด ์ ๊ณตํ๋ ์๋น์ค๋ฅผ ์ด์ฉํ๊ธฐ ์ํด ์์ฉ ํ๋ก๊ทธ๋จ์ด ์ปค๋์ ์ ๊ทผํ๊ธฐ ์ํ ์ธํฐํ์ด์ค
๐ก ์ปดํจํฐ ์์คํ ๊ตฌ์กฐ
โ ๋ฉํฐ ํ๋ก์ธ์ฑ(Multi-processing)
- 2๊ฐ ์ด์์ ํ๋ก์ธ์๋ฅผ ๊ฐ์ง๋ ๊ฒ
- parallel system, multi-core system์ด๋ผ๊ณ ๋ ํจ
- ๋์นญ ๋ฉํฐํ๋ก์ธ์ฑ(Symmetric Multiprocessing, SMP)
: ๋ ๊ฐ ์ด์์ ํ๋ก์ธ์๊ฐ ํ๋์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณต์ ํ์ฌ ์ฌ์ฉํ๋ ๊ตฌ์กฐ, ํ์ฌ ๋๋ถ๋ถ์ ๋ฉํฐ ํ๋ก์ธ์๋ SMP๋ฅผ ์ฌ์ฉ
์ด๋ฐ์๋ ๋ถ์ฐ ์์คํ , ํด๋ฌ์คํฐ ์์คํ (๊ณต๋์ ๋ชฉ์กฑ์ ์ํด ์ฌ๋ฌ ์์คํ ๋คํธ์ํฌ๋ฅผ ํตํด ์์ ์ํ), ์๋ฒ ๋๋ ์์คํ (ํน์ ๋ชฉ์ ์ ์ํ OS ๋ฐ SW๊ฐ HW์ ํ์ฌ๋ ํํ์ ์์คํ , ex ์ค๋งํธํฐ), ๋ฆฌ์ผํ์ ์์คํ ๋ฑ์ด ์๋ค.
๐ก ์ด์์ฒด์ ๊ตฌ์กฐ
โ ๋ฉํฐํ๋ก๊ทธ๋๋ฐ(Multi-programming)
ํ๋์ ์์ ์งํ ์ค์ I/O ์์ ๋ฑ์ด ๋ฐ์ํ์ฌ CPU๊ฐ idle์ด ๋๋ฉด, ๋ค๋ฅธ ์์ ์ ์์ํด์ CPU์ ํจ์จ์ฑ์ ์ฆ๊ฐ์ํค๋ ๊ฒ์ด๋ค. ์ด๋ฅผ ์ํด์ ์ฌ๋ฌ ๊ฐ์ ์์ ์ด ๋ฉ๋ชจ๋ฆฌ์ ๋์์ ์ฌ๋ผ์์ผ ํ๋ค. ์ฆ, ๋ค๋ฅด๊ฒ ๋งํ๋ฉด ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฌ ๊ฐ์ ํ๋ก๊ทธ๋จ์ ๋์์ ์ฌ๋ฆฌ๋ ๊ฒ์ ๋ฉํฐํ๋ก๊ทธ๋๋ฐ์ด๋ผ๊ณ ํ๋ค.
โ ํ์ ์์ด๋ง(Time-sharing)
๋ฉํฐ ํ์คํน(Multi-tasking)์ด๋ผ๊ณ ๋ ํ๋ฉฐ, CPU๊ฐ ์ค์ผ์ค๋ง์ ํตํด ์์ ๋ค์ ๋น ๋ฅด๊ฒ switching ํ๋ฉด์ ๋ง์น ๋์์ ์์ ๋ค์ด ์ํ๋๋ ๊ฒ์ฒ๋ผ ๋๊ปด์ง๊ฒ ํ๋ ๊ฒ์ด๋ค. ๋ฉํฐ ํ์คํน ์ค์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ ๊ฒฝ์ฐ, ์ค์ํ(Swapping)์ ํตํด ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ ์ ์๋ค.
๐ก ์ด์์ฒด์ ์ ๊ธฐ๋ฅ
1. ํ๋ก์ธ์ค ๊ด๋ฆฌ
ํ์ฌ CPU๋ฅผ ์ ์ ํด์ผ ํ ํ๋ก์ธ์ค(๋๋ ์ค๋ ๋)๋ฅผ ๊ฒฐ์ (์ค์ผ์ค๋ง)ํ๊ณ , ์ค์ ๋ก CPU๋ฅผ ํ๋ก์ธ์ค์ ํ ๋นํ๋ค. ๋ํ ์ด ํ๋ก์ธ์ค ๊ฐ ๊ณต์ ์์ ์ ๊ทผ(๋๊ธฐํ)๊ณผ ํต์ (IPC ํต์ ) ๋ฑ์ ๊ด๋ฆฌํ๋ค.
2. ์ ์ฅ์ฅ์น ๊ด๋ฆฌ
๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ํ๋๋์คํฌ ๋ฑ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๋ค.
๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์์๋ ํ๋ก์ธ์ค์ ํ ๋นํ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ํ ๋น๊ณผ ํด์ ๋ฅผ ๋ด๋นํ๋ค. ๋ํ ๊ฐ ๋ฉ๋ชจ๋ฆฌ ์์ญ ๊ฐ์ ์นจ๋ฒ์ ๋ฐฉ์งํ๊ณ , ํจ์จ์ฑ ์ฆ๋๋ฅผ ์ํด ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
ํ๋๋์คํฌ์๋ ํ์ผ ํ์์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ค. ์ด๋ฐ ํ์ผ ๋ฐ์ดํฐ ๊ด๋ฆฌ๋ฅผ ์ํ ํ์ผ ์์คํ ์ ์ด์์ฒด์ ๊ฐ ๊ด๋ฆฌํ๋ค.
3. ๋คํธ์ํน
TCP/IP ๊ธฐ๋ฐ ์ธํฐ๋ท ์ฐ๊ฒฐ ๋ฑ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ด์์ฒด์ ์์ ์ง์ํ๋ ๋คํธ์ํฌ ํ๋กํ ์ฝ์ ์ฌ์ฉํ ์ ์๋ค.
4. ์ฌ์ฉ์ ๊ด๋ฆฌ
ํ๋์ PC๋ฅผ ์ฌ๋ฌ ์ฌ๋์ด ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, ๊ฐ ๊ณ์ ์ ๊ด๋ฆฌํ๋ค. ๋ณด์์ ์ํด ๊ฐ์ธ ํ์ผ์ ๋ํด์ ๋ค๋ฅธ ์ฌ์ฉ์๊ฐ ์ ๊ทผํ ์ ์๋๋ก ํ๋ค๋์ง, ํ์ผ์ด๋ ์์คํ ์์์ ์ ๊ทผ ๊ถํ์ ์ง์ ํ ์ ์๋๋ก ์ง์ํ๋ ๊ฒ์ด ์ฌ์ฉ์ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ด๋ค.
5. ๋๋ฐ์ด์ค ๋๋ผ์ด๋ฒ
์์คํ ์๋ ์ฌ๋ฌ ํ๋์จ์ด๊ฐ ๋ถ์ด์๋ค. ์ด์์ฒด์ ๋ ์ด๋ฅผ ์ธ์ํ๊ณ ๊ด๋ฆฌํ์ฌ ์์ฉ ํ๋ก๊ทธ๋จ์ด ํ๋์จ์ด๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ํ๋ค. ์ด๋ฌํ ์ด์์ฒด์ ์์ ํ๋์จ์ด๋ฅผ ์ถ์ํํด์ฃผ๋ ๊ณ์ธต์ ๋๋ฐ์ด์ค ๋๋ผ์ด๋ฒ๋ผ๊ณ ํ๋ค.
Reference
- https://github.com/gyoogle/tech-interview-for-developer/blob/master/Computer%20Science/Operating%20System/Operation%20System.md
- https://devowen.com/215
- https://velog.io/@chy0428/OS-%EB%A9%80%ED%8B%B0%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EB%A9%80%ED%8B%B0%ED%94%84%EB%A1%9C%EC%84%B8%EC%8B%B1
'CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[OS] ํ๋ก์ธ์ค(Process) vs ์ค๋ ๋(Thread) (0) | 2021.10.12 |
---|---|
[์๋ฃ๊ตฌ์กฐ] ํธ๋ฆฌ(Tree) ์๋ฃ๊ตฌ์กฐ (0) | 2021.10.02 |
[์๋ฃ๊ตฌ์กฐ] ํ(heap) ์๋ฃ๊ตฌ์กฐ (1) | 2021.09.30 |
[WEB] HTTP ์ํ ์ฝ๋ (0) | 2021.09.28 |
[Network] CIDR(์ฌ์ด๋)์ด๋? CIDR ๊ธฐ๋ณธ ๊ฐ๋ (0) | 2021.04.24 |