๐Ÿน STUDY/Computer Science

[์šด์˜์ฒด์ œ] 2. System Structure & Program Execution

์ง€ ์› 2022. 10. 29. 16:51

์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ ๊ตฌ์กฐ

memory : CPU์˜ ์ž‘์—… ๊ณต๊ฐ„

local buffer : device ์˜ ์ž‘์—… ๊ณต๊ฐ„

CPU register : memory๋ณด๋‹ค ๋น ๋ฅด๊ฒŒ ์ •๋ณด๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘์€ ๊ณต๊ฐ„

CPU mode bit : CPU์—์„œ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์ด ์šด์˜์ฒด์ œ ์ธ์ง€ ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์ธ์ง€ ๊ตฌ๋ถ„ํ•ด์คŒ

CPU Interrupt line : CPU๋Š” ํ•ญ์ƒ ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋Š” instruction๋งŒ ์‹คํ–‰. ๋‹ค๋ฅธ I/O์™€ ํ”„๋กœ๊ทธ๋žจ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š”.. ์ง์ ‘ ์ ‘๊ทผ ํ•˜์ง€ ์•Š์Œ. memory์™€๋งŒ ์†Œํ†ต. I/O ์—์„œ ๋ฌด์–ธ๊ฐ€ ๋ถˆ๋Ÿฌ์™€๋ผ ํ•˜๋Š” ์š”์ฒญ โ†’ device controller์— ๋ถ€ํƒ. controller์—์„œ ์ผ ์ฒ˜๋ฆฌ, buffer์— ์ €์žฅ. CPU๋Š” ๋ญ ์‹œํ‚ค๊ณ  ๋˜ memeory๋ž‘ ์†Œํ†ต

timer : ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ์ด CPU๋ฅผ ๋…์ ํ•˜๋Š” ๊ฒƒ์„ ๋ง‰๊ธฐ ์œ„ํ•จ. ํ• ๋‹น๋œ ์‹œ๊ฐ„๋งŒํผ๋งŒ ์‚ฌ์šฉ

dma controller : Direct Memory Access controller . Memory์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” controller. I/O์—์„œ ๋“ค์–ด์˜ค๋Š” interrupt๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์•„์„œ CPU๊ฐ€ ๋ฐฉํ•ด๋ฐ›์Œ. DMA๊ฐ€ ํ•œ๋ฒˆ์— ๋ชจ์•„์„œ CPU์— ์ „๋‹ฌ โ†’ CPU๊ฐ€ ๋ฐฉํ•ด๋ฐ›๋Š” ํšŸ์ˆ˜๊ฐ€ ์ค„์–ด๋“ฌ

Mode bit

์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์˜ ์ž˜๋ชป๋œ ์ˆ˜ํ–‰์œผ๋กœ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ ๋ฐ ์šด์˜์ฒด์ œ์— ํ”ผํ•ด๊ฐ€ ๊ฐ€์ง€ ์•Š๋„๋ก ํ•˜๊ธฐ ์œ„ํ•œ ๋ณดํ˜ธ ์žฅ์น˜ ํ•„์š”

Mode bit์„ ํ†ตํ•ด ํ•˜๋“œ์›จ์–ด์ ์œผ๋กœ ๋‘๊ฐ€์ง€ ๋ชจ๋“œ์˜ operation ์ง€์›

1 ์‚ฌ์šฉ์ž ๋ชจ๋“œ : ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ ์ˆ˜ํ–‰
0 ๋ชจ๋‹ˆํ„ฐ ๋ชจ๋“œ : OS ์ฝ”๋“œ ์ˆ˜ํ–‰
  • ๋ณด์•ˆ์„ ํ•ด์น  ์ˆ˜ ์žˆ๋Š” ์ค‘์š”ํ•œ ๋ช…๋ น์–ด๋Š” ๋ชจ๋‹ˆํ„ฐ ๋ชจ๋“œ์—์„œ๋งŒ ์ˆ˜ํ–‰ ๊ฐ€๋Šฅํ•œ โ€˜ํŠน๊ถŒ๋ช…๋ นโ€™์œผ๋กœ ๊ทœ์ •
  • Interrupt๋‚˜ Exception ๋ฐœ์ƒ์‹œ ํ•˜๋“œ์›จ์–ด๊ฐ€ mode bit์„ 0์œผ๋กœ ๋ฐ”๊ฟˆ
  • ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์—๊ฒŒ CPU๋ฅผ ๋„˜๊ธฐ๊ธฐ ์ „์— mode bit์„ 1๋กœ ์…‹ํŒ…

