๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
HYU/์šด์˜์ฒด์ œ(OS)

1. Computer System Overview (1)

by Jaeguk 2023. 3. 20.

์šด์˜ ์ฒด์ œ๋ฅผ ๋ฐฐ์šฐ๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋จผ์ € ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์ด ๋™์ž‘ํ•˜๋Š” ๋ฐฉ์‹์„ ์ดํ•ดํ•ด์•ผ ํ•œ๋‹ค.

์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์˜ ๊ธฐ๋ณธ Components๋“ค

  • Processor(CPU)
  • Main Memory

    => ํœ˜๋ฐœ์„ฑ ๋ฉ”๋ชจ๋ฆฌ์ด์ง€๋งŒ ๋น ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ ๊ธฐ์–ต์žฅ์น˜๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

  • System bus 

    => CPU, ๋ฉ”๋ชจ๋ฆฌ, I/O ๋ชจ๋“ˆ๋“ค์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ํ†ต๋กœ ์—ญํ• ์„ ํ•œ๋‹ค.

  • I/O modules

    => ์ž…์ถœ๋ ฅ ์žฅ์น˜

 

 

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

ํ”„๋กœ์„ธ์„œ(CPU)์•ˆ์—๋Š” ๋ ˆ์ง€์Šคํ„ฐ๋ผ๋Š” ๋งค์šฐ ์ž‘๊ณ  ๋น ๋ฅธ ์ €์žฅ์žฅ์น˜๊ฐ€ ์žˆ๋‹ค.

๋ ˆ์ง€์Šคํ„ฐ์˜ ์ข…๋ฅ˜๋Š” ํฌ๊ฒŒ 3๊ฐ€์ง€๋กœ ๋‚˜๋‰œ๋‹ค.

1. Register for 'data' I/O ( ๋ฐ์ดํ„ฐ ์ž…์ถœ๋ ฅ์„ ์œ„ํ•œ ๋ ˆ์ง€์Šคํ„ฐ )

๋”๋ณด๊ธฐ

Memory address register(MAR)

: CPU๊ฐ€ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜ฌ ๋•Œ ์–ด๋А ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์•ผ ํ•˜๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ฃผ์†Œ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ. ๋ฐ˜๋Œ€๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•  ๋•Œ์—๋„ ์ €์žฅํ•  ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์˜ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•˜๊ธฐ๋„ ํ•œ๋‹ค.

Memory buffer register(MBR)

: ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ฝ์–ด์˜จ ๋ฐ์ดํ„ฐ ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•  ๋ฐ์ดํ„ฐ๋ฅผ CPU์•ˆ์—์„œ ์ €์žฅ์„ ํ•ด์•ผํ•œ๋‹ค. ๊ทธ๋Ÿฌ๊ธฐ ์œ„ํ•ด์„œ๋Š” CPU๋‚ด์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ €์žฅ๊ณต๊ฐ„์ด ํ•„์š”ํ•œ๋ฐ ๊ทธ๊ฑธ ์šฐ๋ฆฌ๋Š” MBR์ด๋ผ๊ณ  ํ•œ๋‹ค.

Load์‹œ 

- ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜ฌ ์ฃผ์†Œ๋ฅผ MAR์— ๋‹ด์•„์„œ LOAD๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด ํ•ด๋‹น ์ฃผ์†Œ์— ์ ‘๊ทผํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜จ ํ›„ ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ MBR์— ์ €์žฅํ•œ๋‹ค.

Store์‹œ

- ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ฃผ์†Œ๋ฅผ MAR์— ๋‹ด๊ณ , ์ €์žฅํ•  ๋ฐ์ดํ„ฐ๋Š” MBR์— ๋‹ด์•„์„œ STORE๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด ํ•ด๋‹น ์ฃผ์†Œ์— ์ ‘๊ทผํ•˜์—ฌ MBR์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค.

I/O address register, I/O buffer register

: ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์•„๋‹Œ I/O ๋””๋ฐ”์ด์Šค์— ์ ‘๊ทผํ•  ๋•Œ MAR, MBR๊ณผ ๊ฐ™์€ ์—ญํ• ์„ ํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ๋“ค์ด๋‹ค.

2. Control and Status registers ( CPU๋ฅผ ์ปจํŠธ๋กคํ•˜๊ณ  ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ )

๋”๋ณด๊ธฐ

