Odds and Ends

์šด์˜์ฒด์ œ ๊ต์•ˆ Chap02 ์ปดํ“จํ„ฐ ๊ตฌ์กฐ ๋ณธ๋ฌธ

์šด์˜์ฒด์ œ

์šด์˜์ฒด์ œ ๊ต์•ˆ Chap02 ์ปดํ“จํ„ฐ ๊ตฌ์กฐ

Squidward 2022. 10. 9. 21:43

๐Ÿ“Œ ํ˜„๋Œ€์˜ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ

๐Ÿ“Œ ํฐ๋…ธ์ด๋งŒ ์ปดํ“จํ„ฐ

: ํ˜„๋Œ€ ์ปดํ“จํ„ฐ์˜ ์ผ๋ฐ˜์  ๋ชจํ˜•

> ํ”„๋กœ๊ทธ๋žจ ์ €์žฅ ์ปดํ“จํ„ฐ ๊ฐœ๋…์„ ์ œ์•ˆํ•จ :

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

 

1) ํ•˜๋“œ ๋””์Šคํฌ > 2) ๋ฉ”์ธ๋ฉ”๋ชจ๋ฆฌ ๋กœ๋“œ > 3) ํ•œ์ค„์”ฉ ๊ธฐ๊ณ„์–ด ์ฝ”๋“œ๋ฅผ CPU์— ๊ฐ€์ ธ๊ฐ€ ์‹คํ–‰

 

๐Ÿ“Œ ํฐ ๋…ธ์ด๋งŒ ๋ช…๋ น์–ด ์‹คํ–‰ ์‚ฌ์ดํด : 1. ๋ช…๋ น์–ด ๊ฐ€์ ธ์˜ค๊ธฐ 2. ๋ช…๋ น์–ด ์‹คํ–‰ํ•˜๊ธฐ 3. ์ธํ„ฐ๋ŸฝํŠธ ์ฒดํฌ

 

๐Ÿ“Œ ์ปดํ“จํ„ฐ ํŠน์ง•

- I/O ๋””๋ฐ”์ด์Šค์™€ CPU ๋™์‹œ ์‹คํ–‰ ๊ฐ€๋Šฅ

- ์žฅ์น˜ ์ปจํŠธ๋กค๋Ÿฌ๋Š” ํŠน์ • ์žฅ์น˜ ์œ ํ˜• ๋‹ด๋‹น

- ๊ฐ ์žฅ์น˜ ์ปจํŠธ๋กค๋Ÿฌ์—๋Š” ๋กœ์ปฌ ๋ฒ„ํผ ์กด์žฌ

- CPU๊ฐ€ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋กœ์ปฌ ๋ฒ„ํผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ด๋™

- I/O๋Š” ์žฅ์น˜์—์„œ ์ปจํŠธ๋กค๋Ÿฌ์˜ ๋กœ์ปฌ ๋ฒ„ํผ๋กœ ์ด๋™

- ๋””๋ฐ”์ด์Šค ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ CPU์— ์ž‘์—…์„ ์™„๋ฃŒํ–ˆ์Œ์„ ์•Œ๋ฆผ โ˜…โ˜…

 

- ์ธํ„ฐ๋ŸฝํŠธ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋ชจ๋“  ์„œ๋น„์Šค ๋ฃจํ‹ด์˜ ์ฃผ์†Œ๋ฅผ ํฌํ•จํ•˜๋Š” '์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ'๋ฅผ ํ†ตํ•ด ์ธํ„ฐ๋ŸฝํŠธ ์„œ๋น„์Šค ๋ฃจํ‹ด์œผ๋กœ ์ œ์–ด๋ฅผ ์ „์†ก

- ์ธํ„ฐ๋ŸฝํŠธ ์•„ํ‚คํ…์ฒ˜๋Š” ์ธํ„ฐ๋ŸฝํŠธ๋œ ๋ช…๋ น์˜ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•ด์•ผํ•œ๋‹ค.

- ์ˆ˜์‹ ๋œ ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ์†์‹ค๋˜์ง€ ์•Š๋„๋ก, ๋‹ค๋ฅธ ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ๋˜๋Š” ๋™์•ˆ ์ˆ˜์‹  ์ธํ„ฐ๋ŸฝํŠธ ๋น„ํ™œ์„ฑํ™”