Timer

ํƒ€์ด๋จธ

  • ์ •ํ•ด์ง„ ์‹œ๊ฐ„์ด ํ๋ฅธ ๋’ค ์šด์˜์ฒด์ œ์—๊ฒŒ ์ œ์–ด๊ถŒ์ด ๋„˜์–ด๊ฐ€๋„๋ก ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ด
  • ํƒ€์ด๋จธ๋Š” ๋งค ํด๋Ÿญ ํ‹ฑ ๋•Œ๋งˆ๋‹ค 1์”ฉ ๊ฐ์†Œ
  • ํƒ€์ด๋จธ ๊ฐ’์ด 0์ด ๋˜๋ฉด ํƒ€์ด๋จธ ์ธํ„ฐ๋ŸฝํŠธ ๋ฐœ์ƒ
  • CPU๋ฅผ ํŠน์ • ํ”„๋กœ๊ทธ๋žจ์ด ๋…์ ํ•˜๋Š” ๊ฒƒ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธ

ํƒ€์ด๋จธ๋Š” time sharing์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๋„๋ฆฌ ์ด์šฉ๋จ

ํƒ€์ด๋จธ๋Š” ํ˜„์žฌ ์‹œ๊ฐ„์„ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋„ ์‚ฌ์šฉ

Device Controller

I/O device controller

  • ํ•ด๋‹น I/O ์žฅ์น˜ ์œ ํ˜•์„ ๊ด€๋ฆฌํ•˜๋Š” ์ผ์ข…์˜ ์ž‘์€ CPU
  • ์ œ์–ด ์ •๋ณด๋ฅผ ์œ„ํ•ด control register, status register๋ฅผ ๊ฐ€์ง
  • local buffer๋ฅผ ๊ฐ€์ง (์ผ์ข…์˜ data register)

I/O๋Š” ์‹ค์ œ device์™€ local buffer ์‚ฌ์ด์—์„œ ์ผ์–ด๋‚จ

Device controller๋Š” I/O๊ฐ€ ๋๋‚ฌ์„ ๊ฒฝ์šฐ interrupt๋กœ CPU์— ๊ทธ ์‚ฌ์‹ค์„ ์•Œ๋ฆผ

device driver (์žฅ์น˜ ๊ตฌ๋™๊ธฐ)

: OS ์ฝ”๋“œ ์ค‘ ์žฅ์น˜๋ณ„ ์ฒ˜๋ฆฌ ๋ฃจํ‹ด โ†’ software

device controller (์žฅ์น˜ ์ œ์–ด๊ธฐ)

: ๊ฐ ์žฅ์น˜๋ฅผ ํ†ต์ œํ•˜๋Š” ์ผ์ข…์˜ ์ž‘์€ CPU โ†’ hardware

์ž…์ถœ๋ ฅ (I/O)์˜ ์ˆ˜ํ–‰

๋ชจ๋“  ์ž…์ถœ๋ ฅ ๋ช…๋ น์€ ํŠน๊ถŒ ๋ช…๋ น

์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์€ ์–ด๋–ป๊ฒŒ I/O๋ฅผ ํ•˜๋Š”๊ฐ€?

  • ์‹œ์Šคํ…œ์ฝœ (system call)
    • ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์€ ์šด์˜์ฒด์ œ์—๊ฒŒ I/O ์š”์ฒญ
  • trap์„ ์‚ฌ์šฉํ•˜์—ฌ ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ์˜ ํŠน์ • ์œ„์น˜๋กœ ์ด๋™
  • ์ œ์–ด๊ถŒ์ด ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ธํ„ฐ๋ŸฝํŠธ ์„œ๋น„์Šค ๋ฃจํ‹ด์œผ๋กœ ์ด๋™
  • ์˜ฌ๋ฐ”๋ฅธ I/O ์š”์ฒญ์ธ์ง€ ํ™•์ธ ํ›„ I/O ์ˆ˜ํ–‰
  • I/O ์™„๋ฃŒ ์‹œ ์ œ์–ด๊ถŒ์„ ์‹œ์Šคํ…œ์ฝœ ๋‹ค์Œ ๋ช…๋ น์œผ๋กœ ์˜ฎ๊น€

