๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์Šคํ„ฐ๋””/์šด์˜์ฒด์ œ

[์šด์˜์ฒด์ œ์™€ ์ •๋ณด๊ธฐ์ˆ ์˜ ์›๋ฆฌ] 3์žฅ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์˜ ๋™์ž‘ ์›๋ฆฌ

by moon101 2023. 2. 24.

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

  • ์ปดํ“จํ„ฐ ๋‚ด๋ถ€์žฅ์น˜ : CPU, ๋ฉ”๋ชจ๋ฆฌ
  • ์ปดํ“จํ„ฐ ์™ธ๋ถ€์žฅ์น˜ : ๋””์Šคํฌ, ํ‚ค๋ณด๋“œ, ๋งˆ์šฐ์Šค, ๋ชจ๋‹ˆํ„ฐ, ๋„คํŠธ์›Œํฌ ์žฅ์น˜ ๋“ฑ -> ์ž…์ถœ๋ ฅ(input-output: I/O)๋ผ๊ณ ๋„ ํ•จ
  • ์ปดํ“จํ„ฐ๋Š” ์™ธ๋ถ€์žฅ์น˜์—์„œ ๋‚ด๋ถ€์žฅ์น˜๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์™€(input) ๊ฐ์ข… ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ ํ›„, ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์™ธ๋ถ€์žฅ์น˜๋กœ ๋‹ค์‹œ ๋‚ด๋ณด๋‚ด๋Š”(output) ๋ฐฉ์‹์œผ๋กœ ์—…๋ฌด๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค. 

๋ฉ”๋ชจ๋ฆฌ ๋ฐ ์ž…์ถœ๋ ฅ์žฅ์น˜ ๋“ฑ์˜ ๊ฐ ํ•˜๋“œ์›จ์–ด ์žฅ์น˜ ๋งˆ๋‹ค ์กด์žฌํ•˜๋ฉด์„œ ์ด๋“ค์„ ์ œ์–ดํ•˜๋Š” ์ž‘์€ CPU, ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์žˆ๋‹ค.

 

2. CPU ์—ฐ์‚ฐ๊ณผ I/O ์—ฐ์‚ฐ

  • ์ž…์ถœ๋ ฅ ์ปจํŠธ๋กค๋Ÿฌ : ์ž…์ถœ๋ ฅ ์žฅ์น˜๋“ค์˜ I/O ์—ฐ์‚ฐ ๋‹ด๋‹น
  • ๋ฉ”์ธ CPU : ์ปดํ“จํ„ฐ ๋‚ด์—์„œ ์ˆ˜ํ–‰๋˜๋Š” ์—ฐ์‚ฐ ๋‹ด๋‹น
  • ์ž…์ถœ๋ ฅ ์žฅ์น˜์™€ ๋ฉ”์ธ CPU๋Š” ๋™์‹œ ์ˆ˜ํ–‰์ด ๊ฐ€๋Šฅํ•˜๋‹ค. 
  • ๋กœ์ปฌ๋ฒ„ํผ : ๋“ค์–ด์˜ค๊ณ  ๋‚˜๊ฐ€๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ž„์‹œ๋กœ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ž‘์€ ๋ฉ”๋ชจ๋ฆฌ
  • ์ธํ„ฐ๋ŸฝํŠธ : ์ปจํŠธ๋กค๋Ÿฌ๋“ค์ด CPU์˜ ์„œ๋น„์Šค๊ฐ€ ํ•„์š”ํ•  ๋•Œ ์ด๋ฅผ ํ†ต๋ณดํ•˜๋Š” ๋ฐฉ๋ฒ•
  • ์—ฐ์‚ฐ ๊ณผ์ • : 
    • CPU๋Š” ๋งค ์‹œ์  ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋ช…๋ น(instruction)์„ ํ•˜๋‚˜์”ฉ ์ฝ์–ด์™€์„œ ์ˆ˜ํ–‰ -> CPU ์˜†์—๋Š” ์ธํ„ฐ๋ŸฝํŠธ ๋ผ์ธ์ด ์žˆ์–ด์„œ CPU๊ฐ€ ์ž์‹ ์˜ ์ž‘์—…์„ ํ•˜๋˜ ์ค‘๊ฐ„์— ์ธํ„ฐ๋ŸฝํŠธ ๋ผ์ธ์— ์‹ ํ˜ธ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ํ•˜๋˜ ์ผ์„ ๋ฉˆ์ถ”๊ณ  ์ธํ„ฐ๋ŸฝํŠธ์™€ ๊ด€๋ จ๋œ ์ผ์„ ์ฒ˜๋ฆฌ 
    • ์ฆ‰, CPU๋Š” ๋ช…๋ น ํ•˜๋‚˜๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ๋งˆ๋‹ค ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. 

 

