Operating System (OS)

์ž‘์„ฑ์ผ์‹œ2021-01-20 20:19

์ปดํ“จํ„ฐ์˜ ๊ตฌ์„ฑ

์ปดํ“จํ„ฐ๋Š” ํฌ๊ฒŒ ์‘์šฉํ”„๋กœ๊ทธ๋žจ, ์šด์˜์ฒด์ œ, ํ•˜๋“œ์›จ์–ด ๊ณ„์ธต์œผ๋กœ ๋ถ„๋ฅ˜๋œ๋‹ค. ์ด ๋ฌธ์„œ์—์„œ๋Š” ์‘์šฉํ”„๋กœ๊ทธ๋žจ์„ ์ œ์™ธํ•˜๊ณ  ์šด์˜์ฒด์ œ์™€ ํ•˜๋“œ์›จ์–ด์— ๋Œ€ํ•ด ๋…ผํ•œ๋‹ค.

CPU์™€ ์ž…์ถœ๋ ฅ ์žฅ์น˜ ๊ทธ๋ฆฌ๊ณ  ๋ฉ”๋ชจ๋ฆฌ๋Š” ์‹œ์Šคํ…œ ๋ฒ„์Šค๋ฅผ ํ†ตํ•ด ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฉฐ, ๋ฒ„์Šค์˜ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ๋‹จ๋ฐฉํ–ฅ ๋˜๋Š” ์–‘๋ฐฉํ–ฅ์œผ๋กœ ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ธ๋‹ค. ์ž…์ถœ๋ ฅ ์žฅ์น˜์˜ ๊ฒฝ์šฐ ๋ฉ”์ธ๋ณด๋“œ ์œ„์— ์‚ฌ์ „์— ๋งŒ๋“ค์–ด์ง„ ์žฅ์น˜ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์šด์˜์ฒด์ œ์˜ ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์ œ์–ดํ•˜๋ฉฐ, ์žฅ์น˜๋“œ๋ผ์ด๋ฒ„๋Š” ์šด์˜์ฒด์ œ์— ์ผ๊ด€๋œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค. CPU์™€ ์žฅ์น˜์ปจํŠธ๋กค๋Ÿฌ๋Š” ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰๋˜๊ธฐ ๋–„๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•˜๊ธฐ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์ดํด์„ ๋‘๊ณ  ๊ฒฝ์Ÿํ•œ๋‹ค. ์ด ๋ฉ”๋ชจ๋ฆฌ์— ์ˆœ์ฐจ์ ์œผ๋กœ ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ ์ปจํŠธ๋กค๋Ÿฌ๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ๋™๊ธฐํ™”ํ•œ๋‹ค.

์œ„์—์„œ ๊ฐ„๋‹จํžˆ ์„ค๋ช…ํ•œ ๋‚ด์šฉ์€ OS ๋‚ด๋ถ€์˜ ์ปค๋„๊ณผ ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋žจ์— ์˜ํ•ด ์ œ์–ด๋˜๋ฉฐ, ํ•˜๋“œ์›จ์–ด์˜ ๊ฒฝ์šฐ ์‚ฌ์ „์— ์„ค๊ณ„๋œ ํšŒ๋กœ์˜ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

์šด์˜์ฒด์ œ์˜ ๊ตฌ์กฐ