CPU๊ฐ€ ์–ด๋–ป๊ฒŒ I/O๋ฅผ ํ• ๊นŒ?
ํฐ๋…ธ์—๋งŒ์— ๋”ฐ๋ฅด๋ฉด CPU๋Š” ๋ฉ”๋ชจ๋ฆฌ address๋งŒ ์•Œ๊ณ  I/O์— ๊ด€ํ•ด์„œ๋Š” ์ „ํ˜€ ๋ชจ๋ฅธ๋‹ค๊ณ  ํ–ˆ๋‹ค.
CPU๋Š” ์‚ฌ์‹ค ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฑฐ์ณ์„œ I/O๋ฅผ ํ•œ๋‹ค.
๋ชจ๋“  I/O ๋””๋ฐ”์ด์Šค๋Š” ๊ทธ ๋””๋ฐ”์ด์Šค๋ฅผ ์ œ์–ดํ•˜๋Š” ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์žˆ๋Š”๋ฐ, ์ปจํŠธ๋กค๋Ÿฌ ์•ˆ์—๋Š” ๋ฒ„ํผ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์žˆ๋‹ค. ๊ทธ ๋ฒ„ํผ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์˜ ํŠน์ • ์ฃผ์†Œ ์˜์—ญ์— ๋งคํ•‘์„ ํ•ด์„œ, CPU๊ฐ€ ๋งคํ•‘๋œ ๋ฉ”๋ชจ๋ฆฌ์— LOADํ•˜๊ฑฐ๋‚˜ STORE๋ฅผ ํ•˜๋ฉด I/O ๋””๋ฐ”์ด์Šค์˜ ๋ฒ„ํผ์™€ ๋งคํ•‘์ด ๋˜์–ด ํ•ด๋‹น I/O ๋””๋ฐ”์ด์Šค์— ๋Œ€ํ•ด LOAD์™€ STOREํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณ€ํ™˜๋˜์–ด ๋™์ž‘ํ•œ๋‹ค.

CPU๋Š” ๊ทธ๋ƒฅ LOAD, STORE๋ฅผ ์‹คํ–‰ํ–ˆ์„ ๋ฟ์ธ๋ฐ, I/O๋ฅผ ํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

CPU์˜ ๋™์ž‘์„ ์ œ์–ดํ•œ๋‹ค๋Š” ๊ฑด?

CPU๊ฐ€ ๋ช…๋ น์–ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ๋ช…๋ น์–ด๋ฅผ ๊ฐ€์ ธ์™€์•ผ ํ•œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋ช…๋ น์–ด๋Š” CPU ์•ˆ์— ๋“ค์–ด์žˆ์ง€ ์•Š๋‹ค.

๋ช…๋ น์–ด๋Š” ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ์— ์žˆ๊ณ , ๊ทธ ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ๋Š” ํ”„๋กœ์„ธ์Šค ํ˜•ํƒœ๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์™€ ์žˆ๋‹ค. ๊ทธ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์™€์žˆ๋Š” ์ฝ”๋“œ(instruction)๋ฅผ CPU๋กœ ๊ฐ€์ ธ์™€์„œ ๊ทธ instruction์„ CPU์•ˆ์—์„œ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
CPU๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ํ”„๋กœ๊ทธ๋žจ์ด ์ €์žฅ๋˜์–ด์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์—์„œ instruction ํ•˜๋‚˜๋ฅผ ๊ฐ€์ ธ์™€์„œ ์‹คํ–‰ํ•˜๊ณ  ๋˜ ๋‹ค์Œ instruction์„ ๊ฐ€์ ธ์™€์„œ ์‹คํ–‰ํ•˜๊ณ  ์ด๊ฒƒ์„ ๋ฐ˜๋ณตํ•˜๋Š” ๊ฒƒ์ด CPU๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

๋”๋ณด๊ธฐ
  • Program Counter (PC)

CPU๊ฐ€ ๋‹ค์Œ์—” ์–ด๋А ๋ช…๋ น์–ด๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š”์ง€๋ฅผ ๊ธฐ์–ตํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค.