3. ์ธํ„ฐ๋ŸฝํŠธ์˜ ์ผ๋ฐ˜์  ๊ธฐ๋Šฅ

  • ํ•˜๋“œ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ : ์ปจํŠธ๋กค๋Ÿฌ ๋“ฑ ํ•˜๋“œ์›จ์–ด ์žฅ์น˜๊ฐ€ CPU์˜ ์ธํ„ฐ๋ŸฝํŠธ ๋ผ์ธ ์„ธํŒ…
  • ์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ(trap) : ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์ธํ„ฐ๋ŸฝํŠธ ๋ผ์ธ ์„ธํŒ…
    • ์˜ˆ) ์˜ˆ์™ธ์‚ฌํ•ญ(exception)๊ณผ ์‹œ์Šคํ…œ ์ฝœ(system call) -> ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค๋กœ๋ถ€ํ„ฐ CPU์˜ ์ œ์–ด๊ถŒ์ด ์šด์˜์ฒด์ œ์— ์ด์–‘๋˜์–ด ์ฒ˜๋ฆฌ๋œ๋‹ค. 
  • ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ(interrupt vector) : ์ธํ„ฐ๋ŸฝํŠธ ์ข…๋ฅ˜๋งˆ๋‹ค ๋ฒˆํ˜ธ๋ฅผ ์ •ํ•ด์„œ, ๋ฒˆํ˜ธ์— ๋”ฐ๋ผ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ์ฝ”๋“œ๊ฐ€ ์œ„์น˜ํ•œ ๋ถ€๋ถ„์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ž๋ฃŒ๊ตฌ์กฐ
  • ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ๋ฃจํ‹ด(interrupt service routine) ๋˜๋Š” ์ธํ„ฐ๋ŸฝํŠธ ํ•ธ๋“ค๋Ÿฌ (interrupt handler) : ์‹ค์ œ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ์ฝ”๋“œ๊ฐ€ ์ •์˜๋œ ๊ณณ

 

4. ์ธํ„ฐ๋ŸฝํŠธ ํ•ธ๋“ค๋ง

  • ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ์— ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ์ผ์˜ ์ ˆ์ฐจ๋ฅผ ๋งํ•œ๋‹ค.
  • ํ”„๋กœ์„ธ์Šค ์ œ์–ด๋ธ”๋ก(Process Control Block: PCB) : ์šด์˜์ฒด์ œ๊ฐ€ ํ˜„์žฌ ์‹œ์Šคํ…œ ๋‚ด์—์„œ ์‹คํ–‰๋˜๋Š” ํ”„๋กœ๊ทธ๋žจ๋“ค์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ
    • ๊ฐ๊ฐ์˜ ํ”„๋กœ๊ทธ๋žจ๋งˆ๋‹ค ํ•˜๋‚˜์”ฉ ์กด์žฌํ•˜๋ฉฐ ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์˜ ์–ด๋Š ๋ถ€๋ถ„์ด ์‹คํ–‰ ์ค‘์ด์—ˆ๋Š”์ง€๋ฅผ ์ €์žฅํ•˜๊ณ  ์žˆ๋‹ค. 
    • ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰ ์ค‘์ด๋˜ ์ฝ”๋“œ์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์™€ ๋ ˆ์ง€์Šคํ„ฐ๊ฐ’, ํ•˜๋“œ์›จ์–ด ์ƒํƒœ ๋“ฑ์ด ์ €์žฅ๋œ๋‹ค. 

 

