[OS] ๐Ÿ–ฅ OS๋ž€ ๋ฌด์—‡์ธ๊ฐ€? ์šด์˜์ฒด์ œ ํ•œ๋ฒˆ์— ํ›‘์–ด๋ณด๊ธฐ

sujinยท2023๋…„ 4์›” 20์ผ
1

OS

๋ชฉ๋ก ๋ณด๊ธฐ
1/3
post-thumbnail

Introduction about OS

์šด์˜์ฒด์ œ์— ๋Œ€ํ•œ ์ „๋ฐ˜์ ์ธ ์†Œ๊ฐœ๋ฅผ ์ง„ํ–‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
๋™์‹œ์—, ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์˜ ๊ตฌ์กฐ์— ๋Œ€ํ•ด์„œ ๋งํ•˜๋ฉฐ ์šด์˜์ฒด์ œ๊ฐ€ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์—์„œ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•œ ๊ธฐ๋ณธ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋„๋ก ํ•ฉ์‹œ๋‹ค~

๊ทธ๋ ‡๋‹ค๋ฉด ๊ฐ€์žฅ ๋จผ์ € OS๊ฐ€ ๋ฌด์—‡์ธ์ง€, ์–ด๋–ค์ผ์„ ํ•˜๋Š”์ง€ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž!

What Operating System Do

OS๋ž€ ? ์‚ฌ์šฉ์ž๊ฐ€ Computer hardware๋ฅผ ์ž˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด์ฃผ๋Š” interface์ด๋‹ค.

์šด์˜์ฒด์ œ์˜ ์ •์˜

์šด์˜์ฒด์ œ๊ฐ€ ๋ฌด์—‡์ธ์ง€๋Š” ์šด์˜์ฒด์ œ์˜ ์—ญํ• ์„ ์ดํ•ดํ•˜๋ฉด ์•Œ ์ˆ˜ ์žˆ๋‹ค.
ํฌ๊ฒŒ ๋‘๊ฐ€์ง€ ์—ญํ• ๋กœ ๊ตฌ๋ถ„์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

  • ์ž์›ํ• ๋‹น์ž (Resource Allocator)
    ๋ชจ๋“  ์ž์›์„ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.
    ๋ชจ๋“  ๋””๋ฐ”์ด์Šค๋“ค์ด ๊ณตํ‰ํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋„๋ก ํ•ด์ค€๋‹ค.

  • ํ”„๋กœ๊ทธ๋žจ ์ œ์–ด (Control Program)
    ์—๋Ÿฌ๋ฅผ ์˜ˆ๋ฐฉํ•˜๊ณ  ๋ถ€์ ์ ˆํ•œ ์‚ฌ์šฉ์„ ์ œ์–ดํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

์šด์˜์ฒด์ œ๋Š” ์–ด๋””๊นŒ์ง€๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์„๊นŒ?

  • ์–ด๋””๊นŒ์ง€๊ฐ€ ์šด์˜์ฒด์ œ๋‹ค๋ผ๊ณ  ์ •์˜ํ•  ์ˆ˜๋Š” ์—†๋‹ค.
  1. "vendor ships์˜ ๋ชจ๋“  ๊ฒƒ"๋“ค์ด๋ผ๊ณ  ํ•  ์ˆ˜๋„ ์žˆ์œผ๋ฉฐ 2. "kernel(๊ฐ€์žฅ ํ•ต์‹ฌ์ด ๋˜๋Š”)์„ ์ผฐ์„ ๋•Œ ํ•ญ์ƒ ๋Œ๊ณ ์žˆ๋Š” ๋ชจ๋“  ๊ฒƒ"์ด๋ผ๊ณ ๋„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

OS๊ฐ€ ์ด๋Ÿฌํ•œ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ชฉํ‘œ๊ฐ€ ๋ฌด์—‡์ผ๊นŒ?

  • ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œํ‚ค๊ณ  ์‚ฌ์šฉ์ž์˜ ๋ฌธ์ œ๋ฅผ ์‰ฝ๊ฒŒ ํ’€์–ด์ฃผ๋„๋ก ํ•œ๋‹ค.
  • Computer System์„ ํšจ์œจ์ ์œผ๋กœ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

์šด์˜์ฒด์ œ๋Š” Computer System์„ ํšจ์œจ์ ์œผ๋กœ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก User์—๊ฒŒ ์ œ๊ณตํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค๊ณ  ํ•˜๋Š”๋ฐ ๊ทธ๋ ‡๋‹ค๋ฉด Computer System์ด ๋ฌด์—‡์ธ์ง€ ์•Œ์•„์•ผํ•  ๊ฒƒ์ด๋‹ค.
Computer System์ด ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋ฉด OS์— ๋Œ€ํ•ด์„œ ์ดํ•ดํ•˜๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค.

ํ•ด๋‹น ์ฑ•ํ„ฐ์—์„œ๋Š” ์šด์˜์ฒด์ œ๋ฅผ ์•Œ์•„๋ณด๊ธฐ ์ „์— ์šด์˜์ฒด์ œ๊ฐ€ ์ ์šฉ๋  Computer System์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค


Computer System์— ๋Œ€ํ•œ ์ดํ•ด

computer system ๊ตฌ์กฐ

4๊ฐœ์˜ component๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค.

  1. Hardware : ๋ˆˆ์— ๋ณด์ด๋Š” computer system์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ชจ๋“  ๊ฒƒ๋“ค
  2. OS :Hardward๋ฅผ ์‚ฌ์šฉํ•จ์— ์žˆ์–ด์„œ ์—ฌ๋Ÿฌ application or user ๋“ค์ด ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ œ์–ด ๋ฐ ๊ด€๋ฆฌํ•˜๋Š” ์—ญํ• ์„ ํ•˜๋Š” ๊ฒƒ
  3. Application programs : ์‚ฌ์šฉ์ž์— ์˜ํ•ด์„œ ์ž‘๋™๋˜๋Š” ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ web browser or database system ๋“ฑ์ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.
  4. User : application program์„ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ๊ฒƒ๋“ค์ด๊ณ  ์‚ฌ๋žŒ์ด ๋  ์ˆ˜๋„ ์žˆ์œผ๋ฉฐ ๋˜ ๋‹ค๋ฅธ ๊ธฐ๊ณ„๋‚˜ ์ปดํ“จํ„ฐ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค.

์ž‘์€ ๋ฒˆํ˜ธ๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ computer system์„ ํ•˜๋‹จ์—์„œ ๋ถ€ํ„ฐ ๊ตฌ์„ฑํ•˜๊ณ  ์žˆ๋‹ค.

Computer Startup

  • booting

bootstrap ์— ์˜ํ•ด์„œ ๋ถ€ํŒ…๋œ๋‹ค.
ROM or EEPROM ๋“ฑ์˜ firmware์•ˆ์— ๋“ค์–ด์žˆ๋Š” bootstrap์ด ์ปดํ“จํ„ฐ ์ „์›์ด ์ผœ์ง€๋ฉด์„œ ๊ฐ€์žฅ ์ฒ˜์Œ์œผ๋กœ ์‹คํ–‰๋˜๊ณ  ์ดˆ๊ธฐํ™”๊ฐ€ ์ง„ํ–‰๋œ๋‹ค.

  • loading

kernel์ด(OS๊ฐ€) ~~๊ฐ€ ~~์— ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ (์ด๋ฏธ ์•Œ๊ณ ์žˆ์Œ) ๋กœ๋”ฉํ•ด์ฃผ๋Š” ์—ญํ• ์„ ์ง„ํ–‰ํ•œ๋‹ค.