์ด๋•Œ CPU๊ฐ€ ๋‹ค์Œ๋ฒˆ์— ๊ฐ€์ ธ์™€์•ผ ํ•  ๋ช…๋ น์–ด๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ๋Š” ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ PC์ด๋‹ค.
๋ช…๋ น์–ด๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ๋‚˜๋ฉด PC์— ์ €์žฅ๋œ ์ฃผ์†Œ๋ฅผ +1 ํ•ด์„œ ๋‹ค์Œ์—” ๊ทธ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ๊ฐ€์ ธ์˜ค๋„๋ก ํ•ด์•ผ ํ•œ๋‹ค.

  • Instruction Register (IR)

: PC๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ฃผ์†Œ๋กœ ๊ฐ€์„œ instruction์„ ํ•˜๋‚˜ ๊ฐ€์ ธ์˜ค๋Š”๋ฐ ๊ฐ€์ ธ์˜จ instruction์„ ์ €์žฅํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ IR์ด๋‹ค.
CPU๋Š” IR์— ์ €์žฅ๋œ instrruction์„ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ๋œ๋‹ค.

  • Program Status Word (PSW)

Condition Codes

: ๊ฐ€์ ธ์˜จ instruction์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์ˆ˜ํ–‰ํ•˜๊ณ  ๋‚œ ๊ฒฐ๊ณผ์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ์ด๋‹ค.
=> ๊ณ„์‚ฐ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฒŒ ์•„๋‹˜!

๋งŒ์•ฝ - (๋นผ๊ธฐ)๋ฅผ ์ˆ˜ํ–‰ํ–ˆ๋‹ค๊ณ  ํ•˜๋ฉด, ๊ฒฐ๊ณผ๋กœ 0์ด ๋‚˜์™”๋Š”์ง€, ์–‘์ˆ˜๊ฐ€ ๋‚˜์™”๋Š”์ง€, ์Œ์ˆ˜๊ฐ€ ๋‚˜์™”๋Š”์ง€ ๋“ฑ์„ ์ €์žฅํ•จ.
=>  CPU ๋‚ด์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์˜ค๋ฅ˜๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฐพ๊ธฐ ์œ„ํ•ด์„œ 

์ปดํ“จํ„ฐ๊ฐ€ ๋น„๊ต ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ๋•Œ์—๋„ ์‚ฌ์šฉ๋จ. ์ปดํ“จํ„ฐ๋Š” ๋น„๊ต ์—ฐ์‚ฐ์„ - ์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•ด์„œ ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, -(๋นผ๊ธฐ)๋ฅผ ์ˆ˜ํ–‰ํ•œ ๊ฒฐ๊ณผ ์Œ์ˆ˜๋ฉด a > b, ์–‘์ˆ˜๋ฉด a < b, 0์ด๋ฉด a = b๋ผ๊ณ  ํŒ๋‹จํ•œ๋‹ค.
์ด๋•Œ - ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•œ ํ›„์— Condition code๋ฅผ ๋ณด๊ณ  ๊ฒฐ๊ณผ๋ฅผ ํŒ๋‹จํ•œ๋‹ค.

Interrupt enable/disable

: Interrupt๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์—†๋Š”์ง€ ํ‘œ์‹œํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ

Supervisor/User mode

3. User-visible registers ( ํ”„๋กœ๊ทธ๋จธ๋“ค์ด ์ ‘๊ทผํ•˜์—ฌ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ๋ ˆ์ง€์Šคํ„ฐ )

๋”๋ณด๊ธฐ

์–ด์…ˆ๋ธ”๋ฆฌ์–ด๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๋ ˆ์ง€์Šคํ„ฐ์— ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.
=> ์™œ ์ด๋Ÿฐ ์ง“์„ ํ•˜๋А๋ƒ?
high-level language๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ž๋™์ ์œผ๋กœ ๊ธฐ๊ณ„์–ด๋กœ ๋ณ€ํ™˜์„ ํ•ด์ฃผ๋Š”๋ฐ, ์‚ฌ๋žŒ์ด ์ง์ ‘ ๊ธฐ๊ณ„์–ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์ตœ์ ํ™” ๋ถ€๋ถ„์—์„œ ์„ฑ๋Šฅ์ด ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค.

์ž์ฃผ ์‹คํ–‰๋˜๋Š” ๋ถ€๋ถ„์˜ ์ฝ”๋“œ๋Š” ์‚ฌ๋žŒ์ด ์ง์ ‘ ์–ด์…ˆ๋ธ”๋ฆฌ์–ด๋กœ ์ฝ”๋”ฉ์„ ํ•ด์„œ ์ตœ์ ํ™”ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋Š”๋ฐ, ๊ทธ๋Ÿด ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

 