์šด์˜์ฒด์ œ ๊ฐ™์ด ํฌ๊ณ  ๋ณต์žกํ•œ ์‹œ์Šคํ…œ์€ ์‰ฝ๊ฒŒ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์œผ๋ฉด์„œ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋ ค๋ฉด ์‹ ์ค‘ํžˆ ์ œ์ž‘๋˜์–ด์•ผ ํ•œ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ํ•œ ๊ฐœ์˜ ์ผ๊ด€๋œ ์‹œ์Šคํ…œ๋ณด๋‹ค๋Š” ์ž‘์—…์„ ์ž‘์€ ๊ตฌ์„ฑ์š”์†Œ๋กœ ๋ถ„ํ•  ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ฐ๊ฐ์˜ ๋ชจ๋“ˆ์€ ์‹ ์ค‘ํžˆ ์ •์˜๋œ ์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ธฐ๋Šฅ๋“ค์„ ๊ฐ€์ง€๋Š” ์‹œ์Šคํ…œ์˜ ์ผ๋ถ€๊ฐ€ ๋˜์–ด์•ผ ํ•œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด main() ํ•จ์ˆ˜์— ๋ชจ๋“  ์ฝ”๋“œ๋ฅผ ๋„ฃ๋Š”๊ฒƒ ๋ณด๋‹ค ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ์˜ฌ๋ฐ”๋ฅธ ์ธ์ž์™€ ๋ฐ˜ํ™˜๊ฐ’์„ ๋ช…์‹œํ•œ ์—ฌ๋Ÿฌ ํ•จ์ˆ˜๋กœ ๋ถ„๋ฆฌํ•˜๊ณ  ์ ์žฌ์ ์†Œ์— ๋งž๊ฒŒ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์šด์˜์ฒด์ œ์˜ ๊ณตํ†ต์ ์ธ ๊ตฌ์„ฑ์š”์†Œ๋“ค์ด ์–ด๋–ป๊ฒŒ ์—ฐ๊ฒฐ๋˜์–ด ํ•˜๋‚˜์˜ ์ปค๋„๋กœ ๊ฒฐํ•ฉํ•˜๋Š”์ง€ ์•Œ์•„๋ณด์ž.

๋ชจ๋†€๋ฆฌ์‹ ๊ตฌ์กฐ

๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์€ ํ•œ๊ฐœ์˜ ๊ตฌ์กฐ์—†์ด ํ•œ๊ณณ์—์„œ ๋ชจ๋“  ๊ฒƒ์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

monolithic[mษ‘:nษ™โ”‚lษชฮธษชk]: ํ•˜๋‚˜๋กœ๋œ ๊ฑฐ๋Œ€ํ•œ ๋ฉ์–ด๋ฆฌ ์ด๋Ÿฌํ•œ ํ•œ๊ฐœ์˜ ๊ตฌ์กฐ๋ฅผ ๋ชจ๋†€๋ฆฌ์‹ (monolithic)์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ฆ‰ ๋‹จ์ผ ์ฃผ์†Œ ๊ณต๊ฐ„์—์„œ ์‹คํ–‰๋˜๋Š” ๋‹จ์ผ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์— ์ปค๋„์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ๋„ฃ๋Š” ๊ฒƒ์ด๋‹ค.

๋ชจ๋†€๋ฆฌ์‹ ๊ตฌ์กฐ๋ผ๊ณ  ํ•˜๋Š” ์ด๋ฐฉ๋ฒ•์€ ์šด์˜์ฒด์ œ๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ์ผ๋ฐ˜์ ์ธ ๊ธฐ๋ฒ•์ด๋‹ค. ์ด๋Ÿฌํ•œ ์ œํ•œ์ ์ธ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๋Š” ์šด์˜์ฒด์ œ๋Š” ์ตœ์ดˆ์˜ UNIX ์šด์˜์ฒด์ œ๊ฐ€ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ์‹œ์ด๋‹ค. ์ปค๋„๊ณผ ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋žจ์˜ ๋‘ ๋ถ€๋ถ„์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

์ปค๋„์€ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ธํ„ฐํŽ˜์ด์Šค์•„ ์žฅ์น˜๋“œ๋ผ์ด๋ฒ„๋กœ ๋‚˜๋‰˜๊ฒŒ ๋˜๋Š”๋ฐ, ์ด๋Š” UNIX๊ฐ€ ๋ฐœ์ „ํ•ด ์˜ค๋ฉด์„œ ๋ช‡์‹ญ๋…„์— ๊ฑธ์ณ ์ถ”๊ฐ€๋˜๊ณ  ํ™•์žฅ ๋˜์—ˆ๋‹ค. ๊ณ„์ธต ๋ณ„๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š” UNIX ์šด์˜์ฒด์ œ๋Š” ์‹œ์Šคํ…œ ์ฝœ ์ธํ„ฐํŽ˜์ด์Šค ์•„๋ž˜์™€ ํ•˜๋“œ์›จ์–ด ์œ„ ๋ชจ๋“  ๊ฒƒ์ด ์ปค๋„์ด๋‹ค.

UNIX์˜ ์ „ํ†ต์ ์ธ ์‹œ์Šคํ…œ ๊ตฌ์กฐ
UNIX์˜ ์ „ํ†ต์ ์ธ ์‹œ์Šคํ…œ ๊ตฌ์กฐ