5. ์ž…์ถœ๋ ฅ ๊ตฌ์กฐ

  • ๋™๊ธฐ์‹ ์ž…์ถœ๋ ฅ (synchronous I/O) 
    • ์–ด๋–ค ํ”„๋กœ๊ทธ๋žจ์ด ์ž…์ถœ๋ ฅ ์š”์ฒญ์„ ํ–ˆ์„ ๋•Œ ์ž…์ถœ๋ ฅ ์ž‘์—…์ด ์™„๋ฃŒ๋œ ํ›„์—์•ผ ๊ทธ ํ”„๋กœ๊ทธ๋žจ์ด ํ›„์† ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹
    • CPU์˜ ๋ช…๋ น ์ˆ˜ํ–‰ ์†๋„๋Š” ์ž…์ถœ๋ ฅ ์žฅ์น˜์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜ค๋Š” ๋“ฑ์˜ ์ž…์ถœ๋ ฅ ์—ฐ์‚ฐ์€ ์ƒ๋Œ€์ ์œผ๋กœ ๋Š๋ฆฌ๋‹ค. ๋™๊ธฐ์‹ ์ž…์ถœ๋ ฅ์—์„œ CPU๋Š” ์ž…์ถœ๋ ฅ ์—ฐ์‚ฐ์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋ฉฐ ์ž์›์„ ๋‚ญ๋น„ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ฐ˜์ ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์ด ์ž…์ถœ๋ ฅ์„ ์ˆ˜ํ–‰ ์ค‘์ธ ๊ฒฝ์šฐ CPU๋ฅผ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์—๊ฒŒ ์ด์–‘ํ•ด CPU๊ฐ€ ๊ณ„์† ์‰ฌ์ง€ ์•Š๊ณ  ์ผํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ด€๋ฆฌํ•œ๋‹ค. 
    • ์šด์˜์ฒด์ œ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋ช‡ ๊ฐ€์ง€ ์ƒํƒœ๋กœ ๋‚˜๋ˆ„๊ณ  ์ž…์ถœ๋ ฅ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ฒฝ์šฐ ๋ด‰์‡„ ์ƒํƒœ(blocked state)๋กœ ์ „ํ™˜์‹œํ‚จ๋‹ค. ๋ด‰์‡„ ์ƒํƒœ์˜ ํ”„๋กœ๊ทธ๋žจ์€ ์ž…์ถœ๋ ฅ์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ CPU๋ฅผ ํ• ๋‹นํ•˜๋”๋ผ๋„ ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•˜์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— CPU๋ฅผ ํ• ๋‹นํ•˜์ง€ ์•Š๋Š”๋‹ค.
    • ์ž…์ถœ๋ ฅ ์š”์ฒญ์˜ ๋™๊ธฐํ™”๋ฅผ ์œ„ํ•ด ์žฅ์น˜๋ณ„๋กœ ํ(queue)๋ฅผ ๋‘์–ด ์š”์ฒญํ•œ ์ˆœ์„œ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. 
  • ๋น„๋™๊ธฐ์‹ ์ž…์ถœ๋ ฅ (asynchronous I/O)
    • ์ž…์ถœ๋ ฅ ์—ฐ์‚ฐ์„ ์š”์ฒญํ•œ ํ›„์— ์—ฐ์‚ฐ์ด ๋๋‚˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ CPU์˜ ์ œ์–ด๊ถŒ์„ ์ž…์ถœ๋ ฅ ์—ฐ์‚ฐ์„ ํ˜ธ์ถœํ•œ ๊ทธ ํ”„๋กœ๊ทธ๋žจ์—๊ฒŒ ๊ณง๋ฐ”๋กœ ๋‹ค์‹œ ๋ถ€์—ฌํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

 

6. DMA (Direct Memory Access)

  • ์ผ์ข…์˜ ์ปจํŠธ๋กค๋Ÿฌ๋กœ์„œ, CPU๊ฐ€ ์ž…์ถœ๋ ฅ ์žฅ์น˜๋“ค์˜ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ์š”์ฒญ์— ์˜ํ•ด ์ž์ฃผ ์ธํ„ฐ๋ŸฝํŠธ ๋‹นํ•˜๋Š” ๊ฒƒ์„ ๋ง‰์•„์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. 
  • ๋กœ์ปฌ๋ฒ„ํผ์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋กœ ์ฝ์–ด์˜ค๋Š” ์ž‘์—…์„ CPU ๋Œ€์‹  ์ˆ˜ํ–‰ํ•œ๋‹ค. -> CPU๋Š” ์›๋ž˜ ํ•˜๋˜ ์ž‘์—…์„ ๋ฉˆ์ถ”๊ณ  ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•  ํ•„์š”๊ฐ€ ์—†์–ด์ง„๋‹ค. 
  • ๋ฐ”์ดํŠธ(byte) ๋‹จ์œ„๊ฐ€ ์•„๋‹Œ ๋ธ”๋ก(block)์ด๋ผ๋Š” ํฐ ๋‹จ์œ„๋กœ ์ •๋ณด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ๋กœ ์ฝ์–ด์˜จ ํ›„์— CPU์—๊ฒŒ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ์„œ ํ•ด๋‹น ์ž‘์—…์˜ ์™„๋ฃŒ๋ฅผ ์•Œ๋ ค์ค€๋‹ค. 

 