Instruction Execution

: CPU๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ณผ์ •

 

ํฌ๊ฒŒ 2๋‹จ๊ณ„๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

1. Processor๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์—์„œ instruction์„ ์ฝ์–ด์˜จ๋‹ค. (Fetch)

๋”๋ณด๊ธฐ

์ด๋•Œ PC๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ฃผ์†Œ์—์„œ Instruction์„ ํ•˜๋‚˜ ์ฝ์–ด์˜จ๋‹ค.

์ฝ์–ด์˜จ ํ›„์— PC๋Š” ๋‹ค์Œ์— ์ˆ˜ํ–‰ํ•  ๋ช…๋ น์„ ๊ฐ€๋ฆฌ์ผœ์•ผ ํ•œ๋‹ค.

์ฝ์–ด์˜จ Instruction์€ Instruction Register์— ์ €์žฅํ•œ๋‹ค.

2. ์ฝ์–ด์˜จ Instruction์„ ์ˆ˜ํ–‰ํ•œ๋‹ค ( IR์— ๋“ค์–ด์žˆ๋Š” Instruction์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. )

์ด 2๋‹จ๊ณ„๋ฅผ ๋ชจ๋“  ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค.

 

Instruction์€ ์–ด๋–ค ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์„๊นŒ?

Instruction์€ Opcode์™€ Address ๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋‰œ๋‹ค.

Opcode: ๋ช…๋ น์–ด์˜ ์ข…๋ฅ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋น„ํŠธ.

0001(1) = Memory์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ AC๋กœ LOADํ•ด๋ผ

0010(2) = AC์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ Memory์— STOREํ•ด๋ผ

0101(5) = Memory์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ AC์— ADDํ•ด๋ผ



Address: Instruction์ด ์ˆ˜ํ–‰๋˜์–ด์•ผ ํ•  Target์ด ์ €์žฅ๋œ ์œ„์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ฃผ์†Œ.

๋งŒ์•ฝ Opcode๊ฐ€ "๋ง์…ˆ" ์ด๋ผ๊ณ  ํ•˜๋ฉด, Address์—๋Š” ๋ง์…ˆ์„ ํ•  ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด์žˆ๋Š” ์ฃผ์†Œ๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ๋‹ค.

 

Instruction์˜ ์ˆ˜ํ–‰ ๊ณผ์ •์˜ ์˜ˆ์‹œ๋ฅผ ์‚ดํŽด๋ณด์ž.

 

Interrupt & Interrupt handler

CPU๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ๋Š” ์™€์ค‘์— ์˜ˆ๊ธฐ์น˜ ์•Š๊ฒŒ I/O ๋””๋ฐ”์ด์Šค์—์„œ ๋ช…๋ น์ด ๋“ค์–ด์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

๋งŒ์•ฝ CPU๊ฐ€ ๋™์˜์ƒ์„ ์‹คํ–‰ํ•˜์—ฌ ๋ณด์—ฌ์ฃผ๋Š” ๋ช…๋ น์–ด(์ฝ”๋“œ)๋ฅผ ์ˆ˜ํ–‰ ์ค‘์ธ๋ฐ, ์‚ฌ์šฉ์ž๊ฐ€ ๋งˆ์šฐ์Šค๋ฅผ ์›€์ง์ธ๋‹ค๋ฉด? ํ‚ค๋ณด๋“œ๋กœ ํ‚ค๋ฅผ ์ž…๋ ฅํ•œ๋‹ค๋ฉด?
ํ˜„์žฌ ํ•˜๊ณ  ์žˆ๋Š” ์ผ์ด ์žˆ๋‹ค๊ณ  ํ•ด์„œ ์ด๋Ÿฌํ•œ ์ž…๋ ฅ์„ ๋ฌด์‹œํ•  ์ˆ˜๋Š” ์—†๋‹ค.

์–ด๋–ค ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ CPU๊ฐ€ ํ•˜๋˜ ์ผ์„ ๋ฉˆ์ถ”๊ณ  ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•œ ํ›„์— ์›๋ž˜ ํ•˜๋˜ ๋ช…๋ น์„ ๋‹ค์‹œ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•˜๋Š” ๋งค์ปค๋‹ˆ์ฆ˜์ด Interrupt ๋ผ๋Š” ๊ฐœ๋…์ด๋‹ค.