Computer System Organization

CPU๋Š” ๊ณต์œ  memory๋ฅผ ์ฃผ์†Œ๊ฐ’์„ ํ†ตํ•ด์„œ ์ ‘๊ทผํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.
์ด๋•Œ, ๋ฐ์ดํ„ฐ๋Š” device๋“ค์˜ I/O์ž‘์—…์ด ์ง„ํ–‰๋˜๋ฉฐ ๊ฐ๊ฐ์˜ Controller์— ์˜ํ•ด์„œ shared BUS๋ฅผ ํƒ€๊ณ  ๋“ค์–ด์˜ค๊ฒŒ ๋œ๋‹ค.

ํŠน์ง•
1. concurrently : CPU์˜ ์ž‘์—…๊ณผ I/O ์ž‘์—…์€ ๋™์‹œ์— ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋‹ค.
2. buffer : ๊ฐ ๋””๋ฐ”์ด์Šค๋“ค์˜ Controller๋Š” local buffer๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ  ์ผ๋‹จ์€ buffer์— ์ €์žฅํ•˜๋ฉฐ I/O๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.
- Disk out : write์ž‘์—…์œผ๋กœ disk controller์˜ buffer์—์„œ disk๋กœ disk์˜ ์†๋„์— ๋งž์ถฐ์„œ ๋ฐ–์œผ๋กœ ์ถœ๋ ฅ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
- Disk in : read์ž‘์—…์œผ๋กœ disk controller์˜ local buffer์— ์ €์žฅํ•˜๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
3. DMA Controller : buffer์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ shared Bus๋ฅผ ํ†ตํ•ด์„œ memory์— ์ €์žฅํ•  ๋•Œ block๋‹จ์œ„๋กœ ์ˆ˜ํ–‰ํ•œ๋‹ค.
4. Interrupt : DMA Controller์˜ ๋„์›€์„ ๋ฐ›์•„์„œ disk buffer์˜ data๊ฐ€ memory์— ์“ฐ์—ฌ์งˆ๋•Œ CPU์—๊ฒŒ i/o ์ž‘์—…์ด ๋๋‚ฌ์Œ์„ ์•Œ๋ ค์ฃผ๊ณ  memory์— ๋‹ค ์“ฐ์—ฌ์กŒ์Œ์„ ์•Œ๋ ค์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

๊ฒฐ๊ตญ์— I/O ์ž‘์—…์ด ๋๋‚˜๊ณ  CPU์˜ Control์€ Interrupt์— ์˜ํ•ด์„œ ๋ฐœ์ƒํ•œ๋‹ค.
I/O์ž‘์—…๊ณผ CPU ์‚ฌ์ด์˜ Interrupt์— ๋Œ€ํ•ด์„œ๋Š” ์กฐ๊ธˆ ๋” ์ž์„ธํžˆ ์•Œ์•„๋ณด์ž!!

Interrupt Driven

Interrupt์— ์˜ํ•ด์„œ CPU ์ž‘์—…์ด ์‹คํ–‰๋˜๊ฒŒ ๋œ๋‹ค. Interrupt์— ๋Œ€ํ•ด์„œ ์ž์„ธํžˆ ์•Œ์•„๋ณด์ž!

Interrupt๋Š” ์—ฌ๋Ÿฌ์ข…๋ฅ˜๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋Š”๋ฐ ๊ฐ๊ฐ์˜ Interrupt๋งˆ๋‹ค ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š” ๋ฃจํ‹ด์ด ๋‹ค ๋‹ค๋ฅผ ๊ฒƒ์ด๋‹ค. ์ด๋•Œ, "Interrupt Vector"๋Š” ๊ฐ Interrupt๋งˆ๋‹ค ์–ด๋””์— ์–ด๋–ค ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด ์ค„ ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์žˆ๋Š”์ง€์—๊ฐ€ ๋‹ด๊ฒจ์ ธ์žˆ๋‹ค.

  • Interrupt๋ฅผ ์ฒ˜๋ฆฌ์ค‘์ธ๋ฐ ๋‹ค๋ฅธ Interrupt๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ
    ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋น„๊ตํ•ด์„œ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ๊ฒƒ์„ ๋จผ์ € ์ฒ˜๋ฆฌํ•ด์ค€๋‹ค.
    ๋‹ค๋ฅธ Interrupt๋ฅผ ์‹คํ–‰ํ•  ๋•Œ๋Š” ์ด๋ฏธ ๋™์ž‘์ค‘์ด๋˜ CPU ๋™์ž‘์„ save ํ•ด์ฃผ๊ณ  ๋‹ค์‹œ ์‹คํ–‰ํ•  ๋•Œ๋Š” ํ•ด๋‹น ์‹œ์  ์ดํ›„ ๊ณผ์ •๋งŒ ์‹คํ–‰ํ•˜๋ฉด ๋œ๋‹ค.

  • SOFTWARE์ ์ธ interrupt : TRAP
    error๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์‹ ํ˜ธ๋ฅผ ์ค˜์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก software์ ์ธ ์—๋Ÿฌ(ex. 3/0)๋ฅผ ๊ฑธ์–ด์ฃผ๋Š”๋ฐ trap์ด๋ผ๊ณ ํ•œ๋‹ค.
    ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์— ์˜ํ•ด์„œ interrupt๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

  • Interrupt Driven
    OS๋Š” ๋ชจ๋‘ interrupt์— ์˜ํ•ด์„œ ๋™์ž‘์ด ์ง„ํ–‰๋˜๋Š”๋ฐ ์šฐ๋ฆฌ๊ฐ€ ํด๋”๋ฅผ ํด๋ฆญํ•˜๊ณ  ๊ธ€์„ ์ž‘์„ฑํ•˜๊ณ  ํ•˜๋Š” ๋“ฑ์˜ ๋ชจ๋“  ํ–‰์œ„๊ฐ€ interrupt๊ฐ€ ๋œ๋‹ค.

  • Interrupt Handling(Interrupt Cycle)

    1. Interrupt๊ฐ€ ๋ฐœ์ƒํ•œ ์‹œ์ ์—์„œ์˜ ์ง€๊ธˆ๊นŒ์ง€ ํ•ด์˜จ ๊ฒฐ๊ณผ๋ฌผ(register์•ˆ์˜ ์ค‘๊ฐ„๊ฒฐ๊ณผ๋ฌผ๋“ค)์„ ๋‹ค ์ €์žฅํ•˜๊ณ  ์ดํ›„ ๋‹ค์‹œ ๋Œ์•„์˜ฌ ๊ณณ์˜ ์ฃผ์†Œ(PC : program counter ์•ˆ์˜ ๊ฐ’์€ ๋‹ค์Œ์— ์‹คํ–‰์‹œํ‚ฌ ๊ฒƒ์˜ ์ฃผ์†Œ๊ฐ’์„ ์ €์žฅํ•œ๋‹ค)๋ฅผ ์ €์žฅํ•œ๋‹ค.
    2. CPU์˜ Controll์ด interrupt๋œ Service๊ฐ€ ์–ด๋””์—์žˆ๋Š”์ง€ ํŒŒ์•…ํ•˜๊ณ  ๊ทธ ์ชฝ์œผ๋กœ ๋„˜์–ด๊ฐ€์„œ ์‹คํ–‰์„ ์‹œํ‚จ๋‹ค.
    3. ์‹คํ–‰์ด ๋๋‚ฌ์„ ๋•Œ 1๋ฒˆ์—์„œ ์ €์žฅํ•ด๋†“์€ PC๋ฅผ ์ฝ์–ด์„œ ๋Œ์•„๊ฐˆ ๊ณณ์˜ ์ฃผ์†Œ๋ฅผ ํŒŒ์•…ํ•˜๊ณ  ๋‚˜๋จธ์ง€ ๊ณผ์ •์„ ์‹คํ–‰ํ•œ๋‹ค.

    ๊ทธ๋ ‡๋‹ค๋ฉด 2๋ฒˆ์—์„œ interrupt๋œ Service๊ฐ€ ์–ด๋””์— ์žˆ๋Š”์ง€ ํŒŒ์•…ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๊ถ๊ธˆํ•ด์งˆ ๊ฒƒ์ด๋‹ค.

  • Which type of interrupt has occurred

    1. polling : interrupt๋ฅผ ๊ฑด device๊ฐ€ ์–ด๋–ค ๊ฒƒ์ธ์ง€ ํ•˜๋‚˜์”ฉ ์ ‘๊ทผํ•˜๋ฉฐ ๋ฌผ์–ด๋ณด๋ฉฐ "ํ•ด๋‹น ๋””๋ฐ”์ด์Šค์—์„œ interrupt๊ฐ€ ๋‚ฌ์œผ๋‹ˆ๊นŒ ~~ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์•ผ๊ฒ ์ง€"๋ผ๊ณ  ์ƒ๊ฐํ•ด๋‚ด์„œ ๊ทธ์— ๋งž๋Š” ์„œ๋น„์Šค๋ฅผ ์ฐพ์•„๊ฐ€๋Š” ๊ณผ์ •
    2. vectored interrupt system : ์—ฌ๋Ÿฌ interrupt์— ๋งž๋Š” Service๊ฐ€ ์ฃผ์†Œ๊ฐ’์œผ๋กœ ์ €์žฅ๋˜์–ด์žˆ๋Š” table์— ์ ‘๊ทผํ•˜์—ฌ ์ง€๊ธˆ ๋“ค์–ด์˜จ interrupt๋Š” ์–ด๋–ค ์„œ๋น„์Šค๋ฅผ ์‹คํ–‰ํ•ด์•ผํ•˜๋Š”์ง€ ์ฃผ์†Œ๊ฐ’์„ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ณผ์ •

