Skip to content

Latest commit

ย 

History

History
266 lines (138 loc) ยท 11.3 KB

Virtual_Memory.md

File metadata and controls

266 lines (138 loc) ยท 11.3 KB

๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ

๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ๋ž€

๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ์˜ ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜์˜จ ๊ธฐ์ˆ 
ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” ๋””์Šคํฌ์— ๋‘๋Š” ๊ฒƒ

  • ex) segmentation, paging

Demanding Paging(์š”๊ตฌ ํŽ˜์ด์ง•)

ํ•„์š”ํ•œ ํŽ˜์ด์ง€๋งŒ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฌ๋Š” ๊ฒƒ

  • I/O ์–‘์˜ ๊ฐ์†Œ
  • Memory ์‚ฌ์šฉ๋Ÿ‰ ๊ฐ์†Œ
  • ๋น ๋ฅธ ์‘๋‹ต ์‹œ๊ฐ„
  • ๋” ๋งŽ์€ ์‚ฌ์šฉ์ž ์ˆ˜์šฉ

demand paging์˜ page table์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์š”์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

frame number, vaild bit

  • vaild-invaild bit

Invalid

  • ์‚ฌ์šฉ๋˜์ง€ ์•Š์€ ์ฃผ์†Œ ์˜์—ญ์ธ ๊ฒฝ์šฐ
  • ํŽ˜์ด์ง€๊ฐ€ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์— ์—†๋Š” ๊ฒฝ์šฐ ์ฒ˜์Œ์—๋Š” ๋ชจ๋“  page entry๊ฐ€ invalid๋กœ ์ดˆ๊ธฐํ™” ๋œ๋‹ค.
    ์ฃผ์†Œ ๋ณ€ํ™˜์‹œ์— invalid bit๋กœ set๋˜์–ด ์žˆ๋‹ค๋ฉด page fault ๋ฐœ์ƒ

๋งŒ์•ฝ ํŽ˜์ด์ง€๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์—†๋‹ค๋ฉด?

  • page fault๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

์ฃผ์†Œ๋ณ€ํ™˜ ๊ณผ์ •

    1. TLB์—์„œ page๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.
    1. TLB hit์ธ ๊ฒฝ์šฐ ์ฃผ์†Œ๋ณ€ํ™˜์„ ํ•˜๊ณ  TLB miss์ธ ๊ฒฝ์šฐ page table์„ ํ™•์ธํ•œ๋‹ค.
    1. page table์˜ valid-invalid bit๊ฐ€ vaild์ด๋ผ๋ฉด TLB์— page table์„ loadํ•œ๋‹ค. invaild์ด๋ผ๋ฉด page fault ๋ฐœ์ƒ
    1. page fault๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด MMU๊ฐ€ ์šด์˜์ฒด์ œ์— Trap์„ ๋ฐœ์ƒ์‹œํ‚ค๊ณ  ์ปค๋„๋ชจ๋“œ๋กœ ๋“ค์–ด๊ฐ€ ISR์— ์˜ํ•ด page fault handler๊ฐ€ ์ž‘๋™๋œ๋‹ค.
    1. ์œ ํšจํ•˜์ง€ ์•Š์€ ์ฐธ์กฐ์ธ ๊ฒฝ์šฐ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒ์‹œํ‚ค๊ณ  ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด ๋นˆ page frame์— loadํ•œ๋‹ค. ๋นˆ page frame์ด ์—†๋‹ค๋ฉด victim page ๋ฅผ ์„ ํƒํ•˜์—ฌ ๋Œ€์ฒดํ•œ๋‹ค
    • victim page: backing store(disk)๋กœ page out ๋˜๋Š” page
    1. ์šด์˜์ฒด์ œ๋Š” ์ฐธ์กฐ๋œ page๋ฅผ ๋””์Šคํฌ์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๋กœ๋“œ(I/O)ํ•˜๊ณ , disk I/O๊ฐ€ ๋๋‚  ๋•Œ๊นŒ์ง€ ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค๋Š” ์šด์˜์ฒด์ œ์—๊ฒŒ CPU๋ฅผ ๋นผ์•—๊ธด๋‹ค.
    1. disk I/O๊ฐ€ ๋๋‚˜๋ฉด page table์ด ์—…๋ฐ์ดํŠธ ๋˜๊ณ  vaild-invaild bit๊ฐ€ valid๋กœ ๋ฐ”๋€๋‹ค. ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค๋Š” ready queue์— ๋“ค์–ด๊ฐ„๋‹ค.
    1. ํ”„๋กœ์„ธ์Šค์— cpu๊ฐ€ ํ• ๋‹น๋˜๋ฉด ๋‹ค์‹œ ์‹คํ–‰ํ•œ๋‹ค.