์ด๋ ‡๊ฒŒ Interrupt๋Š” ์ž๋ฐœ์ ์œผ๋กœ ๋ฐœ์ƒ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉ๋œ๋‹ค. ์ž๋ฐœ์ ์œผ๋กœ ๋ฐœ์ƒ๋˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ๋Œ€ํ‘œ์ ์œผ๋กœ ๋งˆ์šฐ์Šค, ํ‚ค๋ณด๋“œ๋กœ ์ž…๋ ฅ๋˜๋Š” ๋ฐ์ดํ„ฐ์ด๋‹ค. OS ์ž…์žฅ์—์„œ๋Š” ๋งˆ์šฐ์Šค, ํ‚ค๋ณด๋“œ๋กœ ๋“ค์–ด์˜ค๋Š” ์ž…๋ ฅ์€ ์–ธ์ œ ๋“ค์–ด์˜ฌ์ง€ ๋ชจ๋ฅด๋Š” ์ž๋ฐœ์  ๋ฐ์ดํ„ฐ์ด๋‹ค. Event๊ฐ€ ๋ฐœ์ƒํ–ˆ์Œ์„ Interrupt๋กœ ๊ฐ์ง€ํ•˜๊ณ  Interrupt handler๋ฅผ ํ†ตํ•ด ์ž…๋ ฅ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.

 

์ž๋ฐœ์ ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜ ๊ฒƒ ์™ธ์—๋„ Interrupt๊ฐ€ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋‹ค.

I/O ์žฅ์น˜๋Š” CPU๋ณด๋‹ค ํ›จ์”ฌ ํ›จ์”ฌ ๋” ๋А๋ฆฌ๋‹ค๊ณ  ํ–ˆ๋‹ค.

CPU๊ฐ€ ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ๋ช…๋ น ์ค‘์— "๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์ผ์— ์ €์žฅํ•ด์ค˜" ๋ผ๋Š” ๋ช…๋ น์ด ๋“ค์–ด์™”๋‹ค. CPU๋Š” ์ด ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š”๋ฐ I/O ๋””๋ฐ”์ด์Šค๊ฐ€ ๋งค์šฐ ๋А๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ๋””์Šคํฌ์— ๊ฐ€์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋™์•ˆ CPU๋Š” ์•„๋ฌด๊ฒƒ๋„ ๋ชปํ•˜๊ณ  ๊ธฐ๋‹ค๋ฆฌ๊ธฐ๋งŒ ํ•ด์•ผํ•œ๋‹ค. ์ด๊ฑด ๋น„ํšจ์œจ์ ์ด๋‹ค. ์‹œ์Šคํ…œ์—์„œ CPU๊ฐ€ ๋…ธ๋Š” ๊ฒƒ์€ ํ—ˆ์šฉํ•  ์ˆ˜ ์—†๋‹ค.
์ด๋•Œ Interrupt๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ, CPU๋Š” I/O ๋””๋ฐ”์ด์Šค์— ์ €์žฅํ•˜๋ผ๋Š” ๋ช…๋ น์„ ๋‚ด๋ ค๋†“์€ ๋’ค์— CPU๋Š” ๋งˆ๋ƒฅ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ ์ผ์„ ๊ณ„์†ํ•˜๊ณ  ์žˆ๋Š”๋‹ค. ๊ทธ๋ฆฌ๊ณ  I/O ์žฅ์น˜๋Š” ์ €์žฅ์„ ๋๋‚ด๋ฉด Interrupt๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ์„œ CPU์—๊ฒŒ I/O๊ฐ€ ๋๋‚ฌ์Œ์„ ์•Œ๋ ค์ค€๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด CPU๊ฐ€ ๋†€์ง€ ์•Š๊ณ  ๊ณ„์† ์ผ์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

Interrupt์˜ ์—ญํ• 
1. CPU๊ฐ€ ๋†€์ง€์•Š๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ
2. I/O ์žฅ์น˜๊ฐ€ ๋งŒ๋“ค์–ด๋‚ด๋Š” Event๋ฅผ ์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ

Interrupt Cycle

Interrupts Disabled