์ปค๋„์€ ์‹œ์Šคํ…œ ์ฝœ์„ ํ†ตํ•ด ํŒŒ์ผ ์‹œ์Šคํ…œ, CPU ์Šค์ผ€์ค„๋ง, ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์€ ํ•œ๋‚˜์˜ ์ฃผ์†Œ ๊ณต๊ฐ„์œผ๋กœ ๊ฒฐํ•ฉํ•˜๊ธฐ์—๋Š” ๋„ˆ๋ฌด ๋งŽ์€ ๊ธฐ๋Šฅ์ด๋‹ค.

Linux ์šด์˜์ฒด์ œ๋Š” UNIX์— ๊ธฐ๋ฐ˜์„ ๋‘๊ณ  ์žˆ์œผ๋ฉฐ ์•„๋ž˜์™€ ๊ฐ™์€ ์œ ์‚ฌํ•œ ๊ตฌ์กฐ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

Linux์˜ ์‹œ์Šคํ…œ ๊ตฌ์กฐ
Linux์˜ ์‹œ์Šคํ…œ ๊ตฌ์กฐ

์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ปค๋„์˜ ์‹œ์Šคํ…œ์ฝœ ์ธํ„ฐํŽ˜์ด์Šค์™€ ํ†ต์‹ ํ•  ๋•Œ glibc ํ‘œ์ค€ C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
Linux ์ปค๋„์€ ๋‹จ์ผ ์ฃผ์†Œ ๊ณต๊ฐ„์—์„œ ์ปค๋„๋ชจ๋“œ๋กœ ์ „๋ถ€ ์‹คํ–‰๋œ ๋‹ค๋Š” ์ ์—์„œ ๋ชจ๋†€๋ฆฌ์‹์ด์ง€๋งŒ, ๋Ÿฐํƒ€์ž„์— ์ปค๋„์„ ์ •ํ•  ์ˆ˜ ์žˆ๋Š” LKM ๋ชจ๋“ˆ์‹ ์„ค๊ณ„๋ฅผ ๊ฐ–์ถ”๊ณ  ์žˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋‹จ์ˆœํ•œ ๊ตฌ์กฐ๋ผ๋„ ํ™•์žฅ์€ ์–ด๋ ต์ง€๋งŒ ์‹œ์Šคํ…œ ์ฝœ์˜ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๊ฑฐ์˜ ์—†๊ณ  ์ปค๋„์•ˆ์—์„œ์˜ ํ†ต์‹ ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ชจ๋†€๋ฆฌ์‹ ์ปค๋„์˜ ๋‹จ์ ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์†๋„์™€ ํšจ์œจ์„ฑ์€ ์•„์ง๊นŒ์ง€๋„ UNIX์™€ Linux ๋ฐ Windows์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์ด ์ฆ๋ช…ํ•ด์ค€๋‹ค.

๊ณ„์ธต์  ์ ‘๊ทผ

์ž‘์„ฑ์ค‘...

์šด์˜์ฒด์ œ์˜ ๋™์ž‘ ์ˆœ์„œ

์ปดํ“จํ„ฐ์˜ ์ „์›์„ ์ผค ๋•Œ ์‹คํ–‰๋˜๋Š” ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ํ”„๋กœ๊ทธ๋žจ์€ ํŽŒ์›จ์–ด์ด๋‹ค.
๋ถ€ํŠธ์ŠคํŠธ๋žฉ ํ”„๋กœ๊ทธ๋žจ์€ ํ•˜๋“œ์›จ์–ด ์œ„์—์„œ ๋™์ž‘ํ•˜๋ฉฐ CPU, ๋ฉ”๋ชจ๋ฆฌ ์ €์žฅ์žฅ์น˜ ๋“ฑ์„ ์ดˆ๊ธฐํ™” ํ•œ๋‹ค. ๋˜ํ•œ ์šด์˜์ฒด์ œ๋ฅผ ๋กœ๋“œํ•˜๊ธฐ ์œ„ํ•ด ๋ถ€ํŠธ๋กœ๋”๋ฅผ ์‹คํ–‰ํ•˜๋ฉฐ, ์ด๋Š” ์ €์žฅ์žฅ์น˜์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋กœ Kernel(์ปค๋„)์„ ์ ์žฌํ•œ๋‹ค.

