ํฐ์คํ ๋ฆฌ ๋ทฐ
๋ฐ์ํ
OS(Operating System, ์ด์์ฒด์ )๐
- backend-loadmap{:target="_blank"} Part 03. OS
ํฐ๋ฏธ๋ ์ฌ์ฉ๋ฒ ๋ฐ ๊ธฐ๋ณธ ๋ช ๋ น๐
- grep, awk, sed, lsof, curl, wget, tail, head, less, find, ssh, kill
Reference
16 Terminal commands every user should know
OS์ ์ผ๋ฐ์ ์ธ ์๋ ์๋ฆฌ๐
Operating System
- Computer User์ Computer Hardware(CPU, I/O) ์ฌ์ด์ ์ธํฐํ์ด์ค ์ญํ
- ์์์ด ํ์ํ ํ๋ก๊ทธ๋จ์ ์์์ ํ ๋นํด์ฃผ๊ณ , ์์์ ํ ๋น๋ฐ์ ํ๋ก๊ทธ๋จ๋ค์ ์คํ์ ์ ์ด
- ์ด์์ฒด์ ๊ฐ ํ๋ ์ผ
- Process management
- Memory management
- Storage management
- Protection and Security
Works
- ๊ธฐ๋ณธ์ ์ธ ๋์ ์๋ฆฌ๋ก OS๋ ์ฌ์ฉ์์ ์์ฒญ(Event ํน์ Interrupt, H/W interrupt or S/W interrupt)์ด ๋ฐ์ํ๋ฉด ์ ์ ํ๊ฒ ์์(CPU, I/O, ๋ฉ๋ชจ๋ฆฌ ๋ฑ)์ ๋ถ๋ฐฐํ์ฌ ๊ทธ ์์ฒญ์ ์ฒ๋ฆฌ
- OS Loading
- ์ปดํจํฐ ์ ์์ด ์ผ์ง๋ฉด CPU๋ ROM(Read Only Memory)์ ์ ์ฅ๋ ๋ด์ฉ์ ์ฝ๋๋ค.
- ROM์๋ POST(Power ON Self-Test)์ ๋ถํธ๋ก๋(Boot Loader)๊ฐ ์ ์ฅ
- POST : ์ปดํจํฐ ์ ์์ด ์ผ์ง๋ฉด ๊ฐ์ฅ ๋จผ์ ์คํ๋๋ ํ๋ก๊ทธ๋จ์ผ๋ก ์ปดํจํฐ์ ์ด์์ด ์๋ ์ง ์ฒดํฌ
- Boot Loader : ํ๋๋์คํฌ์ ์ ์ฅ๋์ด ์๋ OS ํ๋ก๊ทธ๋จ์ ๊ฐ์ ธ์์ RAM์ ๋๊ฒจ์ฃผ๋ ์ญํ
- CPU๋ ์ด๊ธฐํ๋ฅผ ์ํด Boot Loader์ ๋ชจ์ธ ๋ช ๋ น๋ค์ ์ฝ๊ณ , Dist(SSD, HDD)์ ์๋ ํ๋ก๊ทธ๋จ๋ค(OS..)์ RAM(Random Access Memory)์ ์ฌ๋ฆฐ๋ค.
- ํ๋ก๊ทธ๋จ๋ค์ด ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ค๋ฉด CPU๊ฐ ํด๋น ํ๋ก๊ทธ๋จ์ ์๋์ํจ๋ค.
- ์ปดํจํฐ ์ ์์ด ์ผ์ง๋ฉด CPU๋ ROM(Read Only Memory)์ ์ ์ฅ๋ ๋ด์ฉ์ ์ฝ๋๋ค.
Reference
ํ๋ก์ธ์ค ๊ด๋ฆฌ๐
ํ๋ก์ธ์ค
: ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋น๋์ด ์คํ์ค์ธ ์ํ์ธ ํ๋ก๊ทธ๋จPCB(Process Control Block)
: ํ๋ก์ธ์ค์ ๋ํ ๋ชจ๋ ์ ๋ณด๊ฐ ๋ชจ์ฌ์๋ ๊ณณ- ํ๋ก์ธ์ค์ ์ํ, ํ๋ก์ธ์ค ๋ฒํธ(PID), ํด๋น ํ๋ก์ธ์ค์ program counter(pc), register๊ฐ, MMU์ ๋ณด, CPU์ ์ ์๊ฐ ๋ฑ์ด ํฌํจ
- CPU๋ ํ ํ๋ก์ธ์ค๊ฐ ์ข
๋ฃ๋ ๋๊น์ง ์ํํ๋ ๊ฒ์ด ์๋๋ผ ์ฌ๋ฌ ํ๋ก์ธ์ค๋ฅผ ์ค๊ฐ ์ค๊ฐ์ ๋ฐ๊ฟ๊ฐ๋ฉด์ ์ํ
- ๊ทธ๋ฌ๋ฏ๋ก CPU๋ ์ํ์ค์ธ ํ๋ก์ธ์ค๋ฅผ ๋๊ฐ ๋, ์ด ํ๋ก์ธ์ค์ ์ ๋ณด๋ฅผ ์ด๋๊ฐ์ ์ ์ฅํ๊ณ ์์ด์ผ ๋ค์์ ์ด ํ๋ก์ธ์ค๋ฅผ ์ํํ ๋ ์ด์ ์ ์ํํ ๊ทธ ๋ค์๋ถํฐ ์ด์ด์ ์์ ํ ์ ์๋ค.
- ์ด๋ฌํ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ๊ณณ์ด PCB
Reference
์ค๋ ๋์ ๋์์ฑ๐
Thread
: ์คํ๋๋ ํ๋ฆ์ ๋จ์- ์ผ๋ฐ์ ์ผ๋ก ํ ํ๋ก๊ทธ๋จ์ ํ๋์ ์คํ๋๋ ํ๋ฆ์ด ์กด์ฌ
- ์ด ํ๋ฆ์ด ์ฌ๋ฌ๊ฐ ์๋ค๋ฉด Multi-Thread-Programming
Process
: ์ปดํจํฐ์์ ์ฐ์์ ์ผ๋ก ์คํ๋๊ณ ์๋ ์ปดํจํฐ ํ๋ก๊ทธ๋จ- ์ฌ๋ฌ๊ฐ์ Processor(Process์ ์ธ์นญํ)๋ฅผ ์ฌ์ฉํ๋ ๊ฑธ Multi-processing
Parallelism
(๋ณ๋ ฌ์ฑ) : ์ ํ๋ฆฌ์ผ์ด์ ์์ ์์ ์ ์ฌ๋ฌ CPU์์ ๋์์ ๋ณ๋ ฌ๋ก ์์ ํ ์ ์๋ Process ๋จ์๋ก ๋ถํ- ์ฌ๋ฌ ๊ฐ์ ์ฐ๋ ๋๊ฐ ์์ผ๋ฉด ๋ฐ์ดํฐ ๋ฐ ๋ฆฌ์์ค ์ธก๋ฉด์์ ์๋ก ๋ ๋ฆฝ์ ์ผ๋ก ์ ์ฌํ ์์ ์ ์ฒ๋ฆฌ
Concurrency
(๋์์ฑ): ์๋ก ๋ ๋ฆฝ์ ์ธ ์์ ์ ์์ ๋จ์์ ์ฐ์ฐ์ผ๋ก ๋๋๊ณ ์๊ฐ ๋ถํ ํํ๋ก ์ฐ์ฐํ์ฌ ๋ ผ๋ฆฌ์ ์ผ๋ก ๋์์ ์คํ๋๋ ๊ฒ์ฒ๋ผ ๋ณด์ฌ์ฃผ๋ ๊ฒ (๋ ผ๋ฆฌ์ ์ธ ๊ฐ๋ ์ด๊ธฐ ๋๋ฌธ์ ๋จ์ผ ์ฐ๋ ๋์์๋ ์ฌ์ฉ์ด ๊ฐ๋ฅํ ๊ฐ๋ )
Reference
๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๐
- ๊ฐ์ฅ ๋จ์ํ ํํ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๋ฐฉ๋ฒ์ ํ๋ก๊ทธ๋จ์ ์์ฒญ์ด ์์ ๋, ๋ฉ๋ชจ๋ฆฌ์ ์ผ๋ถ๋ฅผ ํด๋น ํ๋ก๊ทธ๋จ์ ํ ๋นํ๊ณ , ๋ ์ด์ ํ์ํ์ง ์์ ๋ ๋์ค์ ๋ค์ ์ฌ์ฉํ ์ ์๋๋ก ํ ๋น์ ํด์ ํ๋ ๊ฒ
Reference
IPC
- ํ๋ก์ธ์ค ๊ฐ ํต์ (Inter Process Communication)๐
- ํ๋ก์ธ์ค๋ ๋ณธ๋ ๋
๋ฆฝ์ ์ด๋, ์ํฉ์ ๋ฐ๋ผ ํ๋ก์ธ์ค๋ผ๋ฆฌ ํ๋ ฅํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์ด ๊ฒฝ์ฐ, ํ๋ก์ธ์ค ๊ฐ ์์/๋ฐ์ดํฐ ๊ณต์ ๊ฐ ํ์ํ๋ฐ, ์ด๋ ํ์ํ ๊ฒ์ด
IPC
- ํ๋ก์ธ์ค๋ ๋ณธ๋ ๋
๋ฆฝ์ ์ด๋, ์ํฉ์ ๋ฐ๋ผ ํ๋ก์ธ์ค๋ผ๋ฆฌ ํ๋ ฅํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์ด ๊ฒฝ์ฐ, ํ๋ก์ธ์ค ๊ฐ ์์/๋ฐ์ดํฐ ๊ณต์ ๊ฐ ํ์ํ๋ฐ, ์ด๋ ํ์ํ ๊ฒ์ด
- IPC ๊ธฐ๋ฒ์ ์ข
๋ฅ
- ๋ฉ์์ง ์ ๋ฌ
- ๊ณต์ ๋ฉ๋ชจ๋ฆฌ
Reference
์ ์ถ๋ ฅ ๊ด๋ฆฌ๐
- ์ฌ๋ฌ ์ ์ถ๋ ฅ ์ฅ์น๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ์กด์ฌ
- ์ ์ถ๋ ฅ ์ฅ์น์ ์ฑ๋ฅ ํฅ์์ ์ํด Buffering, Caching, Spooling ์ฌ์ฉ
Buffering
: CPU์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์๋์ ์ ์ถ๋ ฅ ์ฅ์น์ ๋ฐ์ดํฐ ์ ์ก ์๋์ ์ฐจ์ด๋ก ์ธํ ๋ฌธ์ ํด๊ฒฐ- ์ ์ถ๋ ฅ ๋ฐ์ดํฐ ์ ์ก ์ ์ผ์์ ์ผ๋ก Buffer์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ
- ๋จ์ผ ๋ฒํผ๋ง : ์ ์ฅ๊ณผ ์ฒ๋ฆฌ๊ฐ ๋์์ X
- ์ด์ค ๋ฒํผ๋ง : ์ ์ฅ๊ณผ ์ฒ๋ฆฌ๊ฐ ๋์์ O
- ์ํ ๋ฒํผ๋ง : ์ด์ค ๋ฒํผ๋ง ํ์ฅ
Spooling
- Simultaneous Peripheral Operation On Lien(SPOOL)
- ์ปดํจํฐ ์์คํ ์์ ์ค์์ฒ๋ฆฌ์ฅ์น์ ์ ์ถ๋ ฅ์ฅ์น๊ฐ ๋ ๋ฆฝ์ ์ผ๋ก ๋์ํ๋๋ก ํจ์ผ๋ก์จ ์ค์์ฒ๋ฆฌ์ฅ์น์ ๋นํด ์ฃผ๋ณ์ฅ์น์ ์ฒ๋ฆฌ์๋๊ฐ ๋๋ ค์ ๋ฐ์ํ๋ ๋๊ธฐ์๊ฐ์ ์ค์ด๊ธฐ ์ํด ๊ณ ์๋ ๊ธฐ๋ฒ
- ์ ์ถ๋ ฅ ํ๋ก์ธ์ค์ ์ ์ ์ ์ถ๋ ฅ์ฅ์น ์ฌ์ด์ ๋ฐ์ดํฐ ์ ์ก์ ์๊ธฐ ๋์คํฌ์ ๊ฐ์ ๊ณ ์ ์ฅ์น๋ฅผ ํตํ๋๋ก ํจ
Reference
POSIX ๊ธฐ์ด๐
- stdin, stdout, stderr, pipes ..
- ์ด์ ๊ฐ๋ฅ ์ด์ ์ฒด์ ์ธํฐํ์ด์ค(portable operating system interface)์ ์ฝ์
- ์๋ก ๋ค๋ฅธ UNIX OS์ ๊ณตํต API๋ฅผ ์ ๋ฆฌํ์ฌ ์ด์์ฑ์ด ๋์ ์ ๋์ค ์์ฉ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก IEEE๊ฐ ์ฑ ์ ํ ์ ํ๋ฆฌ์ผ์ด์ ์ธํฐํ์ด์ค ๊ท๊ฒฉ
- POSIX
Reference
๋คํธ์ํฌ ๊ธฐ๋ณธ ๊ฐ๋ ๐
Reference
๋ฐ์ํ
'Web' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Ajax] ๊ธฐ๋ณธ์ ์ธ Ajax ์ฌ์ฉํ๊ธฐ (jQuery ajax documentation) (0) | 2021.10.07 |
---|---|
[JPA] Spring JPA CascadeType ์ข ๋ฅ (0) | 2021.06.25 |
Internet๊ณผ ์๋ ์๋ฆฌ (HTTP, Browser, DNS, Domain, Hosting) (0) | 2021.06.09 |
jQuery Selectric ์ ๋ฆฌ (2) | 2021.06.03 |
[Lexical scoping & Closure] ์ดํ์ ๋ฒ์ ์ง์ , ํด๋ก์ (0) | 2021.01.15 |
๋๊ธ