: ๋งŒ์•ฝ ์ง€๊ธˆ CPU๊ฐ€ ํ•˜๊ณ  ์žˆ๋Š” ์ผ์ด ๋งค์šฐ ๋งค์šฐ ์ค‘์š”ํ•œ ์ผ์ด๋ผ์„œ ์ ˆ๋Œ€ ์ค‘๋‹จ๋˜์–ด์„œ๋Š” ์•ˆ ๋œ๋‹ค๋ฉด, Interrupt๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค๊ณ  ํ•˜๋”๋ผ๋„ ํ•˜๋˜ ์ผ์„ ๊ณ„์† ์ง„ํ–‰ํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ๋•Œ๋Š” Execute๊ฐ€ ๋๋‚˜๋„ Interrupt๋ฅผ ์ฒดํฌํ•˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ Fetch๋กœ ๋‹ค์‹œ ๋Œ์•„๊ฐ„๋‹ค.

Interrupt๋ฅผ ๋ฐ›์•„๋„ ๋˜๋Š”์ง€ ์•ˆ ๋˜๋Š”์ง€๋Š” ์–ด๋–ป๊ฒŒ ์ฒดํฌํ• ๊นŒ?
์•„๊นŒ ๋ ˆ์ง€์Šคํ„ฐ ์ค‘์— Interrupt Enable, Disable ์—ฌ๋ถ€๋ฅผ ์ €์žฅํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ์žˆ์—ˆ๋‹ค. ์ด ๋ ˆ์ง€์Šคํ„ฐ์— ์ €์žฅ๋œ ๊ฐ’์„ ๋ณด๊ณ  Interrupt๋ฅผ ์ฒดํฌํ• ์ง€ ๋ง์ง€ ๊ฒฐ์ •ํ•œ๋‹ค. 

 

Interrupt๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด Memory์™€ Register์—๋Š” ์–ด๋–ค ๋ณ€ํ™”๊ฐ€ ์ผ์–ด๋‚ ๊นŒ

Interrupt handler๋ฅผ ํ†ตํ•ด Interrupt๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋‚˜๋ฉด ๋‹ค์‹œ ์›๋ž˜ ์ˆ˜ํ–‰์ค‘์ด๋˜ ํ”„๋กœ๊ทธ๋žจ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๊ธฐ ์œ„ํ•ด์„œ๋Š” Interrupt๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์ „์— ์ˆ˜ํ–‰์ค‘์ด๋˜ ํ”„๋กœ๊ทธ๋žจ์˜ ์ •๋ณด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์˜ Stack ๋ถ€๋ถ„์—์— ์ €์žฅํ•ด๋‘”๋‹ค.

PC ๊ฐ’์„ ์ €์žฅํ•˜๊ณ , ๋ ˆ์ง€์Šคํ„ฐ์— ์ €์žฅ๋˜์–ด ์žˆ๋˜ ๊ฐ’๋“ค์„ ์ €์žฅํ•˜๊ณ  Stack Top์„ ๊ฐ€๋ฆฌํ‚ค๋Š” Pointer ์ •๋ณด๋ฅผ ์ €์žฅํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  PC ๊ฐ’์„ Interrupt Handler ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š” y๋กœ ๋ฐ”๊พผ ํ›„ ํ•ธ๋“ค๋Ÿฌ ์ฝ”๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.

ํ•ธ๋“ค๋Ÿฌ๋ฅผ ํ†ตํ•ด Interrupt๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋‚˜๋ฉด ์›๋ž˜ ์ˆ˜ํ–‰ ์ค‘์ด๋˜ ํ”„๋กœ๊ทธ๋žจ์„ ๋‹ค์‹œ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์•„๊นŒ ์ €์žฅํ•ด๋‘์—ˆ๋˜ ์ •๋ณด๋ฅผ ์ด์šฉํ•ด ์›๋ž˜ ์ƒํƒœ๋กœ ๋ณต๊ตฌ์‹œ์ผœ์•ผ ํ•œ๋‹ค.

PC๊ฐ’์„ ์•„๊นŒ ์ €์žฅํ•ด๋‘” PC๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ๋ ˆ์ง€์Šคํ„ฐ์—๋„ ์•„๊นŒ ์ €์žฅํ•ด๋‘” ๋ ˆ์ง€์Šคํ„ฐ ๊ฐ’๋“ค์„ ๋‹ค์‹œ ๋ถˆ๋Ÿฌ์˜ค๊ณ , Stack Top๋„ ์•„๊นŒ์˜ Stack Top์„ ๊ทธ๋Œ€๋กœ ๋ณต๊ตฌํ•œ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด ์ด์ƒ์—†์ด Interrupt๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์ „์— ์ˆ˜ํ–‰ํ•˜๋˜๋Œ€๋กœ ๋‹ค์‹œ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

 

