์ด์์ฒด์ ์ ์ฃผ์ ์๋น์ค: ํ๋ก์ธ์ค, ๋ฉ๋ชจ๋ฆฌ, ํ์ผ๊ด๋ฆฌ, ์์คํ ํธ์ถ์ ๋ํด ์์๋ณธ๋ค.
์ด์์ฒด์ ์ ์ฃผ์ ์๋น์ค๋ ํ๋์จ์ด ์์์ ๊ฐ ์ฌ์ฉ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ ํ ๋ถ๋ฐฐํด์ฃผ๋ ๊ฒ์ด๋ค. ํ๋์จ์ด ์์์ CPU, ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ, ํ๋๋์คํฌ, ํค๋ณด๋, ๋ง์ฐ์ค, ํ๋ฆฐํฐ ๋ฑ์ด ์กด์ฌํ๋ค. ์ด๋ฌํ ํ๋์จ์ด ์์์ ์ฌ์ฉ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์๊ตฌํ๊ฑฐ๋ ์ด์์ฒด์ ๋ด์ ๊ท์น์ ์ํด ์ ์ ํ ๋ถ๋ฐฐํ์ฌ ์ปดํจํฐ์ ์ฑ๋ฅ์ ์ต๋ํ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํด์ผ ํ๋ค.
์ด๋ฅผ ์คํํ๊ธฐ ์ํด ์ด์์ฒด์ ๋ด์์๋ ๊ฐ ํ๋์จ์ด๋ฅผ ๊ด๋ฆฌํ๋ ๊ธฐ๋ฅ์ ๋ค์๊ณผ ๊ฐ์ด ๋๋๋ค.
- ํ๋ก์ธ์ค ๊ด๋ฆฌ
- ์ฃผ๊ธฐ์ต์ฅ์น ๊ด๋ฆฌ
- ํ์ผ ๊ด๋ฆฌ
- ๋ณด์กฐ๊ธฐ์ต์ฅ์น ๊ด๋ฆฌ
- ์ ์ถ๋ ฅ ์ฅ์น ๊ด๋ฆฌ
- ๋คํธ์ํน
- ๋ณดํธ
- ๊ธฐํโฆ
1. ํ๋ก์ธ์ค ๊ด๋ฆฌ(Process management)
ํ๋ก์ธ์ค ๊ด๋ฆฌ๋ ์ด์์ฒด์ ๊ธฐ๋ฅ ์ค ๊ฐ์ฅ ์ค์ํ ๊ธฐ๋ฅ ์ค ํ๋์ด๋ค. ํ๋ก์ธ์ค์ ํ๋ก๊ทธ๋จ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ตฌ๋ถ๋๋ค. ํ๋ก์ธ์ค๋ ์ค์ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์์ **์คํ ์ค์ธ ํ๋ก๊ทธ๋จ(program in execution)**์ ๋งํ๋ค. ํ๋ก๊ทธ๋จ์ ํ๋๋์คํฌ์ ๊ฐ์ ๋ณด์กฐ๊ธฐ์ต์ฅ์น์์ ์๋ฌด๋ฐ ๋์์ ํ์ง ์๋ ์ํ์ด๋ค. ์ด๋ฅผ ์ด๋ ํ ์์ฒญ์ ์ํด ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋นํ์ฌ CPU๋ฅผ ์ฌ์ฉํ๋ฉด์ ์คํํ๊ฒ ๋๋๋ฐ ์ด๋ฅผ ํ๋ก์ธ์ค๋ผ ๋ถ๋ฅธ๋ค.
ํ๋ก์ธ์ค ๊ด๋ฆฌ์ ์ฃผ์ ๊ธฐ๋ฅ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ํ๋ก์ธ์ค์ ์์ฑ๊ณผ ์๋ฉธ(creation, deletion)
- ํ๋ก์ธ์ค ํ๋ ์ผ์ ์ค์ง, ํ๋ ์ฌ๊ฒ(suspend, resume)
- ํ๋ก์ธ์ค๊ฐ ํต์ (interprocess communication: IPC)
- ํ๋ก์ธ์ค๊ฐ ๋๊ธฐํ(synchronization)
- ๊ต์ฐฉ์ํ ์ฒ๋ฆฌ(deadlock handling)
2. ์ฃผ๊ธฐ์ต์ฅ์น ๊ด๋ฆฌ(Main memory management)
์ฃผ๊ธฐ์ต์ฅ์น ์ฆ, ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ๋ ํ๋ก๊ทธ๋จ์ด ์คํ๋๊ธฐ ์ํ ๊ณต๊ฐ์ด๋ค. CPU๋ ์ค์ง ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ํ๋ก๊ทธ๋จ(ํ๋ก์ธ์ค)ํ๊ณ ๋ง ์ํตํ ์ ์๋ค. ์ฃผ๊ธฐ์ต์ฅ์น ๊ด๋ฆฌ์์๋ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๋๋ก ๊ด๋ฆฌํ๋ค.
- ํ๋ก์ธ์ค์๊ฒ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ ํ ๋น(allocation)
- ๋ฉ๋ชจ๋ฆฌ์ ์ด๋ ๋ถ๋ถ์ด ์ด๋ ํ๋ก์ธ์ค์๊ฒ ํ ๋น๋์๋๊ฐ ์ถ์ ๋ฐ ๊ฐ์
- ํ๋ก์ธ์ค ์ข ๋ฃ ์ ๋ฉ๋ชจ๋ฆฌ ํ์(deallocation)
- ๋ฉ๋ชจ๋ฆฌ์ ํจ๊ณผ์ ์ฌ์ฉ
- ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ: ๋ฌผ๋ฆฌ์ ์ค์ ๋ฉ๋ชจ๋ฆฌ๋ณด๋ค ํฐ ์ฉ๋์ ์ฌ์ฉํ ์ ์๋ค.
3. ํ์ผ ๊ด๋ฆฌ(File management)
๋์คํฌ๋ ๋ฌผ๋ฆฌ์ ์ผ๋ก Track๊ณผ sector๋ก ๊ตฌ์ฑ๋์ด ์์ผ๋ฉฐ, ์ฌ๊ธฐ์ ํ์ผ์ด๋ผ๋ ๋ ผ๋ฆฌ์ ๊ด์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ผ๋ณด๊ณ ๊ด๋ฆฌํ๋ ๊ฒ์ด๋ค.
ํ์ผ์ OS๊ฐ ์คํ๋๋ ์ปดํจํฐ์์ ์์ฃผ ๋ณผ ์ ์๋๋ฐ, ์ด๋ ๋ณต์กํ ๊ณผ์ ์ผ๋ก ํ๋๋์คํฌ์ ์ ์ฅ๋์ด ์๋ ๊ฒ์ ์ฌ์ฉ์๊ฐ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ํ์ผ์ด๋ผ๋ ๋ ผ๋ฆฌ์ ํํ๋ก ์ด์์ฒด์ ์์ ๊ด๋ฆฌํ์ฌ ๋ณด์ฌ์ค๋ค.
- ํ์ผ์ ์์ฑ๊ณผ ์ญ์ (file creation, deletion)
- ๋๋ ํ ๋ฆฌ(Directory)์ ์์ฑ๊ณผ ์ญ์
- ๊ธฐ๋ณธ ๋์ ์ง์: open, close, read, write, create, delete
- Track/sector - file ๊ฐ์ ๋งคํ(mapping)
- ๋ฐฑ์ (Backup)
4. ๋ณด์กฐ๊ธฐ์ต์ฅ์น ๊ด๋ฆฌ(Secondary storage management)
๋ณด์กฐ๊ธฐ์ต์ฅ์น๋ ๋ํ์ ์ผ๋ก ํ๋ ๋์คํฌ, ํ๋์ ๋ฉ๋ชจ๋ฆฌ(์ฃผ๋ก ์ค๋งํธํฐ์ ์ฌ์ฉ)๊ฐ ์๋ค. ํ๋ ๋์คํฌ๋ฅผ ์๋ก ๋ค๋ฉด, ํ๋ ๋์คํฌ์์ ์๋ฌด ๊ฒ๋ ์ ์ฅ๋์ด ์์ง ์๋ ๊ณต๊ฐ์ block์ด๋ผ ํ๋๋ฐ, ๋ณด์กฐ๊ธฐ์ต์ฅ์น ๊ด๋ฆฌ๋ ์ด๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒ์ด๋ค.
- ๋น ๊ณต๊ฐ ๊ด๋ฆฌ(Free space management)
- ์ ์ฅ๊ณต๊ฐ ํ ๋น(Storage allocation)
- ๋์คํฌ ์ค์ผ์ค๋ง(Disk scheduling)
5. ์ ์ถ๋ ฅ ์ฅ์น ๊ด๋ฆฌ(I/O device management)
์ ์ถ๋ ฅ ์ฅ์น์๋ ํค๋ณด๋, ๋ง์ฐ์ค, ํ๋ฆฐํฐ, ์คํผ์ปค, ๋ง์ดํฌ ๋ฑ์ด ์๋ค. ์ ์ถ๋ ฅ ์ฅ์น ๊ด๋ฆฌ๋ ์ด์ ๊ฐ์ ์ฌ๋ฌ ์ ์ถ๋ ฅ ์ฅ์น๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ์กด์ฌํ๋ค.
- ์ฅ์น ๋๋ผ์ด๋ธ(Device drivers)
- ์ ์ถ๋ ฅ ์ฅ์น์ ์ฑ๋ฅํฅ์: buffering, caching, spooling
6. ์์คํ ์ฝ(System call)
์์คํ ์ฝ์ ์ ์ ํ๋ก์ธ์ค์์ ์ด์์ฒด์ ์๋น์ค๋ฅผ ํ์๋ก ํ ๋ ์ด๋ฅผ ๋ฐ๊ธฐ ์ํด ์ฌ์ฉํ๋ ํธ์ถ์ด๋ค.
6.1 ์ฃผ์ ์์คํ ์ฝ
- Process: end(์ ์ ์ข ๋ฃ), abort(๊ฐ์ ์ข ๋ฃ), load, execute, create, terminate, get/set, attributes, wait event, signal event
- Memory: allocate, free
- File: create, delete, open, close, read, write, get/set attributes
- Device: request, release, read, write, get/set attributes, attach/detach devices
- Information: get/set time, get/set system data
- Communication: socket, send, receive
Reference
- KOCW ์ํฌ์ฌ ๊ต์๋ - ์ด์์ฒด์
- ์ํฌ์ฌ ๊ต์๋ ๋ธ๋ก๊ทธ(์ํ ๊ธฐ์ถ ๋ฌธ์ )
- codemcd ๋์ ์ ๋ฆฌ๊ธ
- Operating System Concepts, 9th Edition - Abraham Silberschatz