- 'ํŠธ๋žฉ'์€ ์˜ค๋ฅ˜ or ์‚ฌ์šฉ์ž ์š”์ฒญ์— ์˜ํ•ด ๋ฐœ์ƒํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์ƒ์„ฑ '์ธํ„ฐ๋ŸฝํŠธ'์ด๋‹ค.

- OS๋Š” ์ธํ„ฐ๋ŸฝํŠธ ์ค‘์‹ฌ์ด๋‹ค.

 

๐Ÿ“Œ CPU๊ฐ€ ์‚ฌ๊ฑด ๋ฐœ์ƒ์„ ์ธ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ• 2๊ฐ€์ง€

1) ํด๋ง: ํŠน์ • ์ฃผ๊ธฐ๋งˆ๋‹ค ์Šค๋ ˆ๋“œ๋ฅผ ๋Œ๋ฉฐ ์‹ ํ˜ธ๊ฐ€ ์™”๋Š”์ง€ ํ™•์ธ (์†Œํ”„ํŠธ์›จ์–ด์ )

> ๊ณ„์† ํ™•์ธํ•ด์„œ ๋ฆฌ์†Œ์Šค ๋งŽ์ด ๋จน๊ณ , ํŠน์ • ์ฃผ๊ธฐ๋งˆ๋‹ค ํ™•์ธํ•ด ์ •ํ™•ํ•œ ํƒ€์ด๋ฐ์— ์‹œ๊ทธ๋„์„ ํ™•์ธํ•˜์ง€ ๋ชปํ•ด ์ฃผ๊ธฐ์— ๋”ฐ๋ฅธ ์˜ค์ฐจ ์žˆ์Œ. 

> ์žฅ์  : ๊ตฌํ˜„ ์‰ฝ๊ณ  ์šฐ์„ ์ˆœ์œ„ ๋ณ€๊ฒฝ ์šฉ์ด

 

2) ์ธํ„ฐ๋ŸฝํŠธ: ์‹ ํ˜ธ ์‚ฌ์šฉ. ์ธํ„ฐ๋ŸฝํŠธ ๋ฐœ์ƒ ์‹œ CPU์— ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ด ์•Œ๋ ค์คŒ (ํ•˜๋“œ์›จ์–ด์ )

> ์ธํ„ฐ๋ŸฝํŠธ ๋ฐœ์ƒ ์‹œ์—๋งŒ ์ฒ˜๋ฆฌํ•˜์—ฌ ์‹œ์Šคํ…œ ๋ถ€ํ•˜ ์ ์Œ. 

> ๊ตฌํ˜„ ๋ณต์žก, but ์ •ํ™•ํ•œ ํƒ€์ด๋ฐ ์•Œ์•„ ๋ฐ˜์‘ ์‹œ๊ฐ„ ๋น ๋ฆ„

 

โ˜… ์ธํ„ฐ๋ŸฝํŠธ ์‹œํ€€์Šค

: ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ > ์ธํ„ฐ๋ŸฝํŠธ ์š”์ฒญ > ํ”„๋กœ๊ทธ๋žจ ์ค‘๋‹จ(์ˆ˜ํ–‰์ค‘์ธ ๋ช…๋ น ์™„๋ฃŒํ•˜๊ณ  PC,SR ์ €์žฅ) > ์ธํ„ฐ๋ŸฝํŠธ ์„œ๋น„์Šค ๋ฃจํ‹ด ์ฒ˜๋ฆฌ (์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ฃผ์†Œ ์ ‘๊ทผ) > ํ”„๋กœ๊ทธ๋žจ ์žฌ์‹œ์ž‘ (ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ๋ฅผ ํ†ตํ•˜์—ฌ ์ ‘๊ทผ)

 

๐Ÿ“Œ ์ธํ„ฐ๋ŸฝํŠธ์˜ ์ข…๋ฅ˜

  • ํ•˜๋“œ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ(์™ธ๋ถ€) : ์ผ๋ฐ˜์ ์œผ๋กœ ๋งํ•˜๋Š” ์ธํ„ฐ๋ŸฝํŠธ, ๋น„๋™๊ธฐ์‹
  • ์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ(๋‚ด๋ถ€) : ํŠธ๋žฉ์ด๋ผ๊ณ ๋„ํ•˜๋ฉฐ, ์˜ˆ์™ธ์™€ ์‹œ์Šคํ…œ ์ฝœ์ด ์žˆ๋‹ค. 