Interrupt Driven์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ดค๋Š”๋ฐ ๋ฐ‘์—์„œ๋Š” I/O์ž‘์—…์— ๋Œ€ํ•ด์„œ ๋””ํ…Œ์ผํ•˜๊ฒŒ ์•Œ์•„๋ณด์ž!

I/O ๊ตฌ์กฐ

  • Synchronous I/O
    I/O ์ž‘์—…์ด ์‹คํ–‰์ค‘์ผ ๋•Œ, CPU๊ฐ€ ๋™๊ธฐํ™” ๋˜์–ด ์‹คํ–‰๋˜์ง€ ์•Š๊ณ  ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ตฌ์กฐ์ด๋‹ค.
    I/O ์ž‘์—…์ด ๋๋‚ ๋•Œ, CPU๊ฐ€ ์‹คํ–‰๋œ๋‹ค.
    wait instruction ์„ ์‚ฌ์šฉํ•ด์„œ ๋‹ค์Œ๋ฒˆ interrupt๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆด ์ˆ˜ ์žˆ๊ณ  ํ˜น์€ ๊ณ„์†ํ•ด์„œ wait loop ๋ฐฉ์‹์œผ๋กœ ๋‹ค์Œ๋ฒˆ interrupt๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ๊นŒ์ง€ ๋ฉ”๋ชจ๋ฆฌ์— ๊ณ„์†ํ•ด์„œ ์ ‘๊ทผํ•˜๋ฉฐ ๊ฐ’์„ ์ฝ์–ด๋„๋ก ์‹œ๋„ํ•˜๋Š” ๋ฐฉ์‹์ด ์žˆ๋‹ค.
    => CPU๋Š” ์–ด์ฉ” ์ˆ˜ ์—†์ด I/O ์ž‘์—…์ด ํ•˜๋‚˜๋งŒ ์ง„ํ–‰๋  ์ˆ˜ ์žˆ์œผ๋‹ˆ, ์ตœ๋Œ€ ํ•˜๋‚˜์˜ I/O ์ž‘์—…๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • Asynchronous I/O
    I/O ์ž‘์—…์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  CPU๋Š” I/O์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์˜ ์ž‘์—…์„ ํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ์กด์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ค‘์ง€์‹œํ‚ค๊ณ  ๋‹ค๋ฅธ ์ผ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.
    => I/O ์ž‘์—…์ด ์—ฌ๋Ÿฌ๊ฐœ๊ฐ€ ๋™์‹œ์— ์ง„ํ–‰ ๋  ์ˆ˜ ์žˆ๋‹ค.
    ์ด๋•Œ, ์•„๋ž˜์˜ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด ๊ฐ๊ฐ์˜ device๋งˆ๋‹ค ์ƒํƒœ๋ฅผ ์•Œ๋ ค์ฃผ๋Š” Device-status table์ด ์กด์žฌํ•ด์•ผํ•œ๋‹ค.

  • DMA : Direct Memory Access
    ์ง์ ‘ buffer์—์„œ block๋‹จ์œ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ memory์— ์ €์žฅํ•ด๋†“๋Š” transfer ์ž‘์—…์ด๋‹ค.
    ํ•ด๋‹น ์ž‘์—…์€ CPU์˜ ๊ด€์—ฌ์—†์ด ์ด๋ฃจ์–ด์ง„๋‹ค.
    ์ดํ›„์—,
    CPU๋Š” DMA ๋ฐฉ์‹์œผ๋กœ memory์— data๊ฐ€ ์Œ“์ธ ๊ฒƒ์„ "ํ•œ๋ฒˆ์˜ Interrupt"์— ์˜ํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์™€ ์ž‘์—…์„ ์‹œ์ž‘ํ•˜๊ฒŒ ๋œ๋‹ค.

์ง€๊ธˆ๊นŒ์ง€ Computer System์ด ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋ฉฐ OS๊ฐ€ ์–ด๋–ป๊ฒŒ hardware(device)๋ฅผ ์ปจํŠธ๋กคํ•˜๊ฒŒ ๋˜๋Š”์ง€ CPU์™€์˜ ๊ด€๊ณ„์— ์˜ํ•ด์„œ ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ํฐํ‹€์„ ์ดํ•ดํ–ˆ๋‹ค๋ฉด ๊ทธ๋ ‡๋‹ค๋ฉด ์ด์ œ๋Š” hardware์˜ Storage์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋ฉฐ OS์˜ ๋™์ž‘์— ๋Œ€ํ•ด์„œ ์ดํ•ดํ•ด๋ณด์ž!!

Storage์— ๋Œ€ํ•œ ์ดํ•ด

๊ณ„์ธต์  ๊ตฌ์กฐ