7. ์ €์žฅ์žฅ์น˜์˜ ๊ตฌ์กฐ

  • ์ฃผ๊ธฐ์–ต์žฅ์น˜
    • ํœ˜๋ฐœ์„ฑ(volatile)์ด๋‹ค. -> ๋ณดํ†ต ๋ฉ”๋ชจ๋ฆฌ๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ ์ „์›์ด ๋‚˜๊ฐ€๋ฉด ์ €์žฅ๋˜์—ˆ๋˜ ๋‚ด์šฉ์ด ๋ชจ๋‘ ์‚ฌ๋ผ์ง€๋Š” RAM์„ ๋งค์ฒด๋กœ ์‚ฌ์šฉํ•œ๋‹ค. 
  • ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜
    • ๋น„ํœ˜๋ฐœ์„ฑ(nonvolatile)์ด๋‹ค. -> ์ „์›์ด ๋‚˜๊ฐ€๋„ ์ €์žฅ๋œ ๋‚ด์šฉ์„ ๊ธฐ์–ตํ•  ์ˆ˜ ์žˆ๋Š” ๋งˆ๊ทธ๋„คํ‹ฑ ๋””์Šคํฌ๋ฅผ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. 
    • ์šฉ๋„๋Š” 1. ํŒŒ์ผ ์‹œ์Šคํ…œ์šฉ, 2. ์Šค์™‘์˜์—ญ์šฉ์œผ๋กœ ๋‚˜๋‰œ๋‹ค. 
    • ํŒŒ์ผ ์‹œ์Šคํ…œ์šฉ : ์ „์›์ด ๋‚˜๊ฐ€๋„ ์œ ์ง€ํ•ด์•ผ ๋˜๋Š” ์ •๋ณด๋Š” ํŒŒ์ผ ํ˜•ํƒœ๋กœ ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜์— ์ €์žฅ. 
    • ์Šค์™‘ ์˜์—ญ(swap area) : ๋ฉ”๋ชจ๋ฆฌ์˜ ์—ฐ์žฅ ๊ณต๊ฐ„์ธ ์Šค์™‘ ์˜์—ญ์œผ๋กœ ์‚ฌ์šฉ.
      • ๋ฉ”๋ชจ๋ฆฌ๋Š” ํฌ๊ธฐ๊ฐ€ ํ•œ์ •๋˜์–ด ์žˆ๊ณ  ๋น„์‹ธ๊ณ  ์šฉ๋Ÿ‰์ด ์ ๋‹ค. ๋‹ค์ˆ˜์˜ ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€ ๋™์‹œ์— ์ˆ˜ํ–‰๋˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ๋ถ€์กฑํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์€๋ฐ, ์ด๋•Œ ์šด์˜์ฒด์ œ๋Š” ํ”„๋กœ๊ทธ๋žจ ์ˆ˜ํ–‰์— ๋‹น์žฅ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ ค๋†“๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์€ ๋ถ€๋ถ„์€ ๋””์Šคํฌ์˜ ์Šค์™‘ ์˜์—ญ์— ๋‚ด๋ ค๋†“๋Š”๋‹ค(swap out).

 

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

  • ์บ์‹ฑ๊ธฐ๋ฒ• : ์ƒ๋Œ€์ ์œผ๋กœ ์šฉ๋žต์ด ์ ์€ ๋น ๋ฅธ ์ €์žฅ์žฅ์น˜๋ฅผ ์ด์šฉํ•ด ๋Š๋ฆฐ ์ €์žฅ์žฅ์น˜์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ์ด์ฒด์  ๊ธฐ๋ฒ•

 

