CS/OS

์šด์˜์ฒด์ œ์™€ ์ปดํ“จํ„ฐ

leeh96 2023. 1. 3. 22:11

[OS] SECTION 3.1 ์šด์˜์ฒด์ œ์™€ ์ปดํ“จํ„ฐ

OS๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ปดํ“จํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ๋‹ค๋ฃจ๊ฒŒ ํ•ด์ฃผ๋Š” ์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค.

OS๋Š” ํ•œ์ •๋œ ๋ฉ”๋ชจ๋ฆฌ๋‚˜ ์‹œ์Šคํ…œ ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ๋ถ„๋ฐฐํ•œ๋‹ค.

์šด์˜์ฒด์ œ  ํŽŒ์›จ์–ด (ํ•˜๋“œ์›จ์–ด์˜ ์ œ์–ด์™€ ๊ตฌ๋™์„ ๋‹ด๋‹นํ•˜๋Š” OS)

3.1 ์šด์˜์ฒด์ œ์™€ ์ปดํ“จํ„ฐ

3.1.1 ์šด์˜์ฒด์ œ์˜ ์—ญํ• ๊ณผ ๊ตฌ์กฐ

์šด์˜์ฒด์ œ์˜ ์—ญํ• 

  1. CPU ์Šค์ผ€์ค„๋ง๊ณผ ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ
  2. ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ
  3. ๋””์Šคํฌ ํŒŒ์ผ ๊ด€๋ฆฌ
  4. I/O ๋””๋ฐ”์ด์Šค ๊ด€๋ฆฌ

์‹œ์Šคํ…œ ์ž์› ๊ด€๋ฆฌ, ์‚ฌ์šฉ์ž์™€ ์ปดํ“จํ„ฐ๊ฐ„์˜ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ์ง€์›,

์šด์˜์ฒด์ œ์˜ ๊ตฌ์กฐ

GUI : ์‚ฌ์šฉ์ž๊ฐ€ ์ „์ž์žฅ์น˜์™€ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” 
์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์˜ ํ•œ ํ˜•ํƒœ
๋ฆฌ๋ˆ…์Šค ์„œ๋ฒ„ : GUI๊ฐ€ ์—†๊ณ  CUI๋งŒ ์žˆ์Œ
* CUI : ๊ทธ๋ž˜ํ”ฝ์ด ์•„๋‹Œ ๋ช…๋ น์–ด๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค

CUI๋Š” ์†๋„๊ฐ€ ๋น ๋ฅด๊ณ  ๋ฆฌ์†Œ์Šค๋ฅผ ์ ๊ฒŒ ์‚ฌ์šฉํ•œ๋‹ค. ํ•˜์ง€๋งŒ ํŽธ์˜์„ฑ์ด ๋–จ์–ด์ง„๋‹ค.

๋Œ€๋ถ€๋ถ„์˜ ์„œ๋ฒ„ ์ปดํ“จํ„ฐ๋Š” CUI ๊ธฐ๋ฐ˜์œผ๋กœ ์šด์˜๋œ๋‹ค.

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

  • ์šด์˜์ฒด์ œ๊ฐ€ ์ปค๋„์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค.
  • ์šด์˜์ฒด์ œ์˜ ์„œ๋น„์Šค๋ฅผ ๋ฐ›๊ธฐ ์œ„ํ•ด ์ปค๋„ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
  • ํ”„๋กœ์„ธ์Šค๋‚˜ ์Šค๋ ˆ๋“œ์—์„œ ์šด์˜์ฒด์ œ๋กœ ์š”์ฒญ์„ ํ•  ๋•Œ ์‹œ์Šคํ…œ์ฝœ์„ ๊ฑฐ์ณ ์ „๋‹ฌ๋œ๋‹ค.

์ฐธ๊ณ  : https://fjvbn2003.tistory.com/306

modebit

  • 1๋˜๋Š” 0์˜ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ํ”Œ๋ž˜๊ทธ ๋ณ€์ˆ˜
  • modebit์„ ์ฐธ๊ณ ํ•ด์„œ ์œ ์ € ๋ชจ๋“œ์™€ ์ปค๋„ ๋ชจ๋“œ๋ฅผ ๊ตฌ๋ถ„ํ•œ๋‹ค.
  • I/O ๋””๋ฐ”์ด์Šค์˜ ๋ณด์•ˆ์„ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค.
  • 0์€ ์ปค๋„ ๋ชจ๋“œ , 1์€ ์œ ์ € ๋ชจ๋“œ