๊ณ„์ธต์ ์ธ ๊ตฌ์กฐ์˜ ์ €์žฅ๋งค์ฒด๊ฐ€ ์กด์žฌํ•œ๋‹ค.

  • speed, cost, valatility
    ์œ„๋กœ ๊ฐˆ์ˆ˜๋ก ๋นจ๋ผ์ง€๊ณ  ์•„๋ž˜๋กœ ๊ฐˆ์ˆ˜๋ก ์‹ธ์ง„๋‹ค. main memeory ์œ„์ชฝ์œผ๋กœ๋Š” ์ „๊ธฐ๊ฐ€ ๋Š๊ธฐ๋ฉด ๋‚ ๋ผ๊ฐ„๋‹ค. ๊ทธ ์•„๋ž˜๋Š” ์ „๊ธฐ๊ฐ€ ๋Š๊ฒจ๋„ ๊ณ„์† ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ์ง€๋œ๋‹ค.

  • caching
    ์œ„์˜ ๊ณ„์ธต์— ๋ฐ์ดํ„ฐ๋ฅผ ์˜ฌ๋ ค๋†“๋Š” ๊ฒƒ์„ ์บ์‹ฑ๊ธฐ๋Šฅ์ด๋ผ๊ณ  ํ•˜๊ณ  ์†๋„๊ฐ€ ๋” ๋น ๋ฅธ ๊ณ„์ธต์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์˜ฎ๊ฒจ๋†“๋Š” ๊ณผ์ •์„ ์˜๋ฏธํ•œ๋‹ค.
    (cache๋Š” register์•„๋ž˜์— ์žˆ๋Š” ์ €์žฅ๋งค์ฒด๋ฅผ ์˜๋ฏธํ•œ๋‹ค.)

Typical size
register: <1KB
cache : >16MB
main memory : >16GB
disk stroage : > 100GB

Access time(ns)
register: 0.25 - 0.5
cache : 0.5 - 25
main memory : 80-250
disk storage : 5,0000,000
=> ๊ฐ€๋Šฅํ•œ main memroy์œ„์—์„œ cpu๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์„ฑ ๋˜์–ด์•ผํ•œ๋‹ค.

Bandwidth(MB/sec)
register: 20,000 - 100,000
cache : 5000 - 10,000
main memory : 1000 - 5000
disk stroage : 20 - 150
=> ๋Œ€์—ญํญ์ด disk storage๊นŒ์ง€ ๋˜๋„๋ก ๋‚ด๋ ค๊ฐ€์ง€ ์•Š๋„๋ก ํ•ด์•ผํ•œ๋‹ค.
=> main memory๊นŒ์ง€๋Š” ์ „๊ธฐ์ ์œผ๋กœ ์ˆ˜ํ–‰๋˜์ง€๋งŒ, ์•„๋ž˜๋ถ€ํ„ฐ๋Š” ๊ธฐ๊ณ„์ ์ธ ๋ฐฉ๋ฒ•์ด ์ˆ˜๋ฐ˜๋  ์ˆ˜ ๋ฐ–์—์—†๊ณ  ์ด๋กœ ์ธํ•œ ์„ฑ๋Šฅ์ฐจ์ด๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ๋ฐ–์— ์—†๋‹ค.

storage ๊ตฌ์กฐ

  • main memory : memory ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  CPU๊ฐ€ ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ๋กœ ์œ„์—์„œ ์‚ดํŽด๋ณธ, system bus์™€ ์—ฐ๊ฒฐ๋œ memory์ด๋‹ค.
  • Secondary Storage : main memory๋ณด๋‹ค ํฐ nonvolatileํ•œ storage๋กœ Magnetic disk๋“ฑ์ด ์กด์žฌํ•œ๋‹ค.

magnetic disk
disk์˜ ํ‘œ๋ฉด์€ ๋Œ€๋žต ๋งŒ๊ฐœ ์ด์ƒ์˜ track(์›)์œผ๋กœ ๊ตฌ์„ฑ์ด ๋˜์–ด์žˆ๊ณ ํ•œ ํŠธ๋ž™ ์•ˆ์— ๊ต‰์žฅํžˆ ๋งŽ์€ ์ˆ˜์˜ sector๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ๊ณ  sector๋‹จ์œ„๋กœ disk I/O์ž‘์—…์ด ์ด๋ฃจ์–ด์ง„๋‹ค.
์ฝ๊ณ  ์“ฐ๊ธฐ ์ž‘์—…์„ ํ•  ๋•Œ device์™€ controller์‚ฌ์ด์˜ interface์—ญํ• ์„ disk controller๊ฐ€ ์ง„ํ–‰ํ•œ๋‹ค.
์›์ด ๋ชจ์—ฌ ํ•˜๋‚˜์˜ ์›ํŒ์„ ํ”Œ๋ž˜ํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๋Š”๋ฐ ์ด๊ฒƒ์ด ์ˆ˜์‹ญ, ์ˆ˜๋ฐฑ๊ฐœ๊ฐ€ ๋ชจ์—ฌ ๋™๊ธฐํ™”๋œ ์ƒํƒœ๋กœ ๊ฐ™์€ ์†๋„๋กœ ์ผ์ •ํ•˜๊ฒŒ ๋Œ๊ธฐ ์‹œ์ž‘ํ•œ๋‹ค. ๋Œ๋‹ค๊ฐ€ ์›ํ•˜๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ•˜๋ฉด ์ฝ๊ฑฐ๋‚˜ ์“ฐ๊ธฐ๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค. platter์˜ ์œ—๋ฉด, ์•„๋žซ๋ฉด์„ ์ฝ๊ธฐ ์œ„ํ•ด์„œ arm์ด ์œ„, ์•„๋ž˜๋กœ ์กด์žฌํ•œ๋‹ค. ์ด๋•Œ arm์— read-writed head๊ฐ€ ์กด์žฌํ•˜๊ณ  ์ด๋กœ ์ธํ•ด์„œ disk I/O์ž‘์—…์ด ์ด๋ฃจ์–ด์ง„๋‹ค.
๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ฑฐ๋‚˜ ์“ธ ๋•Œ ๋งˆ๊ทธ๋„คํ‹ฑ ํ•„๋“œ๊ฐ€ ์ˆ˜์ง, ์ˆ˜ํ‰๋ฐฉํ–ฅ์ค‘์— ์–ด๋–ค ๊ฒƒ์ธ์ง€ 1,0์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

  • head crash
    ์ฝ๊ณ  ์“ฐ๋Š” ๊ณผ์ •์—์„œ platter๋Š” head์™€ ๊ฐ„๊ฒฉ์ด ๋งค์šฐ ์ข๊ธฐ์— ๋‹ฟ์œผ๋ฉฐ ๋ฐ์ดํ„ฐ๊ฐ€ ์†์ƒ๋˜๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์†๋„
    head๊ฐ€ ๊ฐ€๋ณ๊ธฐ ๋•Œ๋ฌธ์— ๋น ๋ฅด๊ฒŒ I/O ์ž‘์—…์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

optical disk

  • ์›ํ•˜๋Š” ํŠธ๋ž™์„ ์ฐพ์•„๊ฐ€๋Š” ๊ณผ์ •์€ ๋งˆ๊ทธ๋„คํ‹ฑ๋ณด๋‹ค ์˜ค๋ž˜๊ฑธ๋ฆฌ์ง€๋งŒ, ์ฐพ์•˜๋‹ค๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์“ฐ๋Š” ๊ณผ์ •์ด ๋งˆ๊ทธ๋„คํ‹ฑ๋ณด๋‹ค ๋” ๋น ๋ฅด๊ฒŒ ๋ฐœ์ƒํ•œ๋‹ค.
    ๋ ˆ์ด์ €๋ฅผ ์˜๋ฉด์„œ ํƒœ์šฐ๋ฉด์„œ 1,0์„ ๊ตฌ๋ถ„ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰๋œ๋‹ค.
    ์ด๋•Œ platter์™€ head ์‚ฌ์ด์˜ ๊ฐ„๊ฒฉ์ด ๋น„๊ต์  ๋„“๊ธฐ์— head crash๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋‹ค๋งŒ, head๊ฐ€ ๋น„๊ต์  ๋ฌด๊ฒ๋‹ค. ๊ทธ๋ž˜์„œ sector๋ฅผ ์ฐพ๋Š” ๊ณผ์ •์ด ๋Š๋ฆด ์ˆ˜๋Š” ์žˆ์ง€๋งŒ ์ฐพ๊ณ ๋‚˜์„œ I/O ์ž‘์—…์€ ๊ด‘ํ•™๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ด์„œ ๋งค์šฐ ๋น ๋ฅด๊ฒŒ ์ผ์–ด๋‚œ๋‹ค.

