๐Ÿ“Œ[OS] System Structure & Program Execution 2

๋ชจ๊น…ยท2023๋…„ 4์›” 1์ผ
0

๐Ÿ“– 01. ๋™๊ธฐ์‹ ์ž…์ถœ๋ ฅ๊ณผ ๋น„๋™๊ธฐ์‹ ์ž…์ถœ๋ ฅ

  • ๋™๊ธฐ์‹ ์ž…์ถœ๋ ฅ (synchronous I/O)
    • I/O ์š”์ฒญ ํ›„ ์ž…์ถœ๋ ฅ ์ž‘์—…์ด ์™„๋ฃŒ๋œ ํ›„์—์•ผ ์ œ์–ด๊ฐ€ ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์— ๋„˜์–ด๊ฐ
    • ๊ตฌํ˜„ ๋ฐฉ๋ฒ• 1
      -> I/O๊ฐ€ ๋๋‚  ๋•Œ๊นŒ์ง€ CPU๋ฅผ ๋‚ญ๋น„์‹œํ‚ด
      -> ๋งค์‹œ์  ํ•˜๋‚˜์˜ I/O๋งŒ ์ผ์–ด๋‚  ์ˆ˜ ์žˆ์Œ
    • ๊ตฌํ˜„ ๋ฐฉ๋ฒ• 2
      -> I/O๊ฐ€ ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์—๊ฒŒ์„œ CPU๋ฅผ ๋นผ์•—์Œ
      -> I/O ์ฒ˜๋ฆฌ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ค„์— ๊ทธ ํ”„๋กœ๊ทธ๋žจ์„ ์ค„ ์„ธ์›€
      -> ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์—๊ฒŒ CPU๋ฅผ ์คŒ
  • ๋น„๋™๊ธฐ์‹ ์ž…์ถœ๋ ฅ (asynchronous I/O)
    • I/O๊ฐ€ ์‹œ์ž‘๋œ ํ›„ ์ž…์ถœ๋ ฅ ์ž‘์—…์ด ๋๋‚˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ์ œ์–ด๊ฐ€ ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์— ์ฆ‰์‹œ ๋„˜์–ด๊ฐ

-> ๋‘ ๊ฒฝ์šฐ ๋ชจ๋‘ I/O์˜ ์™„๋ฃŒ๋Š” ์ธํ„ฐ๋ŸฝํŠธ๋กœ ์•Œ๋ ค์คŒ

  • ๋™๊ธฐ์‹ ์ž…์ถœ๋ ฅ์ด๋ผ๋Š” ๊ฒƒ์€ ์–ด๋–ค ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž…์ถœ๋ ฅ ์š”์ฒญ์„ ํ–ˆ๋‹ค -> ๋ณธ์ธ์ด ํ•˜๋Š”๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์šด์˜์ฒด์ œ๋ฅผ ํ†ตํ•ด ํ•ด์•ผํ•œ๋‹ค. -> ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค๋Š” ์šด์˜์ฒด์ œํ•œํ…Œ ์ž…์ถœ๋ ฅ ์š”์ฒญ์„ ํ•œ๋‹ค. -> ์ž…์ถœ๋ ฅ์€ ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋ฉฐ ์ˆ˜ํ–‰๋œ๋‹ค. -> ์ˆ˜ํ–‰์ด ๋˜๋Š” ๋™์•ˆ์— ์ž…์ถœ๋ ฅ์„ ์š”์ฒญํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž…์ถœ๋ ฅ์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ์•„๋ฌด๊ฒƒ๋„ ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ทธ๊ฒƒ์€ ๋™๊ธฐ์‹ ์ž…์ถœ๋ ฅ์ด๋‹ค.

  • ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž…์ถœ๋ ฅ ์š”์ฒญ์„ ํ•œํ›„ ์ž…์ถœ๋ ฅ์ด ์ง„ํ–‰๋˜๋Š” ๋™์•ˆ์— ๊ทธ ํ”„๋กœ์„ธ์Šค๊ฐ€ CPU๋ฅผ ์žก์•„์„œ instruction์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ๊ทธ๊ฒƒ์€ ๋น„ ๋™๊ธฐ์‹ ์ž…์ถœ๋ ฅ์ด๋‹ค.