โ˜… ์˜ˆ์™ธ : ๋ฉ”๋ชจ๋ฆฌ ์ฐธ์กฐ ์˜ค๋ฅ˜, 0์œผ๋กœ ๋‚˜๋ˆ„๊ธฐ, Overflow, Underflow ๋“ฑ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ธํ„ฐ๋ŸฝํŠธ

โ˜… ์‹œ์Šคํ…œ ์ฝœ : ์‚ฌ์šฉ์ž๊ฐ€ ์˜๋„์ ์œผ๋กœ ์ผ์œผํ‚จ ์ธํ„ฐ๋ŸฝํŠธ

 


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

๐Ÿ“Œ  ์ž…์ถœ๋ ฅ ๊ณผ์ •

  1. CPU๊ฐ€ ์žฅ์น˜ ์ œ์–ด๊ธฐ์˜ ๋ ˆ์ง€์Šคํ„ฐ์— ์›ํ•˜๋Š” ๋ช…๋ น์–ด ์ ์žฌ
  2. ์žฅ์น˜ ์ œ์–ด๊ธฐ๊ฐ€ ๋™์ž‘ ๊ฒฐ์ •
  3. ์žฅ์น˜ ์ œ์–ด๊ธฐ ์ž๋ฃŒ ์ „์†ก : ์žฅ์น˜ > ๋กœ์ปฌ๋ฒ„ํผ (read ๊ฒฝ์šฐ)
  4. read ์™„๋ฃŒ ํ†ต๋ณด (์ธํ„ฐ๋ŸฝํŠธ!)
  5. CPU๊ฐ€ ์ž๋ฃŒ๋ฅผ ์žฅ์น˜์ œ์–ด๊ธฐ์˜ ๋กœ์ปฌ๋ฒ„ํผ๋กœ๋ถ€ํ„ฐ ๊ฐ€์ ธ์˜ด

 

๐Ÿ“Œ Synchronous(๋™๊ธฐ, ์ฐจ๋ก€๋กœ) VS Asynchronous(๋น„๋™๊ธฐ, ๋™๊ธฐ)

 

 * Synchronous

  : ์ž…์ถœ๋ ฅ์ด ๋‹ค ๋๋‚˜์•ผ control ๋Œ์•„์˜ด

  • ๋‹ค์Œ ์ธํ„ฐ๋ŸฝํŠธ ๋ฐœ์ƒ๊นŒ์ง€ CPU ์œ ํœด ์ƒํƒœ

 * Asynchronous

  : ์ž…์ถœ๋ ฅ ๋๋‚˜๊ธธ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  control์ด ๋Œ์•„์˜ด

  • ์ƒํƒœ ํ…Œ์ด๋ธ”์— ๊ฐ ์ž…์ถœ๋ ฅ ์žฅ์น˜ ์œ ํ˜•/์ฃผ์†Œ/์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ•ญ๋ชฉ ์žˆ์Œ
  • I/O ์žฅ์น˜ ํ…Œ์ด๋ธ”์— ์ธ๋ฑ์‹ฑํ•˜์—ฌ ์žฅ์น˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๊ณ , ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ํฌํ•จํ•˜๋„๋ก ํ…Œ์ด๋ธ” ํ•ญ๋ชฉ ์ˆ˜์ •

 

๐Ÿ“Œ DMA Structure

  •  ๋ฉ”๋ชจ๋ฆฌ ์†๋„์— ๊ฐ€๊นŒ์šด ์†๋„๋กœ ์ •๋ณด๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๋Š” ๊ณ ์† ์ž…์ถœ๋ ฅ ์žฅ์น˜์— ์‚ฌ์šฉ๋จ
  • ์žฅ์น˜ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ๋ฒ„ํผ ์ €์žฅ์†Œ์˜ ๋ฐ์ดํ„ฐ ๋ธ”๋ก์„ CPU ์—†์ด ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ๋กœ ์ง์ ‘ ์ „์†กํ•œ๋‹ค.

    โ˜… DMA(์ง์ ‘ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ) : ๋กœ์ปฌ ๋ฒ„ํผ์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋กœ ์ฝ์–ด์˜ค๋Š” ์ž‘์—…์„ CPU ์—†์ด ํ•˜๋Š” ๊ฒƒ

 