Page Replacement Algorithm

  • ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์™€์žˆ๋Š” page๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜

page in: backing store์—์„œ ๋ฉ”๋ชจ๋ฆฌ์— load ์‹œํ‚ค๋Š” ๊ฒƒ
page out: ๋ฉ”๋ชจ๋ฆฌ์—์„œ backing store๋กœ out ์‹œํ‚ค๋Š” ๊ฒƒ

  • page out๋˜๋Š” page๋ฅผ victim page๋กœ ๋ถ€๋ฆ„ page fault rate๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • page fault์‹œ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ํฌ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์ˆ˜์ •๋˜์ง€ ์•Š์€ page๋ฅผ ๊ณ ๋ฅด๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

  • ์ˆ˜์ •๋œ page๋Š” backing store๋กœ page out๋  ๋•Œ write ์—ฐ์‚ฐ์„ ํ•ด์•ผ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

1. OPT(Optimal Algorithm)

๊ฐ€์žฅ ๋จผ ๋ฏธ๋ž˜์— ์ฐธ์กฐ๋˜๋Š” page๋ฅผ ๋Œ€์ฒดํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ญ์ƒ ์ตœ์ ์˜ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ–๋Š”๋‹ค.

๋‹ค๋งŒ ๋ฏธ๋ž˜์˜ ์ฐธ์กฐ๋ฅผ ๋ชจ๋‘ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•˜๋ฏ€๋กœ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ๋Š” ์–ด๋ ต๊ณ  ๋‹ค๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ฑ๋Šฅ์— ์˜ํ•œ upper bound๋ฅผ ์ œ๊ณตํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

2. FIFO(First In First Out)

๋จผ์ € ๋“ค์–ด์˜จ page๋ถ€ํ„ฐ page out ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

๋ฏธ๋ž˜๋ฅผ ๋ชจ๋ฅด๋Š” ๊ฒฝ์šฐ์—๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ  ๋ชจ๋“  page๊ฐ€ frame์— ํ‰๋“ฑํ•˜๊ฒŒ ์กด์žฌํ•œ๋‹ค.

balady's anomaly ์กด์žฌ

  • ์ผ๋ฐ˜์ ์œผ๋กœ frame์ด ์ฆ๊ฐ€ํ•˜๋ฉด page fault๊ฐ€ ๊ฐ์†Œํ•˜์ง€๋งŒ ํŠน์ • ๊ตฌ๊ฐ„์—์„œ ๋Š˜์–ด๋‚˜๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒ

3. LRU(Least Recently Used)

์ฐธ์กฐํ•œ์ง€ ๊ฐ€์žฅ ์˜ค๋ž˜๋œ page๋ฅผ page out ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•

optimal์— ๊ทผ์ ‘ํ•œ ๋ฐฉ๋ฒ•์ด๋ฉฐ belady's anomaly๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค.
๊ตฌํ˜„ํ•˜๊ธฐ ์–ด๋ ต๊ณ  ์ ‘๊ทผ๋นˆ๋„๋ฅผ ๊ณ ๋ คํ•˜์ง€ ์•Š๋Š”๋‹ค.
์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋กœ ๊ตฌํ˜„ํ•˜๋ฉด O(1)๋งŒ์— page๋ฅผ ์ฐพ๊ณ  ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ œ์ผ ์ตœ๊ทผ์— ์ฐน์กฐ๋œ page๋ฅผ ๊ฐ€์žฅ ์•ž์œผ๋กœ ์˜ฎ๊ธฐ๋Š” ๋ฐฉ์‹์œผ๋กœ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด replace๊ฐ€ ์ผ์–ด๋‚  ๋•Œ ๊ฐ€์žฅ ๋’ค์— ์žˆ๋Š” page๋ฅผ ๋ฐ”๊ฟ”์ฃผ๋ฉด ๋œ๋‹ค.

4. LFU(Least Frequently Used)