๐Ÿ“– 02. DMA (Direct Memory Access)

  • DMA (Direct Memory Access)
    • ๋น ๋ฅธ ์ž…์ถœ๋ ฅ ์žฅ์น˜๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ๊ฐ€๊นŒ์šด ์†๋„๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
    • CPU์˜ ์ค‘์žฌ ์—†์ด device controller๊ฐ€ device์˜ buffer storage์˜ ๋‚ด์šฉ์„ ๋ฉ”๋ชจ๋ฆฌ์— block ๋‹จ์œ„๋กœ ์ง์ ‘ ์ „์†ก
    • ๋ฐ”์ดํŠธ ๋‹จ์œ„๊ฐ€ ์•„๋‹ˆ๋ผ block ๋‹จ์œ„๋กœ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ด

  • local buffer์— ์ผ์ •๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์Œ“์—ฌ ๋ธ”๋Ÿญ ํ˜น์€ ํŽ˜์ด์ง€๊ฐ€ ๋˜๋ฉด interrupt๋ฅผ ๊ฑธ๊ฒŒ๋œ๋‹ค.

๐Ÿ“– 03. ์„œ๋กœ ๋‹ค๋ฅธ ์ž…์ถœ๋ ฅ ๋ช…๋ น์–ด

  • I/O๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” special instruction์— ์˜ํ•ด : ๊ธฐ๋ณธ์€ I/O์— ๋Œ€ํ•ด special instruction์ด ์กด์žฌํ•œ๋‹ค.
  • Memory Mapped I/O์— ์˜ํ•ด : Memory ์ฃผ์†Œ์— I/O๋ฅผ ๋งค์น˜์‹œํ‚จ๋‹ค.

  • I/O๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด 2๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•œ๋‹ค.

  • ์ขŒ์ธก์— ์žˆ๋Š” ๊ทธ๋ฆผ์ด ์ผ๋ฐ˜์ ์ธ I/O ๊ทธ๋ฆผ์ด๋‹ค. CPU์—์„œ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” instruction์—๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” instruction๊ณผ I/O์žฅ์น˜๋ฅผ ์ ‘๊ทผํ•˜๋Š” instruction์ด ์กด์žฌํ•œ๋‹ค. CPU์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ‘๊ทผํ•˜๋Š” instruction์„ loadStore์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. Device์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด loadStore๊ณผ ๋ณ„๊ฐœ์˜ instruction์ด ์กด์žฌํ•œ๋‹ค. device๋„ ์ฃผ์†Œ๊ฐ€ ์žˆ์–ด์„œ I/O์ ‘๊ทผํ•˜๋Š” instruction์„ ์‹คํ–‰ํ•˜๊ฒŒ ๋˜๋ฉด device๋ฅผ ์ ‘๊ทผํ•˜๊ฒŒ ๋œ๋‹ค. -> Memory Mapped I/O๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

  • I/O device์—๋‹ค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๋งค๊ฒจ์„œ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผํ•˜๋Š” instruction์„ ํ†ตํ•ด์„œ I/O์— ์ ‘๊ทผ ํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ“– 04. ์ €์žฅ์žฅ์น˜ ๊ณ„์ธต ๊ตฌ์กฐ

  • DRAM์œผ๋กœ ๊ตฌ์„ฑ๋œ Main Memory
  • ์œ„๋กœ ๊ฐˆ์ˆ˜๋กœ ๋น ๋ฅด์ง€๋งŒ ๋น„์‹ธ๊ณ  ์šฉ๋Ÿ‰์ด ์ž‘๋‹ค.
  • ์ดˆ๋ก์ƒ‰์€ ์ „์›์ด ๋‚˜๊ฐ€๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฌ๋ผ์ง€๋Š” ํœ˜๋ฐœ์„ฑ ๋งค์ฒด + CPU๊ฐ€ ์ง์ ‘ ์ ‘๊ทผ ๊ฐ€๋Šฅ(byte ๋‹จ์œ„์ด๊ธฐ ๋•Œ๋ฌธ์—), ๋นจ๊ฐ„์ƒ‰์€ ์ ‘๊ทผ ๋ถˆ๊ฐ€
  • caching : copying informagion into faster storage system
  • CPU๊ฐ€ ์ง์ ‘ ์ ‘๊ทผ ํ•  ์ˆ˜ ์žˆ๋Š” ์ €์žฅ์žฅ์น˜๋ฅผ Primary๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
  • CPU๊ฐ€ ์ง์ ‘ ์ ‘๊ทผํ•ด์„œ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ์„ Secondary๋ผ๊ณ  ํ•œ๋‹ค.
  • CUP๊ฐ€ ์ง์ ‘ ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” byte๋‹จ์œ„๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค.
    -> DRAM๊ฐ™์€ ๊ฒฝ์šฐ byte๋‹จ์œ„๋กœ ๋งค๊ฒจ์„œ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ ์ž๋ฆฌ์—์„œ CPU๊ฐ€ ์ฝ์–ด์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํ•˜๋“œ๋””์Šคํฌ์˜ ๊ฒฝ์šฐ sector๋‹จ์œ„์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ”๋กœ ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•œ๋‹ค.