3.1.2 ์ปดํ“จํ„ฐ์˜ ์š”์†Œ

CPU(Central Processing Unit)

  • ์‚ฐ์ˆ ๋…ผ๋ฆฌ์—ฐ์‚ฐ์žฅ์น˜, ์ œ์–ด์žฅ์น˜, ๋ ˆ์ง€์Šคํ„ฐ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š” ์ปดํ“จํ„ฐ ์žฅ์น˜
  • ์ธํ„ฐ๋ŸฝํŠธ์— ์˜ํ•ด ๋‹จ์ˆœํžˆ ๋ฉ”๋ชจ๋ฆฌ์— ์กด์žฌํ•˜๋Š” ๋ช…๋ น์–ด๋ฅผ ํ•ด์„ํ•ด์„œ ์‹คํ–‰ํ•˜๋Š” ์ผ๊พผ

์ปค๋„์ด ํ”„๋กœ๊ทธ๋žจ์„ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ ค ํ”„๋กœ์„ธ์Šค๋กœ ๋งŒ๋“ค๋ฉด CPU๊ฐ€ ์ฒ˜๋ฆฌํ•œ๋‹ค.

์ œ์–ด์žฅ์น˜(Control Unit)

  • ํ”„๋กœ์„ธ์Šค ์กฐ์ž‘์„ ์ง€์‹œํ•˜๋Š” CPU์˜ ํ•œ ๋ถ€ํ’ˆ
  • ์ž…/์ถœ๋ ฅ์žฅ์น˜ ๊ฐ„ ํ†ต์‹ ์„ ์ œ์–ดํ•˜๊ณ  ๋ช…๋ น์–ด๋“ค์„ ์ฝ๊ณ  ํ•ด์„ํ•˜๋ฉฐ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ์ˆœ์„œ๋ฅผ ๊ฒฐ์ •

๋ ˆ์ง€์Šคํ„ฐ(Register)

  • CPU ์•ˆ์— ์žˆ๋Š” ๋งค์šฐ ๋น ๋ฅธ ์ž„์‹œ๊ธฐ์–ต์žฅ์น˜
  • ์—ฐ์‚ฐ ์†๋„๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ณด๋‹ค ์ˆ˜์‹ญ ๋ฐฐ์—์„œ ์ˆ˜๋ฐฑ ๋ฐฐ๊นŒ์ง€ ๋น ๋ฅด๋‹ค.
  • CPU๋Š” ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๊ฑฐ์ณ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•œ๋‹ค.

์‚ฐ์ˆ ๋…ผ๋ฆฌ์—ฐ์‚ฐ์žฅ์น˜(Arithmetic Logic Unit)

  • ์‚ฐ์ˆ  ์—ฐ์‚ฐ๊ณผ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์„ ๊ณ„์‚ฐํ•˜๋Š” ๋””์ง€ํ„ธ ํšŒ๋กœ
### CPU์˜ ์—ฐ์‚ฐ ์ฒ˜๋ฆฌ

1. ์ œ์–ด์žฅ์น˜๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์™€ ๋ ˆ์ง€์Šคํ„ฐ์— ๊ณ„์‚ฐํ•  ๊ฐ’์„ ๋กœ๋“œํ•œ๋‹ค.
2. ์ œ์–ด์žฅ์น˜๊ฐ€ ๋ ˆ์ง€์Šคํ„ฐ์— ์žˆ๋Š” ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๋ผ๊ณ  ์‚ฐ์ˆ ๋…ผ๋ฆฌ์—ฐ์‚ฐ์žฅ์น˜์— ๋ช…๋ นํ•œ๋‹ค.
3. ์ œ์–ด์žฅ์น˜๊ฐ€ ๊ณ„์‚ฐ๋œ ๊ฐ’์„ ๋ ˆ์ง€์Šคํ„ฐ์— ์ „๋‹ฌํ•œ๋‹ค.

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

  • ์–ด๋–ค ์‹ ํ˜ธ๊ฐ€ ๋“ค์–ด์™”์„ ๋•Œ CPU๋ฅผ ์ž ๊น ์ •์ง€์‹œํ‚ค๋Š” ๊ฒƒ
  • IO ๋””๋ฐ”์ด์Šค๋กœ ์ธํ•œ ์ธํ„ฐ๋ŸฝํŠธ, ์‚ฐ์ˆ  ์—ฐ์‚ฐ์—์„œ์˜ ์ธํ„ฐ๋ŸฝํŠธ, ํ”„๋กœ์„ธ์Šค ์˜ค๋ฅ˜ ๋“ฑ์ด ์žˆ๋‹ค.