์ฐธ์กฐ ํšŸ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ์ ์€ page๋ฅผ page out ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•

page๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๋นˆ๋„๋Š” ๊ณ ๋ คํ•˜์ง€๋งŒ ์ตœ๊ทผ์— ์‚ฌ์šฉ๋œ page๋Š” ๋ฐ˜์˜ํ•˜์ง€ ๋ชปํ•œ๋‹ค.
์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ด์šฉํ•ด์„œ ๊ตฌํ˜„ํ•˜๋ฉด replace ๋  page๋ฅผ ์ฐพ๋Š”๋ฐ O(n)์˜ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๊ณ  heap์„ ์ด์šฉํ•˜๋ฉด O(logn)์˜ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ๋‹ค.

  • heap: ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ์˜ ์ผ์ข…์œผ๋กœ ์šฐ์„ ์ˆœ์œ„ ํ ํ˜•ํƒœ์˜ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด LRU์™€ LFU๊ฐ€ ์‹ค์ œ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ• ๊นŒ?

5. Second Chance(Clock) Algorithm

LRU์™€ LFU์€ ์šด์˜์ฒด์ œ๊ฐ€ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  ์œ ์ง€ํ•˜๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜์ง€๋งŒ page fault๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์œผ๋ฉด ์šด์˜์ฒด์ œ์—๊ฒŒ cpu๊ฐ€ ๋„˜์–ด๊ฐ€์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋””์Šคํฌ์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋กœ page๋ฅผ ๋กœ๋“œํ•  ๋•Œ ํ•ด๋‹น page์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์—…๋ฐ์ดํŠธ ํ•  ์ˆ˜ ์—†๋‹ค.

  • ์šด์˜์ฒด์ œ๊ฐ€ page์— ๋Œ€ํ•œ ์ฐธ์กฐ ํšŸ์ˆ˜, ์ตœ๊ทผ์— ์ฐธ์กฐํ•œ page๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ์•Œ ์ˆ˜ ์—†๋‹ค.

ํ•ด๋‹น ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ LRU์— ๊ทผ์‚ฌํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ page์— ๋Œ€ํ•œ ์ตœ๊ทผ ์ฐธ์กฐ ์—ฌ๋ถ€๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋„๋ก reference bit๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค

reference bit๊ฐ€ 0์ธ ๊ฒƒ์„ ์ฐพ์„ ๋•Œ๊นŒ์ง€ ์‹œ๊ณ„์ฒ˜๋Ÿผ ํฌ์ธํ„ฐ๋ฅผ ์ด๋™ํ•˜๋‹ค๊ฐ€ 0์ธ ๊ฒƒ์„ ์ฐพ์œผ๋ฉด page๋ฅผ ๊ต์ฒดํ•œ๋‹ค.

๋งŒ์•ฝ reference bit๊ฐ€ 1์ธ page๋ฅผ ๋งŒ๋‚˜๋ฉด 0์œผ๋กœ ๋ฐ”๊พธ์–ด ์ฃผ๊ณ  ๋‹ค์‹œ ํ•œ ๋ฐ”ํ€ด ๋Œ์•„์™”์„ ๋•Œ๋„ 0์ด๋ผ๋ฉด page๋ฅผ ๊ต์ฒดํ•œ๋‹ค. ๋งŒ์•ฝ ๋Œ์•„์™”์„ ๋•Œ 1๋กœ ๋ฐ”๋€Œ์–ด์žˆ๋‹ค๋ฉด ์ตœ๊ทผ์— ์ฐธ์กฐํ–ˆ๋‹ค๋Š” ๋œป์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

modified bit๋ฅผ ์ถ”๊ฐ€ํ•œ Enhanced second chance algorithm

  • modified bit: page๊ฐ€ ์ˆ˜์ •๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จ

page๊ฐ€ ์ˆ˜์ •๋˜์—ˆ๋‹ค๋ฉด page out์‹œ disk I/O์‹œ write ๋™์ž‘์ด ์ˆ˜ํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— cost๊ฐ€ ๋ฐœ์ƒ

Allocation of Frames

  • ํ”„๋กœ์„ธ์Šค๋งˆ๋‹ค ์–ผ๋งˆ๋งŒํผ์˜ page frame์„ ํ• ๋‹นํ• ์ง€์— ๋Œ€ํ•œ ๋ฌธ์ œ
  • Allocation์˜ ํ•„์š”์„ฑ