๐Ÿ“– 05. ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ (๋ฉ”๋ชจ๋ฆฌ load)

  • ํ”„๋กœ๊ทธ๋žจ์€ ํŒŒ์ผ ํ˜•ํƒœ๋กœ File system์— ์ €์žฅ๋œ๋‹ค. -> ์‹คํ–‰ํ•˜๊ฒŒ ๋˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€๊ณ  ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋œ๋‹ค.

  • ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ์— ๋ฐ”๋กœ ์˜ฌ๋ผ๊ฐ€๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ค‘๊ฐ„์— Virtual Memory์— ์˜ฌ๋ผ๊ฐ€๊ฒŒ ๋œ๋‹ค.

  • ์–ด๋–ค ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œํ‚ค๊ฒŒ ๋˜๋ฉด ๊ทธ ํ”„๋กœ๊ทธ๋žจ๋งŒ์˜ ๋…์ž์ ์ธ ์ฃผ์†Œ ๊ณต๊ฐ„(address space)์ด virtual memory์— ์ƒ๊ธฐ๊ฒŒ ๋œ๋‹ค. -> 0๋ฒˆ์ง€ ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๋…์ž์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๊ณต๊ฐ„! -> ์ด๋Ÿฌํ•œ ์ฃผ์†Œ ๊ณต๊ฐ„์€ code, data, stack์˜์—ญ์œผ๋กœ ๋‚˜๋‰˜๊ฒŒ ๋œ๋‹ค.

  • code : CPU๊ฐ€ ์‹คํ–‰ํ•  ๊ธฐ๊ณ„์–ด ์ฝ”๋“œ

  • data : ์ „์—ญ๋ณ€์ˆ˜, ์ž๋ฃŒ๊ตฌ์กฐ ๋“ฑ

  • stack : ํ•จ์ˆ˜
    -> virtual memory์— ์˜ฌ๋ผ๊ฐ€ ์žˆ๋Š” ๋ชจ๋“  memory๋ฅผ Physical memory์— ํ†ต์งธ๋กœ ์˜ฌ๋ฆฌ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋‹น์žฅ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ์˜ฌ๋ฆฐ๋‹ค.(ํ†ต์งธ๋กœ ์˜ฌ๋ฆฌ๋ฉด ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„๊ฐ€ ๋œ๋‹ค.) -> ์‚ฌ์šฉ์ด ์•ˆ๋˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ซ“์•„๋‚ธ๋‹ค. -> ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋˜๊ธฐ ์ „์— ๋ณด๊ด€ํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•˜๋Š” ๋ถ€๋ถ„์ด ํ•„์š”ํ•˜๋‹ค. -> ๊ทธ๋Ÿฐ ๋ถ€๋ถ„์€ ๋””์Šคํฌ์˜ Swap area์— ๋‚ด๋ ค๋†“๊ฒŒ ๋œ๋‹ค.

  • Swap area๋Š” physical memory์˜ ์—ฐ์žฅ๋ถ€๋ถ„์ด๊ณ (์ „์›์ด ๋‚˜๊ฐ€๊ฒŒ ๋˜๋ฉด virtual, physical memory๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์‚ฌ๋ผ์ง€๋ฏ€๋กœ ์˜๋ฏธ์—†์–ด์ง„๋‹ค) File system์€ ๋น„ํœ˜๋ฐœ์„ฑ ์ €์žฅ๊ณต๊ฐ„์œผ๋กœ ๊ฐ™์€ ํ•˜๋“œ๋””์Šคํฌ์ง€๋งŒ ์˜๋ฏธํ•˜๋Š” ๋ฐ”๊ฐ€ ๋‹ค๋ฅด๋‹ค.

  • Virtual Memory๋Š” ๊ฐ ํ”„๋กœ๊ทธ๋žจ๋งˆ๋‹ค ๋…์ž์ ์œผ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ฃผ์†Œ๊ณต๊ฐ„์„ ์˜๋ฏธํ•œ๋‹ค.

  • vitual memory์˜ ์ฃผ์†Œ๋ฅผ physical memory์— ์ฃผ์†Œ๋กœ ์˜ฎ๊ฒจ์ฃผ๋Š” address translationํ•ด์ฃผ๋Š” H.W๊ฐ€ ์กด์žฌํ•œ๋‹ค.

