์ด์ ํฌ์คํ
https://rkdrkd-history.tistory.com/16
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ๋ฅ์ฌ ์ค๊ธฐ] ์ด์์ฒด์ ๊ธฐ์ด ํ์ฉ(1)
1. ์ด์์ฒด์ ์ ๊ฐ์ ์ด์์ฒด์ (OS, Operating System): ์ปดํจํฐ ์ฌ์ฉ์์ ํ๋์จ์ด ๊ฐ์ ์ธํฐํ์ด์ค๋ก์ ๋์ํ๋ ์์คํ ์ํํธ์จ์ด์ ์ผ์ข ์ญํ ์ปดํจํฐ๋ฅผ ํธ๋ฆฌํ๊ณ , ํ๋์จ์ด๋ฅผ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์
rkdrkd-history.tistory.com
4. ํ๋ก์ธ์ค ์ค์ผ์ค๋ง
ํ๋ก์ธ์ค: ์ด์์ฒด์ ๊ฐ ๊ด๋ฆฌํ๋ ์คํ์ ๋จ์๋ก ์คํ ์ค์ธ ํ๋ก๊ทธ๋จ์ด๋ผ ํ๋ค.
ํ๋ก์ธ์ค ์ ์ด ๋ธ๋ก(PCB: Process Control Block)
- ์ ์: ์ด์์ฒด์ ๊ฐ ํ๋ก์ธ์ค์ ๋ํ ์ค์ํ ์ ๋ณด๋ฅผ ์ ์ฅํด ๋์ ์ ์๋ ์ ์ฅ ์ฅ์
- ๊ฐ ํ๋ก์ธ์ค๋ ๊ณ ์ ์ PCB๋ฅผ ๊ฐ์ง๋ค.
- ํ๋ก์ธ์ค๊ฐ ์์ฑ๋ ๋ ๊ณ ์ ์ PCB๊ฐ ์์ฑ๋๊ณ , ์ข ๋ฃ๋๋ฉด PCB๋ ์ ๊ฑฐ๋๋ค.
- PCB์ ์ ์ฅ๋๋ ์ ๋ณด: ํ๋ก์ธ์ค์ ํ์ฌ ์ํ, ํ๋ก์ธ์ค์ ์ฐ์ ์์, CPU ๋ ์ง์คํฐ ์ ๋ณด ๋ฑ๋ฑ..
ํ๋ก์ธ์ค ์ํ ์ ์ด
- ์ค๋น(Ready) ์ํ: ํ๋ก์ธ์ค ์ค๋น ํ์์ ์คํ์ ์ค๋นํ๊ณ ์๋ ์ํ๋ก, CPU๋ฅผ ํ ๋น๋ฐ๊ธฐ ์ํด ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ ์ํ
- ์คํ(Running) ์ํ: ์ค๋น ํ์ ์๋ ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ํ ๋น๋ฐ์ ์คํ๋๋ ์ํ
- ๋๊ธฐ(Block) ์ํ: ํ๋ก์ธ์ค๊ฐ ์ /์ถ๋ ฅ ์ฒ๋ฆฌ๊ฐ ํ์ํ๋ฉด ํ์ฌ ์ํ ์ค์ธ ํ๋ก์ธ์ค๊ฐ ์ /์ถ๋ ฅ์ ์ํด ๋๊ธฐ ์ํ๋ก ์ ์ด๋๋ค.
์ค๋ ๋(Thread)์ ๊ฐ๋
- ์ ์ด์ ํ๋ฆ์ ์๋ฏธํ๋ฉฐ ํ๋ก์ธ์ค์์ ์คํ์ ๊ฐ๋ ๋ง์ ๋ถ๋ฆฌํ ๊ฒ์ผ๋ก ํ๋ก์ธ์ค์ ์ผ๋ถ ํน์ฑ์ ๊ฐ๊ณ ์๊ธฐ ๋๋ฌธ์ ๊ฒฝ๋(light weight) ํ๋ก์ธ์ค๋ผ๊ณ ๋ ํ๋ค.
- ํ๋ก์ธ์ค์ ์คํ ๋ถ๋ถ์ ๋ด๋นํจ์ผ๋ก์จ ์คํ์ ๊ธฐ๋ณธ ๋จ์๊ฐ ๋๋ค.
- ์์๋ ํ๋ก์ธ์ค์ ์์๊ณผ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณต์ ํ๋ค.
- ๋ค์ค ์ค๋ ๋๋ ํ๋ก์ธ์ค์ ์์ฑ์ด๋ ๋ฌธ๋งฅ ๊ตํ ๋ฑ์ ์ค๋ฒํค๋๋ฅผ ์ค์ฌ ์ด์ํ์ ์ ์ฑ๋ฅ์ ๊ฐ์ ํ๋ค.
ํ๋ก์ธ์ค ์ค์ผ์ค๋ง
1. ํ๋ก์ธ์ค ์ค์ผ์ค๋ง์ ๊ฐ๋
- ํ๋ก์ธ์ค์ ์์ฑ ๋ฐ ์คํ์ ํ์ํ ์์คํ ์ ์์์ ํด๋น ํ๋ก์ธ์ค์ ํ ๋นํ๋ ์์ ์ ๋ปํ๋ค.
- ์ค์ผ์ค๋ง์ ๊ธฐ๋ฒ์ ๋น์ ์ ๊ธฐ๋ฒ๊ณผ ์ ์ ๊ธฐ๋ฒ์ผ๋ก ๊ตฌ๋ถ๋๋ค.
2. ํ๋ก์ธ์ค ์ค์ผ์ค๋ง์ ๋ชฉ์
- ๋ชจ๋ ์์ ๋ค์ ๋ํ ๊ณต์ ์ฑ์ ์ ์งํ๊ธฐ ์ํ ๋ฐฉ๋ฒ
- ๋จ์ ์๊ฐ๋น ์ฒ๋ฆฌ๋์ ์ต๋ํ, ์๋ต ์๊ฐ, ๋ฐํ ์๊ฐ, ๋๊ธฐ ์๊ฐ ๋ฐ ์ค๋ฒํค๋ ์ต์ํ
3. ๋น์ ์ (Non-preemptive) ์ค์ผ์ค๋ง
- CPU์ ํ ๋น๋ฐ์ผ๋ฉด ๋ค๋ฆ ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ๊ฐ์ ์ ์ ๋นผ์์์ ์๋ ๋ฐฉ์์ด๋ค.
4. ์ ์ (Preemptive) ์ค์ผ์ค๋ง
- ํ ํ๋ก์ธ์ค๊ฐ CPU๋ฅด ํ ๋น๋ฐ์ ์คํ ์ค์ด๋ผ๋ ์ฐ์ ์์๊ฐ ๋์ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ๊ฐ์ ์ ์ผ๋ก ๋นผ์์ ์ ์๋ ๋ฐฉ์์ด๋ค.
๋น์ ์ ์ค์ผ์ค๋ง ์ข ๋ฅ
๊ธฐ๋ฒ | ์ค๋ช |
FCFS(First Come First Service) | ์ค๋น์ํ ํ์ ๋์ฐฉํ ์์๋๋ก CPU๋ฅผ ํ ๋นํ๋ ๊ธฐ๋ฒ |
SJF(Shortest Job First) | ๋๊ธฐํ๋ ํ๋ก์ธ์ค๋ค ์ค์์ ์คํ์๊ฐ์ด ๊ฐ์ฅ ์งง์ ํ๋ก์ธ์ค์๊ฒ ๋จผ์ CPU๋ฅผ ํ ๋นํ๋ ๊ธฐ๋ฒ |
HRN(Highest Response-ratio Next) | ์ด๋ค ์์ ์ด ์๋น์ค ๋ฐ์ ์๊ฐ๊ณผ ๊ทธ ์์ ์ด ์๋น์ค๋ฅผ ๊ธฐ๋ค๋ฆฐ ์๊ฐ์ผ๋ก ๊ฒฐ์ ๋๋ ์ฐ์ ์์์ ๋ฐ๋ผ CPU๋ฅผ ํ ๋นํ๋ ๊ธฐ๋ฒ |
๊ธฐํ๋ถ(Deadline) | ์์ ์ด ์ฃผ์ด์ง ํน๋ณํ ์๊ฐ์ด๋ ๋ง๋ฃ์๊ฐ ์์ ์๋ฃ๋๋๋ก ํ๋ ๊ธฐ๋ฒ |
์ฐ์ ์์(Priority) | ๋๊ธฐํ๋ ํ๋ก์ธ์ค์๊ฒ ๋ถ์ฌ๋ ์ฐ์ ์์๊ฐ ๊ฐ์ฅ ๋์ ํ๋ก์ธ์ค์๊ฒ ๋จผ์ CPU๋ฅผ ํ ๋นํ๋ ๊ธฐ๋ฒ |
์ ์ ์ค์ผ์ค๋ง ์ข ๋ฅ
๊ธฐ๋ฒ | ์ค๋ช |
SRT(Shortest Remaining Time) | ์คํ ์ค์ธ ํ๋ก์ธ์ค์ ๋จ์ ์๊ฐ๊ณผ ์ค๋น์ํ ํ์ ๋์ฐฉํ ํ๋ก์ธ์ค์ ์คํ ์๊ฐ์ ๋น๊ตํด์ ์คํ ์๊ฐ์ด ๋ ์งง์ ํ๋ก์ธ์ค์ CPU๋ฅผ ํ ๋นํ๋ ๊ธฐ๋ฒ |
RR(Round Robin) | ์ฃผ์ด์ง ์๊ฐ ํ ๋น๋ ์์ ์์ ์ ๋ง์น์ง ์์ผ๋ฉด ์ค๋น์๋ฃ ๋ฆฌ์คํธ์ ๊ฐ์ฅ ๋ค๋ก ๋ฐฐ์นํ๋ ๊ธฐ๋ฒ |
๋ค๋จ๊ณ ํ(MQ, Multi-level Queue) | ํ๋ก์ธ์ค๋ค์ ์ฐ์ ์์์ ๋ฐ๋ผ ๋จ๊ณ๋ณ ์ค๋น ํ์ ๋ฐฐ์นํ๋ ๊ธฐ๋ฒ |
๋ค๋จ๊ณ ํผ๋๋ฐฑ ํ(MFQ, Multi-level Feedback Queue) | ๊ฐ ์ค๋น์ํ ํ๋ง๋ค ๋ถ์ฌ๋ ์๊ฐ ํ ๋น๋ ์์ ์๋ฃํ์ง ๋ชปํ ํ๋ก์ธ์ค๋ ๋ค์ ๋จ๊ณ์ ์ค๋น์ํ ํ๋ก ์ด๋ํ๋ ๊ธฐ๋ฒ |
๋ฌธ๋งฅ๊ตํ(Context Switching)
- ํ์ฌ CPU ๋ฅผ ์ฌ์ฉํ์ฌ ์คํ๋๊ณ ์๋ ํ๋ก์ธ์์ ์ํ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ณ ,์์ผ๋ก ์คํ๋ ํ๋ก์ธ์ค์ ์ํ ์ ๋ณด๋ฅผ ์ค์ ํ ๋ค์์ ์ค์์ฒ๋ฆฌ์ฅ์น๋ฅผ ํ ๋นํ์ฌ ์คํ์ด ๋๋๋ก ํ๋ ์์
๋ณํ ํ๋ก์ธ์ค
- ๋ ๊ฐ ์ด์์ ํ๋ก์ธ์ค๋ค์ด ๋์์ ์คํ ์ํ์ ์๋ ๊ฒ์ ์๋ฏธํ๋ค.
- ์ฌ๋ฌ ํ๋ก์ธ์ค๋ค์ด ๋ ๋ฆฝ์ ์ผ๋ก ์คํ๋๋ ๊ฒ์ ๋ ๋ฆฝ์ ๋ณํ ํ๋ก์ธ์ค๋ผ๊ณ ํ๋ฉฐ, ์๋ก ํ๋ ฅํ๋ฉฐ ๋์์ ์คํ๋๋ ๊ฒ์ ๋ณํ ํ๋ก์ธ์ค๋ผ๊ณ ํ๋ค.
๊ต์ฐฉ ์ํ(DeadLock)
- ๊ต์ฐฉ ์ํ๋ ์๋ก ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ์ ์ ํ๊ณ ์๋ ์์์ ์๊ตฌํ๋ฉฐ ๋ฌดํ์ ๊ธฐ๋ค๋ฆฌ๋ ํ์์ด๋ค.
- ๊ต์ฐฉ ์ํ๋ ์ํธ๋ฐฐ์ , ์ ์ ๋ฐ ๋๊ธฐ, ๋น์ ์ , ํํ ๋๊ธฐ์ 4๊ฐ์ง ๋ฐ์ ์กฐ๊ฑด์ ๋ชจ๋ ๋ง์กฑํด์ผ๋ง ๋ฐ์ํ๋ค.
- ๊ต์ฐฉ ์ํ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ ์๋ฐฉ, ํํผ, ๋ฐ๊ฒฌ, ํ๋ณต์ ๋ฐฉ๋ฒ์ด ์๋ค
5. ํ๊ฒฝ๋ณ์
- ์์คํ ์ํํธ์จ์ด์ ๋์์ ์ํฅ์ ๋ฏธ์น๋ ๋์ ์ธ ๊ฐ๋ค์ ๋ชจ์์ด๋ค.
- ์ฃผ์ ํน์ง: ๊ตฌ์ฑ(๋ณ์๋ช ์ ๊ฐ), ๋ด์ฉ(์์คํ ์ ๊ธฐ๋ณธ ๊ตฌ์ฑ)
Windows ์ฃผ์ ํ๊ฒฝ๋ณ์
- ํ๊ฒฝ๋ณ์๋ช ์ฌ์ฉ์ ๋ณ์๋ช ์๋ค์ '%' ๋ฅผ ์ถ๊ฐํ๋ค.
UNIX/LINUX ์ฃผ์ ํ๊ฒฝ๋ณ์
- ํ๊ฒฝ๋ณ์๋ช ์ฌ์ฉ ์ ๋ณ์๋ช ์์ '$'๋ฅผ ์ถ๊ฐํ๋ค.
6. ์ด์์ฒด์ ์ ์ข ๋ฅ ๋ฐ Shell Script
์ด์์ฒด์ ์ ์ข ๋ฅ
1. windows
- ๋ง์ดํฌ๋ก์ํํธ์ฌ์์ ๋ฐํํ๊ณ ์๋ ์ปดํจํฐ ์ด์์ฒด์
- GUI(Graphic Usr Interface)์ด๋ฉฐ, ์ ์ ํ ๋ฉํ์คํน์ผ๋ก ์ํ๋๋ค.
- PnP(Plug and Play)๊ฐ ์ง์๋๋ค.
2. MS-DOS(Microsoft Disk Operating System)
- CUI(Charactor User Interface)์ด๋ฉฐ, Single-User, Single-Task์ ํน์ง์ ๊ฐ์ง๋ค.
- ํธ๋ฆฌ ๊ตฌ์กฐ ํ์ผ ์์คํ ์ด๋ค.
- ๋ด๋ถ ๋ช ๋ น์ด: ๋ช ๋ น์ด ์ฒ๋ฆฌ ๋ฃจํด์ด ๋ฉ๋ชจ๋ฆฌ์ ์์ฃผํ๋ ๋ช ๋ น์ด(DIR, COPY, TYPE, CLS ๋ฑ)
- ์ธ๋ถ ๋ช ๋ น์ด: ๋์คํฌ์ ํ์ผ๋ก ์ ์ฅ๋ ๋ช ๋ น์ด(FORMAT, DISKCOPY, DISKCOMP ๋ฑ)
3. ์ ๋์ค(UNIX)
- ์ด์์ฑ์ด ๋์ผ๋ฉฐ, ๋ํ์ ์ด์์ฒด์ ์ด๋ค.
- C์ธ์ด๋ผ๋ ๊ณ ๊ธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์ปค๋๊น์ง ์์ฑ๋ ์ด์์ฒด์ ์ด๋ค.
- ํ์ผ ์์ฑ, ์ญ์ , ๋ณดํธ ๊ธฐ๋ฅ์ ๊ฐ์ง๋ฉฐ, ๋๋ ํฐ๋ฆฌ ๊ตฌ์กฐ๋ ํธ๋ฆฌ ๊ตฌ์กฐ ํํ์ด๋ค.
- ๋ฉํฐํ์คํน(Mulit-Tasking)๊ณผ ๋ฉํฐ ์ ์ (Multi-User) ์ด์์ฒด์ ์ด๋ค.
4. ๋ฆฌ๋ ์ค(LINUX)
- ํ๊ฐ๊ถ๊ณผ ์์ ๊ถ์ ๊ถํ์ ๊ฐ๋๋ค.
- ๋ฉํฐํ์คํน(Mulit-Tasking)๊ณผ ๋ฉํฐ ์ ์ (Multi-User) ์ ์ง์ํ๋ค.
- ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ณํ๋ค.
- ํ์ผ ํ์ฅ์๋ผ๋ ๊ฐ๋ ์ด ์๋ค.
UNIX์ ๊ฐ์
1. UNIX์ ํน์ง
- ๋ํ์ ์ด์์ฒด์ ์ด๋ค.
- ๋์ ์ด์์ฑ๊ณผ ํ์ฅ์ฑ์ ๊ฐ์ง๋ค.
- ๋คํธ์ํน ์์คํ ์ด๋ค.
- ๊ณ์ธต์ ํ์ผ ์์คํ ์ด๋ค
2. ์ปค๋(Kernel)
- ์ ๋์ค ์์คํ ์ ์ค์ฌ๋ถ์ ํด๋นํ๋ฉฐ ์ฃผ๊ธฐ์ต์ฅ์น์ ์ ์ฌ๋ ํ ์์ฃผํ๋ฉด์ ์คํ๋๋ค.
- ํ๋ก๊ทธ๋จ ๊ด๋ฆฌ, ๊ธฐ์ต์ฅ์น ๊ด๋ฆฌ, ์ ์ถ๋ ฅ ๊ด๋ฆฌ, ํ์ผ ๊ด๋ฆฌ, ์์คํ ํธ์ถ ์ธํฐํ์ด์ค ๋ฑ์ ๊ธฐ๋ฅ์ ๋ด๋นํ๋ค.
- ํ๋์จ์ด๋ฅผ ์บก์ํํ๋ค.
- ๋๋ถ๋ถ์ด C์ธ์ด๋ก ๊ฐ๋ฐ๋์ด ์ด์์ฑ๊ณผ ํ์ฅ์ฑ์ด ๋ฐ์ด๋๋ค.
3. ์(Shell)
- ๋ช ๋ น์ด ํด์๊ธฐ์ด๋ค.
- ์ฌ์ฉ์์ ์์คํ ๊ฐ์ ์ธํฐํ์ด์ค ์ญํ ์ ํ๋ค.
4. ์ ํธ๋ฆฌํฐ(Utility)
- ์ฌ์ฉ์์ ํธ์๋ฅผ ์ํ ํ๋ก๊ทธ๋จ์ ์ ๊ณตํ๋ค.
- ๋ฌธ์ ํธ์ง๊ธฐ, ์ปดํ์ผ๋ฌ, ์ ๋ ฌ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
Shell Script
- ์(Shell): ์ปค๋๊ณผ ์ ์ ๋ฅผ ์ด์ด์ฃผ๋ ๋ช ๋ น์ด ํด์๊ธฐ
- ์ข ๋ฅ: BASH Shell, Bourne Shell, C Shell, Korn Shell
- ์ ์คํฌ๋ฆฝํธ(Shell Script)๋ ์์์ ์ฌ์ฉํ ์ ์๋ ๋ช ๋ น์ด๋ค๋ก ์์ฑ๋ ์ ํ๋ก๊ทธ๋จ์ ์๋ฏธํ๋ค.
- ์ ์คํฌ๋ฆฝํธ๋ ๋ช ๋ น์ด, ๋ณ์, ์ ์ด๋ฌธ, ์กฐ๊ฑด์, ๋ฉํ ๋ฌธ์ ๋ฑ์ผ๋ก ๊ตฌ์ฑ๋๋ค.
- ์ ์คํฌ๋ฆฝํธ๋ c์ธ์ด์ ์ ์ฌํ๋ฉฐ ์คํฌ๋ฆฝํธ ์ธ์ด์ด๊ธฐ ๋๋ฌธ์ ์ปดํ์ผ์ด ํ์ํ์ง ์๋ค.