caching ๊ธฐ๋Šฅ

์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ๋‚ฎ์€ level์˜ ์Šคํ† ๋ฆฌ์ง€์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋†’์€ level์˜ ์Šคํ† ๋ฆฌ์ง€๋กœ ์˜ฎ๊ฒจ๋†“๊ณ  ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์„ caching์ด๋ผ๊ณ ํ•œ๋‹ค.

migration of Integer A from Disk to Register

  • ex)
    magnetic disk๋Š” optical disk์˜ cache ์—ญํ• ์„ ํ•œ๋‹ค.
    optical disk๋Š” magnetic tapes์˜ cache ์—ญํ• ์„ ํ•œ๋‹ค.

  • CPU๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด๋“ค์ด๋Š” ๊ณผ์ •

register์—์„œ ์ฐพ๋‹ค๊ฐ€ ์—†์œผ๋ฉด cache์—์„œ ์ฐพ๋‹ค๊ฐ€ ์—†์œผ๋ฉด Main memory์—์„œ ์ฐพ๊ณ  ์ด๋•Œ๋„ ์—†์œผ๋ฉด magnetic disk์—์„œ ์ฐพ๊ณ  ์ ์  ์•„๋ž˜๋กœ ๋‚ด๋ ค๊ฐ€๋ฉด์„œ ์ฐพ๊ฒŒ๋œ๋‹ค.
์ด๋•Œ magnetic disk์—์„œ ๋ฐœ๊ฒฌํ–ˆ๋‹ค๊ณ  ํ•˜์ž. ๋ฐœ๊ฒฌํ•œ ๋ฐ์ดํ„ฐ๋ฅผ main memory๋กœ ์˜ฌ๋ฆฌ๊ณ  main memory์—์„œ cache๋กœ ์˜ฌ๋ฆฌ๊ณ  cache์—์„œ hardware์— ์˜ฌ๋ ค์ค€๋‹ค.
์ด๋•Œ, magnetic disk์— ์žˆ๋˜ ๋ฐ์ดํ„ฐ์˜ ๋ณต์‚ฌ๋ณธ์ด ์œ„์˜ ๊ณ„์ธต์— ๋ชจ๋‘ ์กด์žฌํ•˜๊ฒŒ๋˜๋Š”๋ฐ, update๊ฐ€ ์ง„ํ–‰๋์„ ๋•Œ ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ณต์‚ฌ๋ณธ์„ ๋ชจ๋‘ ๋ณ€๊ฒฝ์‹œ์ผœ์คŒ์œผ๋กœ์จ cache์˜ Coherency์„ ๊ฐ€์ ธ๊ฐ€์•ผํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

  • multi-processor์—์„œ์˜ ์ผ๊ด€์„ฑ๋ฌธ์ œ
    cache์˜ ์ผ๊ด€์„ฑ ๋ฌธ์ œ๋Š” CPU๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ ์กด์žฌํ•  ์ˆ˜ ์žˆ๋Š” multi-processor ๊ตฌ์กฐ์—์„œ ๋”์šฑ ์‹ฌ๊ฐํ•ด์งˆ ์ˆ˜ ์žˆ๋‹ค.
    ๊ฐ๊ฐ์˜ ํ”„๋กœ์„ธ์„œ๋Š” ์ž๊ธฐ์ž์‹ ์˜ Cache๋ฅผ ๊ฐ€์ง€๋Š”๋ฐ CPU์•ˆ์— ์กด์žฌํ•˜๋ฉด L1 Cache, ๋ฐ–์—์žˆ๋‹ค๋ฉด L2 Cache์— ์กด์žฌํ•œ๋‹ค.
    main memory์— ์žˆ๋Š” A๋ผ๋Š” ๊ฐ’์ด ๋‘๊ฐœ ์ด์ƒ์˜ CPU์— ์กด์žฌํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ๊ทธ๋Ÿฐ๋ฐ ํ•˜๋‚˜์˜ CPU์—์„œ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋ฉด ๋‹ค๋ฅธ ์ชฝ์˜ CPU์—์„œ๋„ ๋ณ€๊ฒฝ๋œ ๊ฐ’์„ ์•Œ๊ฒŒ๋” ํ•ด์ค˜์•ผํ•œ๋‹ค.
    => System bus๋ฅผ monitoringํ•˜๋ฉด์„œ ๊ฐ’์ด ๋ฐ”๋€œ์„ ๊ฐ๊ฐ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ธ์ง€ํ•˜๊ณ  ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋ธ์ด๋œ๋‹ค.(๋ณต์žกํ•ด์ง€๋ฉด ๋‹ค๋ฅธ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•ด์•ผํ•จ)

์ง€๊ธˆ๊นŒ์ง€ CPU, I/O Device๋“ค์˜ ๋™์ž‘์„ Computer System๊ณผ Storage๋“ค์˜ ๋™์ž‘์›๋ฆฌ์— ๋Œ€ํ•ด์„œ ์ดํ•ดํ•˜๋ฉฐ ์•Œ์•„๋ณด์•˜๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์ง€๊ธˆ๊นŒ์ง€ ์•Œ์•„๋ณธ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์—์„œ ์–ด๋–ป๊ฒŒ OS๊ฐ€ ๊ตฌ์„ฑ๋˜๊ณ  ์žˆ๋Š”์ง€์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋„๋กํ•˜์ž!

๋ณธ๊ฒฉ Operating system ์•Œ์•„๋ณด๊ธฐ

ํšจ์œจ์„ฑ์„ ๊ณ ๋ คํ•œ OS์˜ ๊ตฌ์กฐ

Multiprogramming
Memory์œ„์— ์—ฌ๋Ÿฌ๊ฐœ์˜ job๋“ค์ด ์˜ฌ๋ผ์™€์„œ ์—ฌ๋Ÿฌ๊ฐœ์˜ job๋“ค์ด ์ƒ์ฃผํ•  ์ˆ˜ ์žˆ๋„๋กํ•˜๊ณ  CPU์˜ ๋™์ž‘์ด ํ•„์š”ํ•  ๋•Œ ์Šค์ผ€์ค„๋งํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด CPU I/O ์ž‘์—…์„ ํšจ์œจ์ ์œผ๋กœ ํ•  ์ˆ˜ ์žˆ๋‹ค.