๋ถ€ํŠธ๋กœ๋”๋Š” ์ปค๋„ ์‹คํ–‰์— ํ•„์š”ํ•œ ์ดˆ๊ธฐ์„ค์ •(์˜ˆ: ์ปค๋งจ๋“œ๋ผ์ธ ์ธ์ž ์ „๋‹ฌ ๋“ฑ)์„ ํ•œ๋’ค, ์ปค๋„์— ์ œ์–ด๋ฅผ ๋„˜๊ธด๋‹ค. ์ดํ›„์— ์ปค๋„์€ ์‹œ์Šคํ…œ์„ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  ์‚ฌ์šฉ์ž ๊ณต๊ฐ„(user space)์„ ์ค€๋น„ํ•œ๋‹ค. ๊ฐ ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉ ๋˜๋Š” ๋ถ€ํŠธ๋กœ๋”๋Š” ์—ฌ๋Ÿฌ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค.

  • GRUB (GNU GRUB):
    • ๋ฆฌ๋ˆ…์Šค/์œ ๋‹‰์Šค ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ถ€ํŠธ๋กœ๋”
  • LILO(Linux Loader)
    • ๊ณผ๊ฑฐ ๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ถ€ํŠธ๋กœ๋”
  • Windows Boot Manager
    • ์œˆ๋„์šฐ ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ถ€ํŠธ๋กœ๋”
  • Android Bootloader
    • ์•ˆ๋“œ๋กœ์ด๋“œ ๊ธฐ๊ธฐ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ถ€ํŠธ๋กœ๋”๋กœ, ๋ฆฌ์ปค๋ฒ„๋ฆฌ๋ชจ๋“œ์™€ ์šด์˜์ฒด์ œ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

์šด์˜์ฒด์ œ์˜ ์—ญํ• 

์šด์˜์ฒด์ œ๋Š” ์‚ฌ์šฉ์ž ๋˜๋Š” ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋žจ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‹คํ–‰๋˜๊ธฐ ์œ„ํ•ด ์ปค๋„์—์„œ ๋‹ค์–‘ํ•œ ๊ด€๋ฆฌ๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ์ œ๊ณตํ•œ๋‹ค.

  • ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ
  • ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ
  • ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„
  • ํŒŒ์ผ ์‹œ์Šคํ…œ
  • ๋„คํŠธ์›Œํฌ ๊ด€๋ฆฌ

๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ

ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ

์šด์˜์ฒด์ œ๋Š” ์ž์›์„ ๊ด€๋ฆฌํ•˜์ง€๋งŒ, ์•„๋งˆ ๊ทธ์ค‘์—์„œ๋„ ๊ฐ€์žฅ ์ค‘์š”ํ•œ๊ฑด ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ๊ด€๋ฆฌ์ด๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  • ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค์™€ ์‹œ์Šคํ…œํ”„๋กœ์„ธ์Šค์˜ ์ƒ์„ฑ๊ณผ ์ œ๊ฑฐ
  • CPU์— ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ ์Šค์ผ€์ค„๋ง
  • ํ”„๋กœ์„ธ์Šค์˜ ์ผ์‹œ์ค‘์ง€(suspend) ์™€ ์žฌ์ˆ˜ํ–‰(resume)
  • ํ”„๋กœ์„ธ์Šค ๋™๊ธฐํ™” ๊ธฐ๋ฒ• ์ œ๊ณต
  • ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹ (IPC) ์ œ๊ณต

์œ„์™€ ๊ฐ™์€ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ์šด์˜์ฒด์ œ๋Š” ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๋ฉฐ, ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ(process stats)๋Š” ์ƒ์„ฑ, ์ค€๋น„, ์‹คํ–‰, ๋Œ€๊ธฐ, ์ข…๋ฃŒ๋กœ ๋‚˜๋‰œ๋‹ค. ์ด๋Ÿฌํ•œ ์ƒํƒœ๋Š” ์•„๋ž˜์ฒ˜๋Ÿผ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

 New
  โ†“
Ready โ†โ†’ Running โ†’ Terminated
  โ†‘        โ”†
Waiting โ†--โ•ฏ

Copyright ยฉ 2019-2025 Alloc ยท MIT License