๐Ÿ“‚์ปดํ“จํ„ฐ๊ณผํ•™:CS

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

mc.thd 2023. 6. 20. 17:21

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

image

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

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

  • ์ž…์ถœ๋ ฅ ์žฅ์น˜๋“ค์˜ I/O์—ฐ์‚ฐ : ์ž…์ถœ๋ ฅ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ๋‹ด๋‹น
  • ์ปดํ“จํ„ฐ ๋‚ด์—์„œ ์ˆ˜ํ–‰๋˜๋Š” ์—ฐ์‚ฐ : ๋ฉ”์ธ CPU๊ฐ€ ๋‹ด๋‹น

๐Ÿ‘‰ ์ž…์ถœ๋ ฅ ์žฅ์น˜์™€ ๋ฉ”์ธ CPU๋Š” ๋™์‹œ์— ์ˆ˜ํ–‰์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

  • ๋กœ์ปฌ๋ฒ„ํผ : ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์žฅ์น˜๋กœ๋ถ€ํ„ฐ ๋“ค์–ด์˜ค๊ณ  ๋‚˜๊ฐ€๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ž„์‹œ๋กœ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ž‘์€ ๋ฉ”๋ชจ๋ฆฌ
  • ์ธํ„ฐ๋ŸฝํŠธ : ์ปจํŠธ๋กค๋Ÿฌ๋“ค์ด CPU์˜ ์„œ๋น„์Šค๊ฐ€ ํ•„์š”ํ•  ๋•Œ ์ด๋ฅผ ํ†ต๋ณดํ•˜๋Š” ๋ฐฉ๋ฒ•

๐Ÿ‘‰ ๋กœ์ปฌ๋ฒ„ํผ๋กœ ์ฝ์–ด์˜ค๋Š” ์ž‘์—…์ด ๋๋‚˜๋ฉด ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ CPU์—๊ฒŒ ๋ณด๊ณ ํ•˜๊ฒŒ ๋œ๋‹ค.

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

์šด์˜์ฒด์ œ ์ปค๋„์—๋Š” ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋“ค์–ด์™”์„ ๋•Œ ํ•ด์•ผ ํ•  ์ผ์ด ๋ฏธ๋ฆฌ ๋‹ค ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋˜์–ด ๊ทธ ์ฝ”๋“œ๊ฐ€ ๋ณด๊ด€๋ผ ์žˆ๋‹ค.

  • ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ : ํ•ด๋‹น ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ ๋ฃจํ‹ด์˜ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ
  • ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ ๋ฃจํ‹ด(=์ธํ„ฐ๋ŸฝํŠธ ํ•ธ๋“ค๋Ÿฌ) : ๋‹ค์–‘ํ•œ ์ธํ„ฐ๋ŸฝํŠธ์— ๋Œ€ํ•ด ๊ฐ๊ฐ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ์—…๋ฌด๋“ค์„ ์ •์˜ํ•˜๊ณ  ์žˆ๋Š” ์ปค๋„ํ•จ์ˆ˜
  • ํ•˜๋“œ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ : ์ผ๋ฐ˜์ ์œผ๋กœ ๋งํ•˜๋Š” ์ธํ„ฐ๋ŸฝํŠธ, ํ•˜๋“œ์›จ์–ด๊ฐ€ ๋ฐœ์ƒ์‹œํ‚จ ์ธํ„ฐ๋ŸฝํŠธ
  • ์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ(ํŠธ๋žฉ,Trap)
    • Exception : ํ”„๋กœ๊ทธ๋žจ์ด ์˜ค๋ฅ˜๋ฅผ ๋ฒ”ํ•œ ๊ฒฝ์šฐ
    • System call : ํ”„๋กœ๊ทธ๋žจ์ด ์ปค๋„ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒฝ์šฐ

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

์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ์— ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ์ผ์˜ ์ ˆ์ฐจ๋ฅผ ์˜๋ฏธ

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

PCB๊ฐ€ ํ•„์š”ํ•œ ์ด์œ  : ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•ด ์ƒˆ๋กœ์šด ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด ๊ธฐ์กด ๋ ˆ์ง€์Šคํ„ฐ๊ฐ’๋“ค์ด ์ง€์›Œ์ง€๊ฒŒ ๋˜๋ฏ€๋กœ ์ด๋“ค์„ ๊ธฐ์–ตํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ

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

๋™๊ธฐ์‹ ์ž…์ถœ๋ ฅ๊ณผ ๋น„๋™๊ธฐ์‹ ์ž…์ถœ๋ ฅ (๋‘ ๊ฒฝ์šฐ ๋ชจ๋‘ I/O์˜ ์™„๋ฃŒ๋Š” ์ธํ„ฐ๋ŸฝํŠธ๋กœ ์•Œ๋ ค์คŒ)

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

6. DMA(Direct Memory Access)

โ— ์›์น™์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋Š” CPU์— ์˜ํ•ด์„œ๋งŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

โ— ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด์„  ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ์•ผ ํ•˜๋Š”๋ฐ, ๋ชจ๋“  ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ์—ฐ์‚ฐ์ด ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ํ†ตํ•ด CPU๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค๋ฉด CPU์˜ ์‚ฌ์šฉ ํšจ์œจ์„ฑ์ด ๋–จ์–ด์ง€๋Š” ๋ฌธ์ œ์ ์ด ๋ฐœ์ƒํ•œ๋‹ค.

