Search
Duplicate

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

CPU:

โ€ข
clock cycle ๋งˆ๋‹ค ๊ธฐ๊ณ„์–ด๋ฅผ ์ฝ์–ด์„œ ์‹คํ–‰

๋ฉ”๋ชจ๋ฆฌ:

โ€ข
CPU ์˜ ์ž‘์—… ๊ณต๊ฐ„
โ€ข
CPU ๋Š” ๋ฉ”๋ชจ๋ฆฌ์—์„œ instruction(๊ธฐ๊ณ„์–ด) ์ฃผ์†Œ๊ฐ’์„ ์ฝ์–ด์„œ ์‹คํ–‰

ํ•˜๋“œ๋””์Šคํฌ(๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜):

โ€ข
IO device

device controller

โ€ข
ํ—ค๋“œ๊ฐ€ ์–ด๋–ป๊ฒŒ ์›€์ง์ด๊ณ  ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ์ง€ ๊ฒฐ์ •(๋””์Šคํฌ ์ปจํŠธ๋กค๋Ÿฌ)
โ€ข
๊ฐ IO device ๋งˆ๋‹ค ๋ถ™์–ด์žˆ์Œ

local buffer

โ€ข
device controller ์˜ ๋ฉ”๋ชจ๋ฆฌ ์—ญํ• 

register

mode bit

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

timer

โ€ข
ํŠน์ •ํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ CPU ๋ฅผ ๋…์ ํ•˜์ง€ ๋ชปํ•˜๋„๋ก ํ•จ.

DMA(Direct Memory Access) controller

โ€ข
CPU ๋Œ€์‹  memory ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก
โ€ข
IO ๊ฐ€ interrupt ๋ฅผ ๋„ˆ๋ฌด ๋งŽ์ด ๊ฑธ์–ด์„œ CPU ๊ฐ€ ๋ฐฉํ•ด๋ฅผ ๋งŽ์ด ๋ฐ›๋Š”๋‹ค. ์ด๋ฅผ ๋ง‰๊ธฐ ์œ„ํ•ด DMA controller ์—์„œ local buffer ์— ๋“ค์–ด์˜จ ๋‚ด์šฉ์„ memory ์— copy ํ•ด์ฃผ๋Š” ์—ญํ• 
โ€ข
block ๋‹จ์œ„๋กœ CPU ์— interrupt ๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค.

device driver

โ€ข
OS ์ฝ”๋“œ ์ค‘ ๊ฐ ์žฅ์น˜๋ณ„ ์ฒ˜๋ฆฌ ๋ฃจํ‹ด โ†’ software

์ž…์ถœ๋ ฅ ์ˆ˜ํ–‰

โ€ข
๋ชจ๋“  ์ž…์ถœ๋ ฅ ๋ช…๋ น์€ ํŠน๊ถŒ ๋ช…๋ น
โ€ข
์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์ด IO ๋ฅผ ํ•˜๋Š” ๋ฐฉ๋ฒ•
โ—ฆ
system call: ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์ด ์šด์˜์ฒด์ œ์—๊ฒŒ io ์š”์ฒญ
โ—ฆ
์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์ด ์ง์ ‘ CPU ์—๊ฒŒ interrupt ๋ฅผ ๊ฑธ๋ฉด mode bit ์ด 0์œผ๋กœ ๋ฐ”๋€Œ๊ณ  os ๋กœ CPU ์ œ์–ด๊ถŒ์ด ๋ฐ”๋€œ
โ—ฆ
์ด๋ฅผ ์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ, trap ์ด๋ผ๊ณ  ํ•œ๋‹ค.

๋™๊ธฐ, ๋น„๋™๊ธฐ ์ž…์ถœ๋ ฅ