9. ํ•˜๋“œ์›จ์–ด์˜ ๋ณด์•ˆ

  • ์šด์˜์ฒด์ œ๋Š” ์ปค๋„๋ชจ๋“œ์™€ ์‚ฌ์šฉ์ž๋ชจ๋“œ๋ฅผ ์ง€์›ํ•œ๋‹ค. 
  • CPU๋Š” ๋ณด์•ˆ๊ณผ ๊ด€๋ จ๋œ ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์ „์— ํ•ญ์ƒ ๋ชจ๋“œ๋น„ํŠธ๋ฅผ ์กฐ์‚ฌํ•ด ๊ทธ ๊ฐ’์ด 0์ผ ๊ฒฝ์šฐ์—๋งŒ ์ˆ˜ํ–‰ํ•œ๋‹ค. 
  • ์ปค๋„๋ชจ๋“œ(kerner mode)
    • ์šด์˜์ฒด์ œ๊ฐ€ CPU์˜ ์ œ์–ด๊ถŒ์„ ๊ฐ€์ง€๊ณ  ์šด์˜์ฒด๊ฒŒ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ชจ๋“œ
    • ๋ชจ๋“  ์ข…๋ฅ˜์˜ ๋ช…๋ น์„ ๋‹ค ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์–ด์„œ ์ค‘์š”ํ•œ ์ •๋ณด์— ์ ‘๊ทผํ•ด ์œ„ํ—˜ํ•œ ์ƒํ™ฉ์„ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ๋Š” ์—ฐ์‚ฐ์€ ์ปค๋„๋ชจ๋“œ์—์„œ ์‹คํ–‰๋œ๋‹ค. 
    • ์ž…์ถœ๋ ฅ์€ ํŠน๊ถŒ๋ช…๋ น์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“œ๋น„ํŠธ๊ฐ€ 0์ผ ๋•Œ๋งŒ ์ˆ˜ํ–‰๊ฐ€๋Šฅํ•˜๋‹ค. 
    • mode bit 0
  • ์‚ฌ์šฉ์ž๋ชจ๋“œ(user mode)
    • ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋ฉฐ ์ œํ•œ์ ์ธ ๋ช…๋ น๋งŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. 
    • mode bit 1
    • ํ•˜๋“œ์›จ์–ด ์ ‘๊ทผ ๋“ฑ ๋ณด์•ˆ์ด ํ•„์š”ํ•œ ๋ช…๋ น(ํŠน๊ถŒ๋ช…๋ น)์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•  ๊ฒฝ์šฐ ์‹œ์Šคํ…œ ์ฝœ์„ ํ†ตํ•ด ์šด์˜์ฒด์ œ๊ฐ€ ๋Œ€์‹ ํ•ด ์ค„ ๊ฒƒ์„ ์š”์ฒญํ•œ๋‹ค. 

 

10. ๋ฉ”๋ชจ๋ฆฌ ๋ณด์•ˆ

  • ์ธํ„ฐ๋ŸฝํŠธ ๋ฐฑํ„ฐ์™€ ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ๋ฃจํ‹ด์ด ์žˆ๋Š” ๊ณณ์€ ๋ณด์•ˆ์ด ์ค‘์š”ํ•˜๋‹ค. 
  • ํ•ด๊ฒฐ๋ฐฉ๋ฒ• : 2๊ฐœ์˜ ๋ ˆ์ง€์Šคํ„ฐ, ๊ธฐ์ค€ ๋ ˆ์ง€์Šคํ„ฐ(base register)์™€ ํ•œ๊ณ„ ๋ ˆ์ง€์Šคํ„ฐ(limit register)๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ”„๋กœ๊ทธ๋žจ์ด ์ ‘๊ทผํ•˜๋ ค๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋ถ€๋ถ„์ด ํ•ฉ๋ฒ•์ ์ธ์ง€ ์ฒดํฌํ•จ์œผ๋กœ์จ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ณดํ˜ธํ•œ๋‹ค. 

 

11. CPU ๋ณดํ˜ธ

  • CPU๊ฐ€ ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ์— ์˜ํ•ด ๋…์ ๋˜๋Š” ๊ฒƒ์„ ๋ง‰๊ธฐ ์œ„ํ•ด ์šด์˜์ฒด์ œ๋Š” ํƒ€์ด๋จธ๋ผ๋Š” ํ•˜๋“œ์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. 
  • ํƒ€์ด๋จธ(timer)๋Š” ์ •ํ•ด์ง„ ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ ์šด์˜์ฒด์ œ๊ฐ€ CPU์˜ ์ œ์–ด๊ถŒ์„ ํš๋“ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. 
  • ๋กœ๋“œ ํƒ€์ด๋จธ(load timer) : ํƒ€์ด๋จธ์˜ ๊ฐ’์„ ์„ธํŒ…ํ•˜๋Š” ๋ช…๋ น. ํŠน๊ถŒ๋ช…๋ น์— ์†ํ•œ๋‹ค. 

 

12. ์‹œ์Šคํ…œ ์ฝœ์„ ์ด์šฉํ•œ ์ž…์ถœ๋ ฅ ์ˆ˜ํ–‰

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

 

์ฐธ๊ณ ์ž๋ฃŒ

https://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/13_IOSystems.html

https://techdifferences.com/difference-between-cache-memory-and-main-memory.html

๋Œ“๊ธ€