์ธํ„ฐ๋ŸฝํŠธ (Interrupt)

์ธํ„ฐ๋ŸฝํŠธ

  • ์ธํ„ฐ๋ŸฝํŠธ ๋‹นํ•œ ์‹œ์ ์˜ ๋ ˆ์ง€์Šคํ„ฐ์™€ program counter๋ฅผ save ํ•œ ํ›„ CPU์˜ ์ œ์–ด๋ฅผ ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ ๋ฃจํ‹ด์— ๋„˜๊ธด๋‹ค

Interrupt (๋„“์€ ์˜๋ฏธ)

  • Interrupt (ํ•˜๋“œ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ) : ํ•˜๋“œ์›จ์–ด๊ฐ€ ๋ฐœ์ƒ์‹œํ‚จ ์ธํ„ฐ๋ŸฝํŠธ
  • Trap (์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ)
    • Exception : ํ”„๋กœ๊ทธ๋žจ์ด ์˜ค๋ฅ˜๋ฅผ ๋ฒ”ํ•œ ๊ฒฝ์šฐ
    • System call : ํ”„๋กœ๊ทธ๋žจ์ด ์ปค๋„ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒฝ์šฐ

์ธํ„ฐ๋ŸฝํŠธ ๊ด€๋ จ ์šฉ์–ด

  • ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ
    • ํ•ด๋‹น ์ธํ„ฐ๋ŸฝํŠธ์˜ ์ฒ˜๋ฆฌ ๋ฃจํ‹ด ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ
  • ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ ๋ฃจํ‹ด (=Interrupt Service Routine, ์ธํ„ฐ๋ŸฝํŠธ ํ•ธ๋“ค๋Ÿฌ)
    • ํ•ด๋‹น ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์ปค๋„ ํ•จ์ˆ˜

ํ˜„๋Œ€์˜ ์šด์˜์ฒด์ œ๋Š” ์ธํ„ฐ๋ŸฝํŠธ์— ์˜ํ•ด ๊ตฌ๋™๋จ

์‹œ์Šคํ…œ ์ฝœ

์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์ด ์šด์˜์ฒด์ œ์˜ ์„œ๋น„์Šค๋ฅผ ๋ฐ›๊ธฐ ์œ„ํ•ด ์ปค๋„ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ

๋™๊ธฐ์‹ ์ž…์ถœ๋ ฅ๊ณผ ๋น„๋™๊ธฐ์‹ ์ž…์ถœ๋ ฅ

๋™๊ธฐ์‹ ์ž…์ถœ๋ ฅ (Synchronous I/O)

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

๋น„๋™๊ธฐ์‹ ์ž…์ถœ๋ ฅ (Asychronous I/O)

  • I/O๊ฐ€ ์‹œ์ž‘๋œ ํ›„ ์ž…์ถœ๋ ฅ ์ž‘์—…์ด ๋๋‚˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ์ œ์–ด๊ฐ€ ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์— ์ฆ‰์‹œ ๋„˜์–ด๊ฐ

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

DMA (Direct Memory Access)

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

์„œ๋กœ ๋‹ค๋ฅธ ์ž…์ถœ๋ ฅ ๋ช…๋ น์–ด

  • I/O๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” special instruction์— ์˜ํ•ด
  • Memory Mapped I/O์— ์˜ํ•ด โ†’ I/O ์žฅ์น˜๋„ memory ์ฃผ์†Œ์˜ ์—ฐ์žฅ์„ ์œผ๋กœ ์ฃผ์†Œ๋ฅผ ๋ถ™์—ฌ์„œ ์‚ฌ์šฉ

์ €์žฅ ์žฅ์น˜ ๊ณ„์ธต ๊ตฌ์กฐ

 

