๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ป ์šด์˜์ฒด์ œ

์šด์˜์ฒด์ œ ๊ณต๋ฃก์ฑ… ๊ฐ•์˜2-Chpater1-2. ์šด์˜์ฒด์ œ์˜ ๊ฐœ๋…๊ณผ ๊ตฌ์กฐ

by ๋ถˆํƒ€๋Š” ์ฐธ์ƒˆ 2025. 2. 22.

๊ณต๋ฃก์ฑ… 1์žฅ์—์„œ 2์žฅ๊นŒ์ง€์˜ ๋‚ด์šฉ์ด๋‹ค. ํฌ๊ฒŒ ์ค‘์š”ํ•œ ๋‚ด์šฉ์€ ์—†์ง€๋งŒ ์ปดํ“จํ„ฐ ๊ธฐ๋ณธ ๊ตฌ์กฐ์— ๋Œ€ํ•œ ํ•ต์‹ฌ์  ๋‚ด์šฉ์„ ๋‹ด๊ณ  ์žˆ๋‹ค.

 

์šด์˜์ฒด์ œ๋ž€?

  • ์šด์˜์ฒด์ œ: ํ•˜๋“œ์›จ์–ด๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด
  • ์šด์˜์ฒด์ œ์˜ ์—ญํ• : application program๊ณผ ์ปดํ“จํ„ฐ ์‚ฌ์šฉ์ž, ํ•˜๋“œ์›จ์–ด ์‚ฌ์ด์—์„œ์˜ ๋งค๊ฒŒ์ฒด ์—ญํ• 

์•„๋ž˜์„œ๋ถ€ํ„ฐ ํ•˜๋“œ์›จ์–ด, OS(์ถ”์ƒ์ ์ธ layer), ์‹œ์Šคํ…œ๊ณผ ์•ฑ, ์‚ฌ์šฉ์ž

 

  • OS์˜ ํ•ต์‹ฌ ๋ถ€๋ถ„์€ kernel(์ปค๋„)์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆผ
  • ์ปค๋„์—์„œ ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋žจ๊ณผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ๊ทธ๋žจ์„ ์ œ๊ณตํ•ด์คŒ
  • CPU๊ฐ€ bus๋ฅผ ํ†ตํ•ด์„œ RAM๊ณผ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๊ณ  disk controller๋ฅผ ํ†ตํ•ด์„œ ๋””์Šคํฌ์™€ ์—ฐ๊ฒฐ, USB controller๋ฅผ ํ†ตํ•ด์„œ ๋งˆ์šฐ์Šค, ํ‚ค๋ณด๋“œ ๋“ฑ๊ณผ ์—ฐ๊ฒฐ ๋“ฑ์˜ ๋ฐฉ์‹

์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ ์กฐ์ง

(1) bootstrap program

  • ์ „์›์„ ๋ˆŒ๋ €์„ ๋•Œ CPU๊ฐ€ ๊ฐ€์žฅ ์ฒ˜์Œ์— ๋กœ๋”ฉํ•ด์•ผ ๋  ๋‚ด์šฉ์€ ROM์— ์žˆ์Œ
  • ์šด์˜์ฒด์ œ(ํŠนํžˆ ์ปค๋„)๋ฅผ ๋กœ๋”ฉํ•˜๋Š” ์ผ์„ ํ•˜๋Š” ์ด ํ”„๋กœ๊ทธ๋žจ์„ bootstrap program์ด๋ผ๊ณ  ํ•จ

(2) Interrupts

  • hardware๊ฐ€ ์–ธ์ œ๋“ ์ง€ interrupt๋ฅผ triggerํ•  ์ˆ˜ ์žˆ์Œ. ์‹œ์Šคํ…œ bus๋ฅผ ํ†ตํ•ด CPU์— ์‹ ํ˜ธ๋ฅผ ๋ณด๋ƒ„.

von Neumann architecture

  • ๋ช…๋ น-์‹คํ–‰ ์‚ฌ์ดํด
  • ๋ช…๋ น์–ด ์ง‘ํ•ฉ์—์„œ ์ผ๋ถ€๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ๊ฐ€์ ธ์˜จ ๋’ค ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋Š” ๋ช…๋ น์–ด๋ฅผ CPU์— fetch ํ•ด์„œ executeํ•˜๋Š” ์‚ฌ์ดํด
  • instruction register์— add, mov ๊ฐ™์€ ๋ช…๋ น์–ด๊ฐ€ ๋“ค์–ด์žˆ์Œ. ์ด๊ฑธ ๋ณด๊ณ  ๋ ˆ์ง€์Šคํ„ฐ์— ์žˆ๋Š” ๊ฐ’๋“ค์„ ALU์—์„œ ๊ณ„์‚ฐ

Storage System

  • ๋ฉ”๋ชจ๋ฆฌ๋Š” RAM(ํœ˜๋ฐœ์„ฑ), ๋น„ํœ˜๋ฐœ์„ฑ๋„ ํ•„์š”
  • ๋ฉ”๋ชจ๋ฆฌ ์†๋„ ์ˆœ์„œ(์œ„๊ณ„): register>cache>RAM(main memory)…>disk
  • ๋น ๋ฅผ์ˆ˜๋ก ๋น„์‹ธ๊ธด ํ•จ