์ธํ„ฐ๋ŸฝํŠธ ๋ฐœ์ƒ ์‹œ
1. ์ธํ„ฐ๋ŸฝํŠธ ํ•ธ๋“ค๋Ÿฌ ํ•จ์ˆ˜๊ฐ€ ๋ชจ์—ฌ ์žˆ๋Š” ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ๋กœ ๊ฐ„๋‹ค
2. ์ธํ„ฐ๋ŸฝํŠธ ํ•ธ๋“ค๋Ÿฌ ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋œ๋‹ค.

* ์ธํ„ฐ๋ŸฝํŠธ ํ•ธ๋“ค๋Ÿฌ ํ•จ์ˆ˜ : ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์ด๋ฅผ ํ•ธ๋“ค๋งํ•˜๊ธฐ ์œ„ํ•œ ํ•จ์ˆ˜.
์ปค๋„ ๋‚ด๋ถ€์˜ IRQ๋ฅผ ํ†ตํ•ด ํ˜ธ์ถœ๋˜๋ฉฐ request_irq()๋ฅผ ํ†ตํ•ด ์ธํ„ฐ๋ŸฝํŠธ ํ•ธ๋“ค๋Ÿฌ ํ•จ์ˆ˜๋ฅผ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํ•˜๋“œ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ
    • IO ๋””๋ฐ”์ด์Šค์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๋งํ•œ๋‹ค.
    • ์ˆœ์ฐจ์ ์œผ๋กœ ์ธํ„ฐ๋ŸฝํŠธ ์‹คํ–‰์„ ์ค‘์ง€ํ•˜๊ณ  ์šด์˜์ฒด์ œ์— ์‹œ์Šคํ…œ์ฝœ์„ ์š”์ฒญํ•œ๋‹ค.
    • ์ดํ›„ ๋””๋ฐ”์ด์Šค์— ์žˆ๋Š” ์ž‘์€ ๋กœ์ปฌ ๋ฒ„ํผ์— ์ ‘๊ทผํ•˜์—ฌ ์ผ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
  • ์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ
    • ํŠธ๋žฉ(trap)์ด๋ผ๊ณ ๋„ ํ•œ๋‹ค.
    • ํ”„๋กœ์„ธ์Šค ์˜ค๋ฅ˜ ๋“ฑ์œผ๋กœ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹œ์Šคํ…œ์ฝœ์„ ํ˜ธ์ถœํ•  ๋•Œ ๋ฐœ๋™ํ•œ๋‹ค.

DMA์ปจํŠธ๋กค๋Ÿฌ(Direct Memory Access)

  • I/O ๋””๋ฐ”์ด์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ํ•˜๋“œ์›จ์–ด ์žฅ์น˜
  • CPU์˜ ๋ถ€ํ•˜๋ฅผ ๋ง‰์•„์ค€๋‹ค
  • ํ•˜๋‚˜์˜ ์ž‘์—…์„ CPU์™€ DMA ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ๋™์‹œ์— ํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•œ๋‹ค.

DMA์ปจํŠธ๋กค๋Ÿฌ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋ฉ”๋ชจ๋ฆฌ ์ฝ๊ธฐ ๋˜๋Š” ์“ฐ๊ธฐ ์‚ฌ์ดํด์„ ์ดˆ๊ธฐํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค

๋ฉ”๋ชจ๋ฆฌ(Memory)

  • ์ „์žํšŒ๋กœ์—์„œ ๋ฐ์ดํ„ฐ๋‚˜ ์ƒํƒœ, ๋ช…๋ น์–ด ๋“ฑ์„ ๊ธฐ๋กํ•˜๋Š” ์žฅ์น˜
  • RAM์„ ๋ฉ”๋ชจ๋ฆฌ๋ผ๊ณ ๋„ ํ•œ๋‹ค.
  • ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํด์ˆ˜๋ก ๋งŽ์€ ์ผ์„ ๋™์‹œ์— ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํƒ€์ด๋จธ(Timer)

  • ํŠน์ • ํ”„๋กœ๊ทธ๋žจ์— ์‹œ๊ฐ„ ์ œํ•œ์„ ๋‹ค๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

๋””๋ฐ”์ด์Šค ์ปจํŠธ๋กค๋Ÿฌ(Device Controller)

  • ์ปดํ“จํ„ฐ์™€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” I/O ๋””๋ฐ”์ด์Šค๋“ค์˜ ์ž‘์€ CPU๋ฅผ ๋งํ•œ๋‹ค.