๋งŒ์•ฝ Interrupt๊ฐ€ ์—†์—ˆ๋‹ค๋ฉด ์–ด๋–ค ์ผ์ด ๋ฒŒ์–ด์งˆ๊นŒ?

CPU ์ž…์žฅ์—์„œ ์ผ์˜ ์ˆœ์„œ๋ฅผ ์‚ดํŽด๋ณด๋ฉด 1 -> 4 -> Processor Wait -> 5 -> 2 -> 3

WRITE์™€ ๊ฐ™์€ I/O๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด CPU๋Š” I/O์žฅ์น˜๊ฐ€ ์ผ์„ ๋งˆ์น  ๋•Œ๊นŒ์ง€ ์•„๋ฌด๊ฒƒ๋„ ํ•˜์ง€ ๋ชปํ•˜๋Š” ์ฑ„๋กœ ๊ธฐ๋‹ค๋ ค์•ผ ํ•˜๋Š” ๋น„ํšจ์œจ์ ์ธ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•œ๋‹ค.

 

Interrupt๋ฅผ ์ด์šฉํ•˜๋ฉด?

Interrupt๋ฅผ ์ด์šฉํ•˜๋ฉด I/O ์žฅ์น˜๊ฐ€ ์ผ์„ ํ•˜๋Š” ๋™์•ˆ CPU๋Š” ์›๋ž˜์˜ ์ฝ”๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ๋Š”๋‹ค.

๊ทธ๋Ÿฌ๋‹ค I/O ์žฅ์น˜๊ฐ€ ์ผ์„ ๋งˆ์ณค๋‹ค๊ณ  Interrupt๋ฅผ ๋ณด๋‚ด๋ฉด ๋‹ค์‹œ Interrupt handler ์ฝ”๋“œ์˜ ๋‚จ์€ ๋ถ€๋ถ„์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ ๋˜๋ฉด CPU๊ฐ€ ๋†€์ง€ ์•Š๊ณ  ์ผ์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋ฏ€๋กœ ํ›จ์”ฌ ํšจ์œจ์ ์ด๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์ด ๋ฐฉ๋ฒ•์—๋„ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค.

์•„๊นŒ๋Š” I/O๊ฐ€ ๋‚˜๋ฆ„ ๋นจ๋ฆฌ ๋๋‚˜์„œ ์ƒˆ๋กœ์šด I/O๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์ „์— Interrupt๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”๋ฐ

I/O๊ฐ€ ์—„์ฒญ ์˜ค๋ž˜ ๊ฑธ๋ ค์„œ, I/O๊ฐ€ ๋๋‚˜๊ธฐ ์ „์— ๋‘ ๋ฒˆ์งธ I/O๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด?

๊ทธ๋Ÿฌ๋ฉด ์šฐ๋ฆฌ๋Š” ๋˜ I/O ์žฅ์น˜์—๊ฒŒ ๋ช…๋ น์„ ํ•ด๋‘๊ณ  ๋˜ ๋‹ค๋ฅธ ์ผ์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋˜์ง€ ์•Š๋ƒ? ๋ผ๋Š” ์ƒ๊ฐ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋•Œ I/O ์žฅ์น˜๋Š” ์•„์ง๋„ ์ผ์„ ํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ๋˜ ๋‹ค์‹œ ๋ช…๋ น์„ ์ถ”๊ฐ€๋กœ ์ค€๋‹ค๋ฉด?
๋ช…๋ น์˜ ์ˆœ์„œ๊ฐ€ ์„ž์—ฌ์„œ ์ž˜๋ชป๋œ ๊ฒฐ๊ณผ๋ฅผ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ๋‹ค.
์•„๋‹ˆ ๊ทธ๋Ÿฌ๋ฉด ๋ช…๋ น์„ ์ˆœ์„œ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•˜๋„๋ก ํ•˜๋ฉด ๋˜์ง€ ์•Š๋ƒ??
I/O ์žฅ์น˜๋Š” ๋งค์šฐ ๋А๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ์†๋„๋ฅผ ์กฐ๊ธˆ์ด๋ผ๋„ ์˜ฌ๋ฆฌ๊ธฐ ์œ„ํ•ด ์ตœ์ ํ™” ๊ธฐ์ˆ ์ด ๋“ค์–ด๊ฐ€ ์žˆ๋‹ค. ๋””์Šคํฌ์˜ ํ—ค๋“œ๋Š” ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์›€์ง์ด๊ธฐ ๋•Œ๋ฌธ์— ์†๋„๊ฐ€ ๋งค์šฐ ๋А๋ฆฌ๋‹ค.๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๋ช…๋ น์˜ ์ˆœ์„œ๋ฅผ ๋ฐ”๊ฟ”์„œ ๋””์Šคํฌ์˜ ํ—ค๋“œ๊ฐ€ ์ตœ๋Œ€ํ•œ ๋œ ์›€์ง์ด๋„๋ก ํ•˜๋Š” ๊ธฐ์ˆ ์ด ์ ์šฉ๋˜์–ด ์žˆ๋‹ค. (Disk Scheduling)