์œ„๋กœ๊ฐˆ์ˆ˜๋ก ์†๋„๊ฐ€ ๋น ๋ฅด๊ณ  ๊ฐ€๊ฒฉ์ด ๋น„์‹ธ๊ณ  ์šฉ๋Ÿ‰์ด ์ ์Œ.

primary โ†’ ํœ˜๋ฐœ์„ฑ ๋งค์ฒด๋กœ ๊ตฌ์„ฑ. secondary โ†’ ๋น„ํœ˜๋ฐœ์„ฑ ๋งค์ฒด๋กœ ๊ตฌ์„ฑ

Chaching : copying information into faster storage system

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

 

virtual memory : ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํ• ๋‹น

โ†’ address translation ์„ ํ†ตํ•ด ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜

swap area : ๋ฉ”๋ชจ๋ฆฌ ์—ฐ์žฅ์„ ์œผ๋กœ ์‚ฌ์šฉ - ํœ˜๋ฐœ์„ฑ

file system : ๋น„ํœ˜๋ฐœ์„ฑ

์ปค๋„ ์ฃผ์†Œ ๊ณต๊ฐ„์˜ ๋‚ด์šฉ

PCB : ์ปค๋„์— ๋งŒ๋“ค์–ด์ง€๋Š” ๊ฐ๊ฐ์˜ ํ”„๋กœ๊ทธ๋žจ์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ.

์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์ด ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜

ํ•จ์ˆ˜(functions)

  • ์‚ฌ์šฉ์ž ์ •์˜ ํ•จ์ˆ˜
    • ์ž์‹ ์˜ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ •์˜ํ•œ ํ•จ์ˆ˜
  • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•จ์ˆ˜
    • ์ž์‹ ์˜ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ •์˜ํ•˜์ง€ ์•Š๊ณ  ๊ฐ–๋‹ค ์“ด ํ•จ์ˆ˜
    • ์ž์‹ ์˜ ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ ํŒŒ์ผ์— ํฌํ•จ๋˜์–ด ์žˆ๋‹ค
  • ์ปค๋„ ํ•จ์ˆ˜
    • ์šด์˜์ฒด์ œ ํ”„๋กœ๊ทธ๋žจ์˜ ํ•จ์ˆ˜
    • ์ปค๋„ ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ = ์‹œ์Šคํ…œ ์ฝœ

์‚ฌ์šฉ์ž ์ •์˜ ํ•จ์ˆ˜, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•จ์ˆ˜ : ํ”„๋กœ์„ธ์Šค A์˜ Address space

์ปค๋„ ํ•จ์ˆ˜ : Kernel Address space โ‡’ ์‹œ์Šคํ…œ ์ฝœ ์‚ฌ์šฉ

ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰

ํ”„๋กœ๊ทธ๋žจ์€ user mode์™€ kernel mode๋ฅผ ๋ฐ˜๋ณตํ•จ


์ถœ์ € : kocw ์šด์˜์ฒด์ œ - ๋ฐ˜ํšจ๊ฒฝ ๊ต์ˆ˜๋‹˜ (์ดํ™”์—ฌ์ž๋Œ€ํ•™๊ต)

http://www.kocw.net/home/search/kemView.do?kemId=1046323

 

์šด์˜์ฒด์ œ

์šด์˜์ฒด์ œ๋Š” ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด ๋ฐ”๋กœ ์œ„์— ์„ค์น˜๋˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ณ„์ธต์œผ๋กœ์„œ ๋ชจ๋“  ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์˜ ํ•„์ˆ˜์ ์ธ ๋ถ€๋ถ„์ด๋‹ค. ๋ณธ ๊ฐ•์ขŒ์—์„œ๋Š” ์ด์™€ ๊ฐ™์€ ์šด์˜์ฒด์ œ์˜ ๊ฐœ๋…๊ณผ ์—ญํ• , ์šด์˜์ฒด์ œ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฐ

www.kocw.net

 

'๐Ÿน STUDY > Computer Science' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[์šด์˜์ฒด์ œ] 1. Introduction to Operating Systems  (4) 2022.10.22