๐Ÿ“Œ Cycle Stealing

  • DMA ์ „์†ก์‹œ๊ฐ„ ์ค‘์— CPU์™€ Memory๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ƒํ˜ธ ์ „์†กํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ, CPU์˜ ๋ฒ„์Šค๋Š” HOLD ์ƒํƒœ์— ์žˆ๊ฒŒ๋จ
  • CPU ๋™์ž‘ ์‹œ ๋ฉ”๋ชจ๋ฆฌ์™€ ๊ด€๊ณ„ ์—†๋Š” cycle์—๋งŒ DMA ์ˆ˜ํ–‰

 

๐Ÿ“Œ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ

  • CPU๊ฐ€ ์ง์ ‘ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€์šฉ๋Ÿ‰ ์ €์žฅ ๋ฏธ๋””์–ด๋งŒ ํ•ด๋‹น
  • memory- mapped I/O : CPU์˜ ์ž…์ถœ๋ ฅ ์žฅ์น˜ ์ ‘๊ทผ ์‹œ, ์ž…์ถœ๋ ฅ๊ณผ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ฃผ์†Œ ๊ณต๊ฐ„์„ ๋ถ„๋ฆฌํ•˜์ง€ ์•Š๊ณ  ํ•˜๋‚˜์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ์ทจ๊ธ‰ํ•˜์—ฌ ๋ฐฐ์น˜ํ•˜๋Š” ๋ฐฉ์‹, ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์˜ ์ผ์ • ๋ฒ”์œ„๋ฅผ ์žฅ์น˜ ๋ ˆ์ง€์Šคํ„ฐ๋กœ ์—ฐ๊ณ„์‹œํ‚ด
  • ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์™€ CPU ๊ฐ„์˜ ํฐ ์†๋„ ์ฐจ > CPU stall > ๋‘˜ ์‚ฌ์ด์— ๊ณ ์†์˜ ๋ฉ”๋ชจ๋ฆฌ ๋ฒ„ํผ ์‚ฌ์šฉ (Cache)

๐Ÿ“Œ Secondary Storage

โ€“ ๋Œ€์šฉ๋Ÿ‰ ๋น„ํœ˜๋ฐœ์„ฑ ์ €์žฅ ์šฉ๋Ÿ‰์„ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋ณธ ๋ฉ”๋ชจ๋ฆฌ์˜ ํ™•์žฅ
โ€“ ์ž๊ธฐ ๋””์Šคํฌ
โ€ข ์ž๊ธฐ ๊ธฐ๋ก ์žฌ๋ฃŒ๋กœ ๋ฎ์ธ ๋‹จ๋‹จํ•œ ๊ธˆ์† ๋˜๋Š” ์œ ๋ฆฌ ํ”Œ๋ž˜ํ„ฐ
โ€ข ์‹ค๋ฆฐ๋”,ํŠธ๋ž™, ์„นํ„ฐ, ์ธก๋ฉด->50ํŒŒ์šด๋“œ
โ€ข ํ˜ธ์ŠคํŠธ ์ปจํŠธ๋กค๋Ÿฌ(์ปดํ“จํ„ฐ), ๋””์Šคํฌ ์ปจํŠธ๋กค๋Ÿฌ(ํ•˜๋“œ๋””์Šคํฌ)
โ€“ ์ž๊ธฐ ํ…Œ์ดํ”„

ํ•˜๋“œ ๋””์Šคํฌ ๊ตฌ์กฐ

๐Ÿ“Œ Disk Access Time

: ์›ํ•˜๋Š” ์„นํ„ฐ๊นŒ์ง€ ๊ฐ€๋Š” ์‹œ๊ฐ„

 

โ˜… Access Time

= Seek Time(์‹ค๋ฆฐ๋”์— ํ—ค๋“œ ์œ„์น˜์‹œํ‚ค๋Š” ์‹œ๊ฐ„) + Rotatioinal Latency(ํšŒ์ „ ์ง€์—ฐ ์‹œ๊ฐ„) + Transfer Time(์„นํ„ฐ์—์„œ ์ฝ๋Š” ์‹œ๊ฐ„)

728x90