โœ… ์ด๋Ÿฌํ•œ ๋น„ํšจ์œจ์„ฑ์„ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด CPU์™ธ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•œ ์žฅ์น˜๋ฅผ ํ•˜๋‚˜ ๋” ๋‘๋Š”๋ฐ ๋ฐ”๋กœ ๊ทธ๊ฒƒ์ด DMA์ด๋‹ค.

โœ… CPU์˜ ์ค‘์žฌ ์—†์ด device controller๊ฐ€ device ์˜ buffer storage์˜ ๋‚ด์šฉ์„ ๋ฉ”๋ชจ๋ฆฌ์— block๋‹จ์œ„๋กœ ์ง์ ‘ ์ „์†กํ•œ๋‹ค.

DMA๋Š” ๋ฐ”์ดํŠธ(byte)๋‹จ์œ„๊ฐ€ ์•„๋‹Œ ๋ธ”๋ก(block)์ด๋ผ๋Š” ํฐ ๋‹จ์œ„๋กœ ์ •๋ณด๋ฅผ ์ „์†กํ•œ๋‹ค.

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

  • ์ฃผ๊ธฐ์–ต์žฅ์น˜ : ๋ฉ”๋ชจ๋ฆฌ, ํœ˜๋ฐœ์„ฑ, RAM
  • ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜ : ๋น„ํœ˜๋ฐœ์„ฑ
    • ํŒŒ์ผ์‹œ์Šคํ…œ์šฉ : ์ „์›์ด ๋‚˜๊ฐ€๋„ ์œ ์ง€ํ•ด์•ผ ํ•  ์ •๋ณด๋ฅผ ํŒŒ์ผ ํ˜•ํƒœ๋กœ ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜์— ์ €์žฅ
    • ์Šค์™‘ ์˜์—ญ(swap area)์šฉ : ๋ฉ”๋ชจ๋ฆฌ ์šฉ๋Ÿ‰์˜ ํ•œ๊ณ„๋กœ ๋ฉ”๋ชจ๋ฆฌ ์—ฐ์žฅ๊ณต๊ฐ„์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ (ํ•˜๋“œ๋””์Šคํฌ๊ฐ€ ๋Œ€ํ‘œ์ ์œผ๋กœ ์‚ฌ์šฉ๋จ)

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

image

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

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

Mode bit

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

  • 1 ์‚ฌ์šฉ์ž ๋ชจ๋“œ : ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ ์ˆ˜ํ–‰
  • 0 ์ปค๋„ ๋ชจ๋“œ(=๋ชจ๋‹ˆํ„ฐ๋ชจ๋“œ, ์‹œ์Šคํ…œ๋ชจ๋“œ) : os์ฝ”๋“œ ์ˆ˜ํ–‰

๋ชจ๋“  ์ž…์ถœ๋ ฅ ๋ช…๋ น์€ ํŠน๊ถŒ๋ช…๋ น์œผ๋กœ ๊ทœ์ •ํ•ด์„œ ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์ด ์ง์ ‘ ์ž…์ถœ๋ ฅ์„ ํ•˜๋Š” ๊ฒƒ์„ ์ฐจ๋‹จํ•œ๋‹ค

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

ํ•˜๋‚˜์˜ ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ์ฐธ์กฐ ์—ฐ์‚ฐ์„ ์ž˜๋ชป ์‚ฌ์šฉํ•ด ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์˜ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์ด๋‚˜ ์šด์˜์ฒด์ œ ์ปค๋„์ด ์œ„์น˜ํ•œ ์˜์–ต์„ ์ฐธ์กฐํ•˜๋ ค๋Š” ์‹œ๋„๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ƒํ™ฉ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด 2๊ฐœ์˜ ๋ ˆ์ง€์Šคํ„ฐ(๊ธฐ์ค€๋ ˆ์ง€์Šคํ„ฐ, ํ•œ๊ณ„๋ ˆ์ง€์Šคํ„ฐ)๋ฅผ ์ด์šฉํ•œ๋‹ค.

์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์€ ๊ธฐ์ค€ ๋ ˆ์ง€์Šคํ„ฐ ~ ๊ธฐ์ค€ ๋ ˆ์ง€์Šคํ„ฐ + ํ•œ๊ณ„ ๋ ˆ์ง€์Šคํ„ฐ ๊ฐ’ ์‚ฌ์ด์˜ ์ฃผ์†Œ ์˜์—ญ์—๋งŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

โ›” ์ ‘๊ทผํ•˜๋ ค๋Š” ์ฃผ์†Œ๊ฐ€ ์œ„ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜๋ฉด ์˜ˆ์™ธ์ƒํ™ฉ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค.

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

11. cpu ๋ณดํ˜ธ

ํƒ€์ด๋จธ(timer) : cpu๊ฐ€ ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ์— ์˜ํ•ด ๋…์ ๋˜๋Š” ๊ฒƒ์„ ๋ง‰๊ธฐ ์œ„ํ•ด ์šด์˜์ฒด์ œ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ํ•˜๋“œ์›จ์–ด

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