Symmetric multiprocessing(SMP)

ํ•˜๋‚˜์˜ ๋ฉ”๋ชจ๋ฆฌ์— ๋Œ€ํ•ด ์—ฌ๋Ÿฌ ๊ฐœ์˜ CPU๊ฐ€ ๊ฐ๊ฐ register๋“ค๊ณผ cache๋ฅผ ๊ฐ€์ง€๊ณ  ์กด์žฌํ•จ

Multi-core design

๊ฐ™์€ ํ”„๋กœ์„ธ์„œ ์นฉ ํ•˜๋‚˜์— 2๊ฐœ ์ด์ƒ์˜ core CPU๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒƒ

Multiprogramming

  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ”„๋กœ๊ทธ๋žจ์„ ๋ฉ”๋ชจ๋ฆฌ์— ๋™์‹œ์— ์˜ฌ๋ ค๋†“๋Š” ๊ฒƒ.
  • ํ•œ ๋ฒˆ์— ํ•œ ๊ฐœ ์ด์ƒ์˜ ํ”„๋กœ๊ทธ๋žจ์ด run
  • CPU ์‚ฌ์šฉ ํšจ์œจ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Œ
  • Multitasking์ด ๊ฐ€๋Šฅ. (time-sharing: ์‹œ๊ฐ„๋ถ„ํ• )
  • ์ž์ฃผ CPU์—์„œ job์„ ๋ฐ”๊ฟ”์คŒ.
  • CPU scheduling์ด ํ•„์š”: ๋™์‹œ์— ์—ฌ๋Ÿฌ process ์šด์˜ํ•  ๋•Œ ๋‹ค์Œ์— ์–ด๋–ค process๋ฅผ ์‹คํ–‰์‹œํ‚ฌ์ง€ ๊ฒฐ์ •ํ•ด์•ผ ํ•จ.
  • ๋‘ ๊ฐœ์˜ opertaion mode: user mode์™€ kernel mode
  • user process๊ฐ€ ์‹คํ–‰→ system call(os์—๊ฒŒ ์„œ๋น„์Šค ์š”์ฒญ) ํ•จ → call ๋˜๋ฉด kernel mode๋กœ ๋ณ€๊ฒฝ๋จ → system call ์‹คํ–‰ → ๋‹ค์‹œ user mode๋กœ ๋˜๋Œ์•„๊ฐ
  • kernel mode๊ฐ€ ์•„๋‹ˆ๋ฉด ์ง์ ‘์ ์œผ๋กœ H/W ์ œ์–ด๋ฅผ ๋ชป ํ•˜๊ฒŒ ํ•จ

Vertualization(๊ฐ€์ƒํ™”)

 

ํ•˜๋‚˜์˜ ์ปดํ“จํ„ฐ์—์„œ ์—ฌ๋Ÿฌ process๋ฅผ ์šด์˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ํ•˜๋‚˜์˜ ์ปดํ“จํ„ฐ์—์„œ ์—ฌ๋Ÿฌ ์šด์˜ ์ฒด์ œ๋ฅผ ์šด์˜ํ•  ์ˆ˜๋„ ์žˆ์ง€ ์•Š์„๊นŒ?

→ ๊ฐ€๋Šฅํ•จ: VMN(Virtual Machine Manager) ์ด์šฉ, VMware, XEN, WSL ๋“ฑ

cf) ์—ฌ๋Ÿฌ computing ํ™˜๊ฒฝ์—์„œ์˜ OS

Traditional Computing, Mobile Computing, Client-Server Computing, Peer-to-Peer Computing, Cloud Computing, Real-Time Embedded Systems

์ž ์‹œ ์ •๋ฆฌ

cf) OS์— interface ์œ„ํ•œ ์„ธ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•

  • CLI: command line interface or command interpreter, shell์ด๋ผ ๋ถˆ๋ฆผ. (๋ช…๋ น์–ด ๊ธฐ๋ฐ˜)
  • GUI: graphical user interface: ์œˆ๋„์šฐ, ๋งฅ ๋“ฑ
  • Touch-Screen Interface: ์•ˆ๋“œ๋กœ์ด๋“œ, ์•„์ดํฐ

System Call

  • OS๊ฐ€ ์ œ๊ณตํ•ด์ฃผ๋Š” ์„œ๋น„์Šค๋“ค์„ ์‹œ์Šคํ…œ ์ฝœ์„ ํ†ตํ•ด ์ œ๊ณต, ๋Œ€ํ‘œ์ ์œผ๋กœ fork(), exit(), wait()๋“ฑ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ปจํŠธ๋กค ํ•˜๋Š” system call๋“ค์ด ์žˆ์Œ.
  • ๋งค๋ฒˆ open, close ๊ฐ™์€ system call์„ ์“ฐ๊ธฐ ํž˜๋“ค๊ธฐ ๋•Œ๋ฌธ์— The standard C library ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉ(printf ๋“ฑ)