๋ช…๋ น์–ด ์ˆ˜ํ–‰์„ ์œ„ํ•ด ์ตœ์†Œํ•œ ํ• ๋‹น๋˜์–ด์•ผ ํ•˜๋Š” frame์˜ ์ˆ˜๊ฐ€ ์กด์žฌํ•จ.
Loop๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” page๋“ค์€ ํ•œ๊บผ๋ฒˆ์— ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค

  • ์ตœ์†Œํ•œ์˜ ํ• ๋‹น์ด ์—†๋‹ค๋ฉด ๋งค Loop๋งˆ๋‹ค page fault ๋ฐœ์ƒ

ํ• ๋‹นํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ๋Š” ๊ท ์ผํ•˜๊ฒŒ ํ• ๋‹นํ•˜๊ฑฐ๋‚˜ ํŠน์ • ๊ธฐ์ค€์— ๋”ฐ๋ผ์„œ ํ• ๋‹นํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

  • Equal allocation: ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค์— ๊ท ๋“ฑํ•˜๊ฒŒ ํ• ๋‹น
  • Proportional allocation: ํ”„๋กœ์„ธ์Šค ํฌ๊ธฐ์— ๋น„๋ก€ํ•˜์—ฌ ํ• ๋‹น
  • priority allocation: ํ”„๋กœ์„ธ์Šค์˜ ์šฐ์„ ์ˆœ์œ„์— ๋”ฐ๋ผ ํ• ๋‹น

page fault๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๊ต์ฒด๋˜๋Š” frame์˜ ๊ทธ๋ฃน์—๋Š” ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

Global Replacement

Replace์‹œ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์— ํ• ๋‹น๋œ frame์„ ๋นผ์•—์•„์˜ฌ ์ˆ˜ ์žˆ๋‹ค. ํ”„๋กœ์„ธ์Šค๋ณ„๋กœ frame ํ• ๋‹น๋Ÿ‰์„ ์กฐ์ ˆํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋  ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ์ž์‹ ์˜ page fault rate๋ฅผ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ์ผ๋ฐ˜์ ์œผ๋กœ ๋” ์ข‹์€ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ๊ฐ€์ง€๋ฏ€๋กœ ๊ฐ€์žฅ ํ”ํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค

Local Replacement

์ž์‹ ์—๊ฒŒ ํ• ๋‹น๋œ frame ๋‚ด์—์„œ๋งŒ ๊ต์ฒดํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ”„๋กœ์„ธ์Šค๋งˆ๋‹ค ๋…์ž์ ์œผ๋กœ ์šด์˜ํ•˜๋Š” ๊ฒฝ์šฐ ๊ฐ€๋Šฅํ•˜๋‹ค

  • ์‰ฌ๊ณ  ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋น„๊ต์  ๋น„ํšจ์œจ์ ์ด๋‹ค.

Thrashing

ํ”„๋กœ์„ธ์Šค๊ฐ€ ์›ํ™œํ•œ ์‹คํ–‰์— ํ•„์š”ํ•œ ์ตœ์†Œํ•œ์˜ page frame์„ ํ• ๋‹น๋ฐ›์ง€ ๋ชปํ•ด์„œ ์‹คํ–‰๋ณด๋‹ค swapping ํ•˜๋Š” ์‹œ๊ฐ„์ด ๋” ๋งŽ์€ ๊ฒฝ์šฐ

  • page fault rate ์ฆ๊ฐ€
  • CPU utilization ๊ฐ์†Œ

Thrashing์˜ ๋ฐœ์ƒ ๊ณผ์ •

  1. page๊ฐ€ ๋ถ€์กฑํ•˜์—ฌ page fault ๋ฐœ์ƒ
  2. Swapping(I/O)๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ CPU utilization ๊ฐ์†Œ
  3. OS๋Š” MPD(Multiprogramming Degree)๋ฅผ ์ฆ๊ฐ€์‹œ์ผœ์•ผ ํ•œ๋‹ค๊ณ  ํŒ๋‹จํ•˜์—ฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— load์‹œํ‚จ๋‹ค
  4. ํ”„๋กœ์„ธ์Šค๋‹น ํ• ๋‹น๋œ page frame์ด ๋” ๊ฐ์†Œํ•˜์—ฌ page fault๊ฐ€ ์ฆ๊ฐ€ํ•œ๋‹ค.
  5. ํ”„๋กœ์„ธ์Šค๋Š” Swapping์œผ๋กœ ์ธํ•ด ๋งค์šฐ ๋ฐ”๋น ์ ธ์„œ CPU ์‚ฌ์šฉ๋Ÿ‰์ด ๊ฐ์†Œํ•œ๋‹ค
  6. low throughput ๋ฐœ์ƒ