Multitasking(TiemSharing)
multiprogramming์ฒ˜๋Ÿผ ํ•œ ์ž‘์—…์ด ๋๋‚˜๋ฉด ๋‹ค๋ฅธ ์ž‘์—…์„ ์‹คํ–‰ํ•ด์ฃผ๋Š” ๋ฐฉ์‹์ด ์•„๋‹ˆ๋ผ, ํ•˜๋‚˜์˜ ์ž‘์—…์ด ์ฒ˜๋ฆฌ๋  ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„์˜ ์ œํ•œ์„ ๋‘๊ณ  ์—ฌ๋Ÿฌ๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๋“ค์ด time์„ ๋‚˜๋ˆ  ์ง„ํ–‰ํ•˜๋„๋ก ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.
ex) 1000๋ช…์˜ ์ง์›์ด ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ์— ๋ชจ๋‘ ์ ‘๊ทผํ•˜์—ฌ ์‚ฌ์šฉํ•  ๋•Œ, 1์ดˆ ์ดํ•˜์˜ response time์ด ๋˜๋„๋ก ์‹œ๋ถ„ํ• ์„ ํ†ตํ•ด์„œ ๋งค์šฐ ๋น ๋ฅด๊ฒŒ ์ž‘์—…์„ ์—ฐ์†์ ์œผ๋กœ ํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋Š๋ผ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.
Swapping : process๊ฐ€ ๋๋‚จ์— ๋”ฐ๋ผ์„œ memory ๊ณต๊ฐ„์—์„œ ๋‚ด๋ ค์ฃผ๊ณ  ๋‹ค์Œ process๊ฐ€ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋„๋ก ์˜ฌ๋ ค์ฃผ๋Š” ๋ฐฉ์‹
virtual memory : ๋ฌผ๋ฆฌ์  ๊ตฌ๋ถ„์ด ์•„๋‹ˆ๋ผ ๋…ผ๋ฆฌ์  ๊ตฌ๋ถ„์˜ ๋ฉ”๋ชจ๋ฆฌ๋กœ ์‚ฌ์šฉ์ž์˜ ์ž…์žฅ์—์„œ ๋ฌดํ•œํ•œ ๊ณต๊ฐ„์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ swapping ๋ฐฉ์‹ ๋“ฑ์„ ํ†ตํ•ด ๊ตฌํ˜„๋œ๋‹ค.

Interrupt Driven

interrupt๋Š” hardware์ ์œผ๋กœ ๋ฐœ์ƒํ•œ๋‹ค.
trap์€ software์ ์ธ๋ฐ, software error(Zero Division Error) ๋“ฑ๊ณผ ๊ฐ™์€ ์—๋Ÿฌ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด์„œ trap์„ ๋งŒ๋“ค์–ด์ค€๋‹ค.
๋ฌดํ•œ๋ฃจํ”„๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ timer๋ฅผ ์„ธํŒ…ํ•ด์ฃผ๊ณ  interrupt๊ฐ€ ๋ฐœ์ƒ์‹œ ์ฒ˜๋ฆฌํ•ด์ค€๋‹ค.(timer๋ฅผ setํ•ด์ฃผ๊ณ  counter๊ฐ’์„ ์ค„์—ฌ๋‚˜๊ฐ€๋ฉฐ 0์ด ๋˜์—ˆ์„ ๋•Œ interrupt๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ๋ฌดํ•œ๋ฃจํ”„์˜ ๊ฒฝ์šฐ ์ž์›์„ ๋ชจ๋‘ ๋ฐ˜ํ™˜ํ•ด์„œ before์ƒํƒœ๋กœ setupํ•œ๋‹ค.)

  • Mode ๋ณ€ํ™˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณต
  1. User mode : ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋˜๋Š” ๋ชจ๋“œ
  2. Kernel : ์šด์˜์ฒด์ œ์˜ ๊ธฐ๋Šฅ์ด ๋™์ž‘ํ•˜๋Š” ๋ชจ๋“œ
    ํ•ญ์ƒ ์‚ฌ์šฉ์ž์˜ ํ”„๋กœ์„ธ์Šค๋Š” User mode์—์„œ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ œ์–ดํ•œ๋‹ค.
    Mode bit์— ๋”ฐ๋ผ์„œ ๊ตฌ๋ถ„์„ ์ง„ํ–‰ํ•œ๋‹ค.
    User mode bit = 1 / Kernel mode bit = 0์— ํ•ด๋‹นํ•œ๋‹ค.
    ex) I/O ์ž‘์—… ์ฒ˜๋ฆฌ๋ฅผ ํ•ด๋‹ฌ๋ผ๋Š” ์š”์ฒญ์ด user mode์—์„œ ๋ฐœ์ƒํ•˜๋ฉด system call์ด ์ผ์–ด๋‚˜๊ณ  mode bit๋Š” 0์œผ๋กœ ๋ณ€๊ฒฝ๋˜๋ฉฐ I/O์ž‘์—…์— ๋Œ€ํ•œ system call์ด ์‹œ์ž‘๋œ๋‹ค. ๋๋‚˜๋ฉด mode bit๊ฐ€ 1๋กœ ๋ณ€ํ™˜๋˜๋ฉฐ User mode์—์„œ system call์˜ return์„ ๋ฐ›๊ฒŒ ๋œ๋‹ค.
    Privileged ํŠน์ง• : ๊ฒฝ๊ณ„๊ฐ€ ๋‚˜๋ˆ ์ ธ ์žˆ๊ณ  ๊ฐ์ž ํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์ด ์กด์žฌํ•œ๋‹ค.

Process Management

  • ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ OS๊ฐ€ ์ œ๊ณตํ•œ๋‹ค.

ํ”„๋กœ์„ธ์Šค๋ž€ ? ํ˜„์žฌ ์‹คํ–‰์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์„ ์˜๋ฏธํ•œ๋‹ค. CPUํ•œํ…Œ ํ• ๋‹น๋˜๋Š” ์ž‘์—…์˜ ํ•œ ๋‹จ์œ„์ด์ด๋‹ค.

program์€ ์‹คํ–‰๋˜๋Š” ๊ฑฐ๋‹ˆ๊นŒ ์ˆ˜๋™์ ์ด๊ณ (passive) ํ”„๋กœ์„ธ์Šค๋กœ ์‹คํ–‰๋˜๋‹ˆ๊นŒ process ๋Šฅ๋™์ (active)์ด๋ผ๊ณ  ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค.
ํ”„๋กœ๊ทธ๋žจ์€ ์„ค์น˜๋œ ์ƒํƒœ์—์„œ ๊ฐ€๋งŒํžˆ ์žˆ๊ณ  ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

  • process ๊ด€๋ฆฌ๊ธฐ๋Šฅ
    User and system์—์„œ ํ”„๋กœ์„ธ์Šค๋ฅผ create and delete ๊ธฐ๋Šฅ
    ํ”„๋กœ์„ธ์Šค๋ฅผ suspending and resumingํ•˜๋Š” ๊ธฐ๋Šฅ
    synchronization ๊ด€๋ฆฌ
    coummunication ๊ด€๋ฆฌ
    deadlock ๊ด€๋ฆฌ : ์ž์›์˜ ๊ด€๋ฆฌ๊ฐ€ ์ž˜ ์•ˆ ๋ผ์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋จนํ†ต ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ฐ€๋Šฅ์„ ์ œ๊ณต
  • Process์˜ ๊ตฌ์„ฑ
    CPU, MEMORY, I/O, FILES ๋“ฑ์„ ํ”„๋กœ์„ธ์Šค๋Š” ํ•„์š”๋กœํ•œ๋‹ค.
    ๋ฌผ๋ก  ์ž‘์—…์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ดˆ๊ธฐ ๋ฐ์ดํ„ฐ๋„ ํ•„์š”ํ•˜๋‹ค.

  • Reclaim(๋ฐ˜ํ™˜)
    ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋œ๋‹ค๋ฉด ์‚ฌ์šฉํ–ˆ๋˜ ์ž์›์„ ๋ชจ๋‘ ๋ฐ˜ํ™˜ํ•ด์•ผํ•œ๋‹ค.
    ๋ฐ˜๋‚ฉํ•œ ์ž์›์€ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

  • Thread