๐Ÿ“– 06. ์ปค๋„ ์ฃผ์†Œ ๊ณต๊ฐ„์˜ ๋‚ด์šฉ

  • PCB(Process Controll Block) : ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰ ๋  ๋•Œ๋งˆ๋‹ค ์ปค๋„ data์˜์—ญ์— ์ž๋ฃŒ๊ตฌ์กฐ๊ฐ€ ์ƒ์„ฑ๋˜์–ด ๊ด€๋ฆฌ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.
    -> ์šด์˜์ฒด์ œ์˜ ์—ญํ• ์€ ๊ด€๋ฆฌ์ด๊ธฐ ๋•Œ๋ฌธ! ์ƒํƒœ๋ฅผ ์•Œ์•„์•ผ ํ•จ.

  • ์ปค๋„์€ ํ•จ์ˆ˜ ๊ตฌ์กฐ๋กœ ์ฝ”๋“œ๊ฐ€ ์งœ์ ธ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๊ฑฐ๋‚˜ ๋ฆฌํ„ดํ•  ๋•Œ stack์˜์—ญ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. ์šด์˜์ฒด์ œ ์ฝ”๋“œ๋Š” ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์ด ์š”์ฒญ์„ ํ•ด์„œ ์–ด๋–ค ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์ด ์–ด๋–ค ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ–ˆ๋Š”์ง€ ์œ ์ง€ํ•ด์•ผํ•œ๋‹ค.
    -> ๋”ฐ๋ผ์„œ ์ปค๋„ ์Šคํƒ์„ ๋”ฐ๋กœ ์œ ์ง€ํ•ด์•ผ ํ•œ๋‹ค.

๐Ÿ“– 07. ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์ด ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜





[์ถœ์ฒ˜] ๋ฐ˜ํšจ๊ฒฝ ๊ต์ˆ˜๋‹˜ ๊ฐ•์˜

profile
๋ฉˆ์ถ”์ง€ ์•Š๊ธฐ

0๊ฐœ์˜ ๋Œ“๊ธ€