Thrashing์„ ์˜ˆ๋ฐฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ”„๋กœ์„ธ์Šค์—๊ฒŒ ํ•„์š”ํ•œ ๋งŒํผ frame์„ ์ œ๊ณตํ•ด์•ผํ•œ๋‹ค.

Thrashing Prevention

1. Working Set Model

  • ๊ฐ€๋Šฅํ•œ ์ตœ๋Œ€์˜ Multiprogramming Degree๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ Thrashing์„ ๋ง‰๋Š” ๋ฐฉ๋ฒ•

Locality of Reference(์ฐธ์กฐ ์ง€์—ญ์„ฑ ์›๋ฆฌ)๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ํŠน์ • ์‹œ๊ฐ„ ๋™์•ˆ ์ผ์ • ์žฅ์†Œ๋ฅผ ์ง‘์ค‘์ ์œผ๋กœ ์ฐธ์กฐํ•˜๋Š” ์„ฑ์งˆ์„ ๋งํ•œ๋‹ค. Locality์— ๊ธฐ๋ฐ˜ํ•˜์—ฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ผ์ • ์‹œ๊ฐ„ ๋™์•ˆ ์›ํ™œํžˆ ์ˆ˜ํ–‰๋˜๊ธฐ ์œ„ํ•ด ํ•œ๊บผ๋ฒˆ์— ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์™€์žˆ์–ด์•ผ ํ•˜๋Š” page๋“ค์˜ ์ง‘ํ•ฉ์„ working set์ด๋ผ๊ณ  ํ•œ๋‹ค.

working set์€ working set window๋ผ๋Š” ๊ณ ์ •๋œ page ์ฐธ์กฐ ํšŸ์ˆ˜(์‹œ๊ฐ„)๋กœ ๊ตฌํ•œ๋‹ค

2. PFF(Page Fault Frequency) Scheme

  • page fault์˜ ์ƒํ•œ์„ ๊ณผ ํ•˜ํ•œ์„ ์„ ๋‘๋Š” ๋ฐฉ๋ฒ•

page fault rate๊ฐ€ ์ƒํ•œ์„ ์„ ๋„˜์œผ๋ฉด

  • frame์„ ๋” ํ• ๋‹นํ•ด์ค€๋‹ค. page fault rate๊ฐ€ ํ•˜ํ•œ์„ ์„ ๋„˜์œผ๋ฉด
  • ํ• ๋‹น๋œ frame์„ ์ค„์ธ๋‹ค.

๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฒ•์€ ๋””์Šคํฌ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋””์Šคํฌ ํŽ˜์ด์ง•(์Šค์™‘)๊ณผ๋Š” ์ง์ ‘์ ์œผ๋กœ ์—ฐ๊ด€์ด ์—†๋‹ค. ์—ฌ๊ธฐ์„œ ๊ฐ€์ƒ(Virtual) ์˜ ์˜๋ฏธ๋Š” ๋””์Šคํฌ๋ฅผ ๊ฐ€์ƒ์˜ RAM ์ฒ˜๋Ÿผ ์“ด๋‹ค๋Š” ์˜๋ฏธ๊ฐ€ ์•„๋‹ˆ๋ผ, ๊ฐ ํ”„๋กœ์„ธ์Šค๋งˆ๋‹ค ์‹ค์ œ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์•„๋‹Œ ๊ฐ€์ƒ์˜ ์ฃผ์†Œ ๊ณต๊ฐ„์„ ๋ณด์ด๊ฒŒ ํ•œ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. ์‚ฌ์‹ค ๋„“๊ฒŒ ๋ณด๋ฉด ๋ฉ”๋ชจ๋ฆฌ์˜ ๋‚ด์šฉ์„ ๋””์Šคํฌ์— ์ž„์‹œ๋กœ ์ €์žฅํ•˜๋Š” ๊ฐœ๋… ์ž์ฒด๋Š” ๋ณ„๋กœ ํŠน์ดํ•œ ๊ฒƒ๋„ ์•„๋‹ˆ๊ณ  ์ด๋ก ์ ์œผ๋กœ๋Š” ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์‹œ์Šคํ…œ์—์„œ๋„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.์ด๋ ‡๊ฒŒ ์šฉ์–ด๊ฐ€ ํ˜ผ๋™๋˜์–ด ์“ฐ์ด๋Š” ์ด์œ ๋Š” Windows ์—์„œ ์ด๋Ÿฌํ•œ ๋””์Šคํฌ ์Šค์™‘ ์„ค์ •์„ "๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ" ๋ผ๊ณ  ๋ฒˆ์—ญ ํ•ด๋†“์•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
์ถœ์ฒ˜ - ๋‚˜๋ฌด์œ„ํ‚ค ๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ

๋ฉด์ ‘ ๋Œ€๋น„

1. ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ์˜ ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜์˜จ ๊ธฐ์ˆ ๋กœ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ ค๋‘๊ณ  ๋‚˜๋จธ์ง€๋Š” ๋””์Šคํฌ์— ๋‘๋Š” ๊ฒƒ์ด๋‹ค.

2. ํŽ˜์ด์ง•์ด๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

Paging(ํŽ˜์ด์ง•)์€ Noncontiguous Allocation ๋ฐฉ์‹์œผ๋กœ ์™ธ๋ถ€ ๋‹จํŽธํ™”์˜ ์••์ถ• ์ž‘์—…์˜ ๋น„ํšจ์œจ์„ฑ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋Š” ํ”„๋ ˆ์ž„(Frame), ํ”„๋กœ์„ธ์Šค๋Š” ํŽ˜์ด์ง€(Page)๋ผ ๋ถˆ๋ฆฌ๋Š” ๊ณ ์ • ํฌ๊ธฐ์˜ ๋ธ”๋ก(Block)์œผ๋กœ ๋ถ„๋ฆฌ๋œ๋‹ค.

3. ๋ฉ”๋ชจ๋ฆฌ ๋‹จํŽธํ™”๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

Fragmentation(๋‹จํŽธํ™”)์€ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋˜๊ณ  ์ œ๊ฑฐ๋˜๋Š” ์ผ์ด ๋ฐ˜๋ณต๋˜๋ฉด ํ”„๋กœ์„ธ์Šค๋“ค์ด ์ฐจ์ง€ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ํ‹ˆ ์‚ฌ์ด์— ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ• ๋งŒํผ์˜ ์ž‘์€ ๊ณต๊ฐ„๋“ค์ด ๋Š˜์–ด๋‚˜๊ฒŒ ๋˜๋Š” ํ˜„์ƒ์„ ๋งํ•œ๋‹ค.

external fragmentation

  • ์™ธ๋ถ€ ๋‹จํŽธํ™”๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์žˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์—ฐ์†ํ•˜์ง€ ์•Š์•„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ๋ฅผ ๋งํ•œ๋‹ค. internal fragmetation
  • ๋‚ด๋ถ€ ๋‹จํŽธํ™”๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„๋ณด๋‹ค ๋ถ„ํ• ๋œ ๊ณต๊ฐ„์ด ๋” ์ปค์„œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋‚จ๋Š” ๊ฒฝ์šฐ๋ฅผ ๋งํ•œ๋‹ค.

4. ๋ฉ”๋ชจ๋ฆฌ ๋‹จํŽธํ™” ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์€?

๋ฉ”๋ชจ๋ฆฌ ์••์ถ•(๋””์Šคํฌ ์กฐ๊ฐ ๋ชจ์Œ), ๋ฉ”๋ชจ๋ฆฌ ํ†ตํ•ฉ(๋‹จํŽธํ™”๊ฐ€ ๋ฐœ์ƒ๋œ ๊ณต๊ฐ„๋“ค์„ ๋ชจ์•„ ํ•˜๋‚˜์˜ ํฐ ๊ณต๊ฐ„์œผ๋กœ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•)

์ฐธ๊ณ )

  • KOCW ๊ณต๊ฐœ๊ฐ•์˜ (2014-1. ์ดํ™”์—ฌ์ž๋Œ€ํ•™๊ต - ๋ฐ˜ํšจ๊ฒฝ)
  • https://rebro.kr/179