Process๊ฐ€ ์ชผ๊ฐœ์ง„ ์ž‘์—…์˜ ๋‹จ์œ„์ด๋‹ค.

PC
SingleThread : process๊ฐ€ thread์ด๋‹ค.
MultiThread : process๊ฐ€ ๋” ์ชผ๊ฐœ์งˆ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๋กœ ์ชผ๊ฐœ๋Š” ๋‹จ์œ„๋กœ PC(Program counter)๋ฅผ ๊ฐ€์ง„๋‹ค.

MultiThread
CPU๊ฐ€ ํ•˜๋‚˜๋ผ๋ฉด ๋™์‹œ์— ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ, ์–ด๋Š ํ•œ์ˆœ๊ฐ„์— ํ•˜๋‚˜๋งŒ ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜, activeํ•œ ์ƒํƒœ๋กœ ์žˆ๋Š” thread๋“ค์ด ๋™์‹œ์— ์—ฌ๋Ÿฌ๊ฐœ๊ฐ€ ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์—์„œ single thread์™€ ๋‹ค๋ฅด๋‹ค.

Memory Management

๋ชจ๋“  instruction๋“ค์€ ์‹คํ–‰๋˜๊ธฐ ์œ„ํ•ด์„œ memory์œ„์— ์˜ฌ๋ผ์™€์žˆ์–ด์•ผํ•œ๋‹ค.
์ด๋•Œ OS๋Š” ๋ฉ”๋ชจ๋ฆฌ์˜ ์–ด๋Š ํŒŒํŠธ๋ฅผ ๋ˆ„๊ฐ€ ์–ธ์ œ ์‚ฌ์šฉํ•˜๋Š”์ง€ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

  • CPU์˜ ์ด์šฉ๋ฅ  ๊ด€๋ จ ๊ด€๋ฆฌ
  • ์–ด๋Šํ”„๋กœ์„ธ์Šค๊ฐ€ ์œ„์˜ level๋กœ ์˜ฌ๋ผ์™€์„œ memory์— ๋‹ด๊ธธ ๊ฒƒ์ธ์ง€ ๊ด€๋ฆฌ
  • ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํ• ๋‹นํ•˜๊ณ  ์ œ๊ฑฐํ•˜๋Š” ์—ญํ• 

Storage Management

OS๋Š” ์ผ๊ด€์ ์ด๊ณ  ๋…ผ๋ฆฌ์ ์ธ ๋ทฐ๋ฅผ (ex.ํŒŒ์ผ๊ด€๋ฆฌ์ž) ์ œ๊ณตํ•ด์•ผํ•œ๋‹ค.
device๋“ค์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•ด์ค˜์•ผํ•œ๋‹ค.(ex. sequentialํ•œ tape drive๋Š” ์ˆœ์ฐจ์ ์œผ๋กœ๋งŒ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๊ณ  harddisk๋Š” randomํ•˜๊ฒŒ ์ ‘๊ทผํ•ด์„œ ์›ํ•˜๋Š”๋Œ€๋กœ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ตฌ๋ถ„, ์–ด๋–ค ๋“œ๋ผ์ด๋ฒ„๋Š” speed๊ฐ€ ๋งค์šฐ ๋Š๋ฆด ๊ฒƒ์ด๊ณ  ๋“ฑ๋“ฑ์— ๋Œ€ํ•œ ๊ฐ ์†์„ฑ๊ฐ’๋“ค์— ๋Œ€ํ•ด์„œ ์ œ๊ณตํ•ด์ค˜์•ผํ•œ๋‹ค)

  • File System
    file or directories๋“ค์„ ์ƒ์„ฑํ•˜๊ณ  ์‚ญ์ œ๋ฅผ ๊ด€๋ฆฌ
    ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ† ๋ฆฌ์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ํ‘œ์‹œํ•ด์ค„ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ ์ œ๊ณต
    ํŒŒ์ผ๋“ค์„ ๋” ํฐ ์šฉ๋Ÿ‰์œผ๋กœ ๋งคํ•‘ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ
    ๋” ๊ฑด์ „ํ•œ ์šด์˜์„ ์œ„ํ•ด์„œ ๋ฐฑ์—…๊ธฐ๋Šฅ์„ ์ œ๊ณต

Mass Storage Management

main memory์•ˆ์— ๋“ค์–ด๊ฐˆ ์ˆ˜ ์—†๋Š” ํฐ ์‚ฌ์ด์ฆˆ์˜ ๋ฐ์ดํ„ฐ๋Š” disk์— ์ €์žฅํ•ด์•ผํ•œ๋‹ค.
์ด๋ ‡๊ฒŒ ์ €์žฅ๋˜๋ฉด ์˜ค๋žซ๋™์•ˆ ๋ณด๊ด€๋˜๋Š”๋ฐ ๋Œ€์—ญํญ์ด ๋–จ์–ด์ง€๊ณ  ์ ‘๊ทผ ์†๋„๊ฐ€ ๋งค์šฐ ๋Š๋ ค์ง„๋‹ค.
๊ทธ๋ž˜์„œ Disk๋ฅผ ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌํ•˜๋ƒ์— ๋”ฐ๋ผ์„œ ์„ฑ๋Šฅ์˜ ์˜ํ–ฅ์„ ์ฃผ๋Š”๋ฐ OS๋ฅผ ํ†ตํ•ด ๊ด€๋ฆฌ๋ฅผ ํ•ด์ค€๋‹ค.

  • ๋น„์–ด์žˆ๋Š” ๊ณต๊ฐ„์„ ๊ด€๋ฆฌ

  • Storage์˜ ํ• ๋‹น์„ ๊ด€๋ฆฌ

  • Disk scheduling์„ ์ง„ํ–‰

  • disk์˜ I/O ๋ฐฉ์‹์„ ๊ด€๋ฆฌํ•œ๋‹ค.

  1. WORM(write-one, reaad-many-times) : optical disk
  2. RW(read-write) : magnetic disk

I/O Subsystem

OS์—๋Š” hardware device๊ฐ€ ์‚ฌ์šฉ์ž๋กœ ๋ถ€ํ„ฐ ์‰ฝ๊ฒŒ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ํฌํ•จ๋˜์–ด์žˆ๋‹ค.