=> ์–ด์ฉ” ์ˆ˜ ์—†์ด CPU๋Š” I/O๊ฐ€ ๋๋‚  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผ ํ•จ.

 

Interrupt๊ฐ€ ๋งŒ๋ณ‘ํ†ต์น˜์•ฝ์€ ์•„๋‹ˆ์—ˆ๋‹ค!
๊ทธ๋Ÿผ ์–ด์ฉ” ์ˆ˜ ์—†์ด CPU๊ฐ€ ๋†€๊ฒŒ ๋‘์–ด์•ผ ํ• ๊นŒ? ํ”„๋กœ๊ทธ๋ž˜๋จธ ์ž…์žฅ์—์„œ CPU๊ฐ€ ๋…ธ๋Š” ๊ฒƒ์€ ์ฃ„์•…์ด๋‹ค.

๊ทธ๋ž˜์„œ ๋˜ ๋‹ค๋ฅธ ๋Œ€์•ˆ์„ ์ƒ๊ฐํ•ด๋‚ธ ๊ฒƒ์ด "๋ฉ€ํ‹ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ"์ด๋‹ค.
CPU๊ฐ€ ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ์ด ์•„๋‹Œ ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ์„ ๋™์‹œ์— ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•ด์„œ,

๋งŒ์•ฝ Interrupt๋ฅผ ์‚ฌ์šฉํ•ด๋„ ์–ด์ฉ” ์ˆ˜ ์—†์ด ๊ธฐ๋‹ค๋ ค์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜๋ฉด ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ๊ณผ ์•„๋ฌด ์ƒ๊ด€์—†๋Š” ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋„๋ก ํ•˜๋ฉด ๋œ๋‹ค.

 

long I/O wait๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ, ์–ด์ฉ” ์ˆ˜ ์—†์ด CPU๊ฐ€ ๊ธฐ๋‹ค๋ ค์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜๋ฉด
CPU๊ฐ€ ์ „ํ˜€ ๊ด€๋ จ์ด ์—†๋Š” ์ œ3์˜ ํ”„๋กœ๊ทธ๋žจ์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด Multiprogramming.

๋ฉ”๋ชจ๋ฆฌ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ๋™์‹œ์— ์˜ฌ๋ผ์™€ ์žˆ๋Š” ์ƒํƒœ๊ฐ€ "๋ฉ€ํ‹ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ"
๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์˜จ ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ๋“ค์ด ์‹ค์ œ CPU๋ฅผ ๋ฒˆ๊ฐˆ์•„ ์“ฐ๋ฉฐ ๋Œ์•„๊ฐ€๊ณ  ์žˆ์œผ๋ฉด "๋ฉ€ํ‹ฐ ํƒœ์Šคํฌ"

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

 

*๋ชจ๋“  ๋‚ด์šฉ์€ ํ•œ์–‘๋Œ€ํ•™๊ต ๊ฐ•์ˆ˜์šฉ ๊ต์ˆ˜๋‹˜์˜ ๊ฐ•์˜ ๋‚ด์šฉ์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

728x90

'HYU > ์šด์˜์ฒด์ œ(OS)' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

4. CPU Scheduling  (5) 2023.03.24
3. Processes and Threads  (0) 2023.03.23
2. Operating System Overview (2)  (0) 2023.03.23
2. Operating System Overview (1)  (0) 2023.03.22
1. Computer System Overview (2)  (0) 2023.03.20