sync: ์‹œ๊ฐ„์ ์œผ๋กœ ์„œ๋กœ ๋งž์ถ”๋Š” ๊ฒƒ(lip sync)
โ€ข
๋™๊ธฐ์‹ ์ž…์ถœ๋ ฅ
โ—ฆ
IO ์žฅ์น˜๊นŒ์ง€ ์ง์ ‘ ๊ฐ€์„œ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ  ์˜ค๋Š” ๊ฒƒ
โ—ฆ
IO ์š”์ฒญ ํ›„ ์ž…์ถœ๋ ฅ ์ž‘์—…์ด ์™„๋ฃŒ๋œ ํ›„์—์•ผ ์ œ์–ด๊ฐ€ ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์— ๋„˜์–ด๊ฐ
โ—ฆ
๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ  ์ž‘์—…์„ ํ•ด์•ผํ•จ
โ€ข
๋น„๋™๊ธฐ์‹ ์ž…์ถœ๋ ฅ
โ—ฆ
IO ์š”์ฒญ ํ›„ ์ž…์ถœ๋ ฅ ์ž‘์—…์ด ๋๋‚˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ์ œ์–ด๊ฐ€ ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์— ์ฆ‰์‹œ ๋„˜์–ด๊ฐ
โ—ฆ
์ฝ์–ด์˜ฌ ๋ฐ์ดํ„ฐ์™€ ์ƒ๊ด€์—†๋Š” ์ž‘์—…์„ ํ•ด์•ผํ•จ
โ€ข
๋‘ ๊ฒฝ์šฐ ๋ชจ๋‘ IO ์™„๋ฃŒ๋Š” IO device controller ๊ฐ€ interrupt ๋กœ ์•Œ๋ ค์คŒ
IO ์ž‘์—…์€ ๋ฐ˜๋“œ์‹œ ์ปค๋„์—๊ฒŒ ์š”์ฒญํ•ด์•ผ ํ•จ(์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์ด ์ง์ ‘ ๋ถˆ๊ฐ€)
ํ”„๋กœ์„ธ์Šค๊ฐ€ IO ์š”์ฒญ์„ ํ•œ ๋’ค CPU ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋˜, ์•ˆ๊ฐ€์ง€๊ณ  ์žˆ๋˜ instruction ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ๋น„๋™๊ธฐ, ์—†์œผ๋ฉด ๋™๊ธฐ

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

Main Memory

โ€ข
DRAM ์œผ๋กœ ๊ตฌ์„ฑ

Primary

โ€ข
volatility(ํœ˜๋ฐœ์„ฑ)
โ€ข
CPU ์—์„œ ์ง์ ‘ ์ ‘๊ทผ ๊ฐ€๋Šฅ
โ€ข
๋ฐ”์ดํŠธ ๋‹จ์œ„๋ผ์„œ CPU ์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅ

Secondary

โ€ข
๋น„ํœ˜๋ฐœ์„ฑ
โ€ข
CPU ์—์„œ ์ง์ ‘ ์ ‘๊ทผ ๊ฐ€๋Šฅ
caching ์˜ ๋ชฉ์ ์€ ์žฌ์‚ฌ์šฉ๊ณผ ํšจ์œจ์„ฑ

ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰(๋ฉ”๋ชจ๋ฆฌ load)

โ€ข
์‹คํ–‰ ํŒŒ์ผ์ด file system ์— ์ €์žฅ๋˜์–ด ์žˆ์Œ
โ€ข
์‹คํ–‰ ํŒŒ์ผ์„ ์‹คํ–‰์‹œํ‚ค๋ฉด memory ์— ์˜ฌ๋ผ๊ฐ€์„œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋จ
โ€ข
์‹ค์ œ๋กœ๋Š” file system โ†’ memory ๊ฐ€ ์•„๋‹ˆ๋ผ ์ค‘๊ฐ„์— virtual memory ๋ฅผ ๊ฑฐ์นจ
โ€ข
์‹คํ–‰ ํŒŒ์ผ์„ ์‹คํ–‰์‹œํ‚ค๋ฉด ํ”„๋กœ๊ทธ๋žจ์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๊ณต๊ฐ„์ด ํ˜•์„ฑ์ด ๋จ
โ—ฆ
code: CPU ๊ฐ€ ์‹คํ–‰์‹œํ‚ฌ ๊ธฐ๊ณ„์–ด ์ฝ”๋“œ
โ—ฆ
data: ์ „์—ญ ๋ณ€์ˆ˜ ๋“ฑ ํ”„๋กœ๊ทธ๋žจ์ด ์‚ฌ์šฉํ•  ์ž๋ฃŒ ๊ตฌ์กฐ
โ—ฆ
stack: ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๊ฑฐ๋‚˜ ๋ฆฌํ„ดํ•  ๋•Œ ์Œ“์„ ๋ฐ์ดํ„ฐ
โ€ข
๋‹น์žฅ ํ•„์š”ํ•œ ๋ถ€๋ถ„(ํ•จ์ˆ˜, ์ฝ”๋“œ ๋“ฑ)๋งŒ ์‹ค์ œ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆผ
โ€ข
swap area ๋Š” ํ•˜๋“œ๋””์Šคํฌ์ž„์—๋„ ๋ฐ์ดํ„ฐ ์˜์† X, ํœ˜๋ฐœ๋จ

์ปค๋„ ์ฃผ์†Œ ๊ณต๊ฐ„

์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์ด ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜

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

ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