Controller์•ˆ์— buffer๊ฐ€ ์กด์žฌํ•œ๋‹ค.

  • device๋Š” disk controller์˜ memory๋ฅผ ์ด์šฉํ•ด buffering์„ ์ˆ˜ํ–‰
    ์†๋„์ฐจ์ด๊ฐ€ ํ‹€๋ฆฐ ๊ฒฝ์šฐ์— ์™„์ถฉ ์ž‘์šฉ์„ ํ•ด์ค€๋‹ค๋ฉด ๋ฒ„ํผ๋งํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.
    ex) cpu๊ฐ€ memory์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ harddisk์— ์“ฐ๋Š” ๊ฒฝ์šฐ ๋งค์šฐ ๋น ๋ฅด์ง€๋งŒ, ์‹ค์ œ harddisk์˜ ๋ฐ์ดํ„ฐ๋ฅผ๋Š” disk output ์ž‘์—…์€ ๋Š๋ฆฌ๋‹ค. ์ด ๊ฒฝ์šฐ ์†๋„ ์ฐจ์ด์˜ ์™„์ถฉ ์ž‘์šฉ์„ buffer๊ฐ€ ํ•ด์ค€๋‹ค.
  • ์†๋„๊ฐ€ ๋” ๋น ๋ฅธ์ชฝ์œผ๋กœ ๋ฏธ๋ฆฌ ๊ฐ€์ ธ๋‹ค ๋†“๋Š” caching ์„ ์ˆ˜ํ–‰
    ex) ์ฝ๊ธฐ์ž‘์—…์„ ํ•  ๋•Œ ์†๋„๊ฐ€ ๋Š๋ฆฌ๋‹ˆ๊นŒ disk controller์— ๋ฏธ๋ฆฌ๋ฏธ๋ฆฌ ๋„ฃ์–ด์ฃผ๋Š” ๊ณผ์ •์„ ํ•ด์ฃผ๋Š”๊ฒŒ ์บ์‹ฑ๊ธฐ๋Šฅ์ด๋‹ค.
  • ์–ด๋–ค ์ž‘์—…์˜ ์ถœ๋ ฅ๊ฐ’์„ ๋ฐ”๋กœ ๋‹ค์Œ ์ž‘์—…์˜ ์ž…๋ ฅ๊ฐ’์„ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” spooling(simultaneous peripheral operations online)์„ ์ œ๊ณต

I/O controller memory๋ฅผ ์ด์šฉํ•ด์„œ ๋‹ค์Œ์˜ ์ž‘์—…๋“ค์ด ์ด๋ฃจ์–ด์ง„๋‹ค.
์–ด๋–ค ๋””๋ฐ”์ด์Šค๋“  ๊ณตํ†ต์ ์œผ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ธฐ๋Šฅ๋“ค์€ General device-driver interface๋ฅผ ํ†ตํ•ด ์ œ๊ณต๋œ๋‹ค.
๊ฐ ๋””๋ฐ”์ด์Šค๋งˆ๋‹ค ๋”ฐ๋กœ ์ ์šฉ๋˜๋Š” Device program์ด ์กด์žฌํ•œ๋‹ค.

Protection and Security

  • Protection : ์ ‘๊ทผ ์ œ์–ด (controlling access)
  • Security : ์™ธ๋ถ€์ ์ธ ๋””๋„์Šค,๋ฐ”์ด๋Ÿฌ์Šค ๋“ฑ์˜ ๊ณต๊ฒฉ์„ ๋ง‰๋Š” ์ž‘์—…

์‚ฌ์šฉ์ž์˜ ID๋ฅผ ๋ถ€์—ฌํ•ด์„œ ๋ณด์•ˆ์„ฑ์„ ๊ฐ€์ ธ์˜ค๊ณ  ID์— ๋”ฐ๋ผ์„œ ํŒŒ์ผ ๋“ฑ์ด ์ ‘๊ทผ์ œ์–ด๊ฐ€ ๋˜๋„๋ก ํ•œ๋‹ค.
Groupid : set of user๋ฅผ ํ•œ๋ฒˆ์— ๊ด€๋ฆฌํ•  ๋•Œ Group id๋ฅผ ๋งŒ๋“ค์–ด ์ œ์–ดํ•œ๋‹ค.
Escalation : ๊ถŒํ•œ์„ ๋†’์—ฌ์ฃผ๋Š” ๊ฒฝ์šฐ

Computing Environment

  1. timesharing, portal, modem๋“ฑ์˜ ์ „ํ†ต์  ๋ฐฉ์‹
  2. Client-Server : ์„œ๋น„์Šค ์ œ๊ณต์ž๊ฐ€ Server๋กœ ์ •ํ•ด์ ธ์žˆ๊ณ  ์ œ๊ณต๋ฐ›๋Š” ์ž๊ฐ€ Client๋กœ ์ •ํ•ด์ ธ์žˆ๋‹ค.
  3. P2P : ์ผ์ข…์˜ ๋ถ„์‚ฐ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ ๋ชจ๋ธ๋กœ "๋™๋“ฑํ•œ" ์ปดํ“จํ„ฐ๋ผ๋ฆฌ ๋„คํŠธ์›Œํฌ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์„œ๋น„์Šค ์ œ๊ณต์ž, ์ œ๊ณต๋ฐ›๋Š”์ž๊ฐ€ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค.
    ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์„œ๋น„์Šค ์ œ๊ณต์ž, ์ œ๊ณต๋ฐ›๋Š”์ž๊ฐ€ ๋˜๋ ค๋ฉด ๊ฐ ์ปดํ“จํ„ฐ๊ฐ€ ์–ด๋– ํ•œ ๊ฒƒ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ ์„œ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์•ผํ•˜๋Š”๋ฐ central lookup service๋กœ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ๋ถˆ๋ฒ•์ด๋‹ค.
    ๋”ฐ๋ผ์„œ, ์ผ์ผ์ด ํ•˜๋‚˜์”ฉ ๋‹ค ๋ฌผ์–ด๋ณด๊ณ  ๋‹ค๋‹ˆ๋Š” Discovery protocol์„ ์‚ฌ์šฉํ•œ๋‹ค.
  • WEB-Based Computing
    ํ•œ์ชฝ์— ํŠธ๋ž˜ํ”ฝ์ด ๋งŽ์ด ๋ชฐ๋ฆด ์ˆ˜ ์žˆ๋Š”๋ฐ load balancer๋ฅผ ํ†ตํ•ด์„œ ํŠธ๋ž˜ํ”ฝ์„ ์ œ์–ดํ•œ๋‹ค.

  • Cloud Computing
    ํ•„์š”ํ•  ๋•Œ ์–ด๋””์„œ๋‚˜ ๋„คํŠธ์›Œํฌ ์—ฐ๋™์ด ๋˜์–ด์žˆ์œผ๋ฉด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•œ๋‹ค.
    network๋ฅผ ํ†ตํ•ด์„œ ๊ณต์œ ํ•˜๊ณ  ์žˆ๋Š” ์ž์›์— ์ ‘๊ทผํ•˜๊ณ  ํ•„์š”ํ•œ๋งŒํผ on-demandํ˜•ํƒœ๋กœ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.(Saas, Paas, Iaas)


์ •๋ฆฌ

์—ฌ๊ธฐ๊นŒ์ง€, OS์— ๋Œ€ํ•ด์„œ ์ „๋ฐ˜์ ์œผ๋กœ ์•Œ์•„๋ณด์•˜๋‹ค.
OS๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์šฐ์„  Computer System์„ ์ดํ•ดํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ ๋™์ž‘๋ฐฉ์‹์— ๋Œ€ํ•ด์„œ ๋จผ์ € ์„ค๋ช…ํ•˜์˜€๋‹ค.
๋‹ค์Œ์œผ๋กœ Computer System์—์„œ์˜ ๋™์ž‘์—์„œ OS๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ๋“ค์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋ฉฐ OS๋ฅผ ํ›‘์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

๋‹ค์Œ๋ถ€ํ„ฐ๋Š”, ํ•˜๋‚˜ํ•˜๋‚˜์”ฉ ๋””ํ…Œ์ผํ•˜๊ฒŒ OS์— ๋Œ€ํ•ด์„œ ๋” ๊นŠ์ด์žˆ๋Š” ๋‚ด์šฉ์œผ๋กœ ์•Œ์•„๋ณด์ž!

๋‹ค์Œ๊ธ€์€ Operating-System์˜ ๊ตฌ์กฐ์— ๋Œ€ํ•ด์„œ ์ž์„ธํžˆ ์•Œ์•„๋ณผ ์˜ˆ์ •์ด๋‹ค

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