๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ป Computer Science/์šด์˜์ฒด์ œ

[์šด์˜์ฒด์ œ] Memory ๋ž€? (paging, segmentation, ๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ)

by Jay Din 2023. 5. 27.
728x90
๋ฐ˜์‘ํ˜•
๋ฐ˜์‘ํ˜•

paging ์ด๋ž€?

paging์ด๋ž€ process๊ฐ€ ํ• ๋‹น๋ฐ›์€ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์ผ์ •ํ•œ page๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด, ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์—ฐ์†๋˜์ง€ ์•Š๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์œ„์น˜์— ์ €์žฅํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ธฐ๋ฒ•์ด๋‹ค.

 

๋ฉด์ ‘์—์„œ ์ž์ฃผ ๋‚˜์˜ค์ง„ ์•Š์ง€๋งŒ, ์ค‘์š”ํ•œ ๋‚ด์šฉ๋“ค์ด ๋งŽ์ด ์žˆ์–ด์„œ ์•Œ์•„๋‘๋ฉด ๊นŠ์ด์žˆ๋Š” ์งˆ๋ฌธ์ด ๋‚˜์˜ฌ ๋•Œ ์ž˜ ๋‹ต๋ณ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํŠนํžˆ ๋…ผ๋ฆฌ์  ์ฃผ์†Œ์™€ ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ์˜ ์ฐจ์ด๋ฅผ ์ดํ•ดํ•ด์•ผํ•˜๊ณ , ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ์˜ ์—ฐ์†๋˜์ง€ ์•Š๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์œ„์น˜์— page๋‹จ์œ„๋งŒํผ ์ €์žฅํ•œ๋‹ค๋Š” ์ ์„ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

๋…ผ๋ฆฌ์  ์ฃผ์†Œ (logical address) ๋ž€?

process๊ฐ€ memory์— ์ ์žฌ๋˜๊ธฐ ์œ„ํ•œ ๋…์ž์ ์ธ ์ฃผ์†Œ ๊ณต๊ฐ„์ธ ๋…ผ๋ฆฌ์  ์ฃผ์†Œ(logical address)๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.

๋…ผ๋ฆฌ์  ์ฃผ์†Œ๋Š” ๊ฐ process๋งˆ๋‹ค ๋…๋ฆฝ์ ์œผ๋กœ ํ• ๋‹น๋˜๋ฉฐ, 0๋ฒˆ์ง€๋ถ€ํ„ฐ ์‹œ์ž‘๋œ๋‹ค.

๋ฌผ๋ฆฌ์  ์ฃผ์†Œ (physical address) ๋ž€?

๋ฌผ๋ฆฌ์  ์ฃผ์†Œ(physical address)๋Š” process๊ฐ€ ์‹ค์ œ๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋˜๋Š” ์œ„์น˜๋ฅผ ๋งํ•œ๋‹ค.

์ฃผ์†Œ ๋ฐ”์ธ๋”ฉ(address binding) ์ด๋ž€?

CPU๊ฐ€ ๊ธฐ๊ณ„์–ด ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด process์˜ ๋…ผ๋ฆฌ์  ์ฃผ์†Œ๊ฐ€ ์‹ค์ œ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์˜ ์–ด๋Š ์œ„์น˜์— ๋งคํ•‘๋˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ณผ์ •์„ ์ฃผ์†Œ ๋ฐ”์ธ๋”ฉ(address binding)์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

Paging ์›๋ฆฌ

paging ๊ธฐ๋ฒ•์€ process์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๋™์ผํ•œ ํฌ๊ธฐ์˜ page๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ์œ„์น˜์— page๋“ค์„ ์ €์žฅํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ธฐ๋ฒ•์ด๋‹ค. paging ๊ธฐ๋ฒ•์—์„œ๋Š” ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ page์™€ ๊ฐ™์€ ํฌ๊ธฐ์˜ frame์œผ๋กœ ๋ฏธ๋ฆฌ ๋‚˜๋ˆ„์–ด๋‘”๋‹ค.

paging ๊ธฐ๋ฒ•์—์„œ๋Š” ์ฃผ์†Œ ๋ฐ”์ธ๋”ฉ(address binding)์„ ์œ„ํ•œ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ฐ๊ฐ์˜ ์ฃผ์†Œ ๋ณ€ํ™˜์„ ์œ„ํ•œ page table์„ ๊ฐ–๋Š”๋‹ค.

page table์„ ์ด์šฉํ•œ ์ฃผ์†Œ ๋ฐ”์ธ๋”ฉ 1
page table์„ ์ด์šฉํ•œ ์ฃผ์†Œ ๋ฐ”์ธ๋”ฉ 2

paging ๊ธฐ๋ฒ• ์‚ฌ์šฉ์‹œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋‹จํŽธํ™”(Memory fragmentation) ๋ฌธ์ œ ์„ค๋ช…

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

paging ๊ธฐ๋ฒ•์—์„œ๋Š” process์˜ ๋…ผ๋ฆฌ์  ์ฃผ์†Œ ๊ณต๊ฐ„๊ณผ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๊ฐ™์€ ํฌ๊ธฐ์˜ page ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ์™ธ๋ถ€ ๋‹จํŽธํ™” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค. ํ•˜์ง€๋งŒ process ์ฃผ์†Œ ๊ณต๊ฐ„์˜ ํฌ๊ธฐ๊ฐ€ page ํฌ๊ธฐ์˜ ๋ฐฐ์ˆ˜๋ผ๋Š” ๋ณด์žฅ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์—, ํ”„๋กœ์„ธ์Šค์˜ ์ฃผ์†Œ ๊ณต๊ฐ„ ์ค‘ ๋งˆ์ง€๋ง‰์— ์œ„์น˜ํ•œ page์—์„œ๋Š” ๋‚ด๋ถ€ ๋‹จํŽธํ™” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค.

 

๋ฐ˜์‘ํ˜•

segmentation ์ด๋ž€?

segmentation์ด๋ž€ process๊ฐ€ ํ• ๋‹น๋ฐ›์€ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๋…ผ๋ฆฌ์  ์˜๋ฏธ ๋‹จ์œ„(segment)๋กœ ๋‚˜๋ˆ„์–ด, ์—ฐ์†๋˜์ง€ ์•Š๋Š” ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ํ• ๋‹น๋  ์ˆ˜ ์žˆ๋„๋ก ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ธฐ๋ฒ•์ด๋‹ค.

 

page์™€ ๊ฐ™์ด ๋ฉด์ ‘์—์„œ ์ž์ฃผ ๋‚˜์˜ค์ง„ ์•Š์ง€๋งŒ, ๋ฉ”๋ชจ๋ฆฌ์— ๋Œ€ํ•ด์„œ ์ดํ•ดํ•˜๋Š”๋ฐ ์ค‘์š”ํ•œ ๋‚ด์šฉ์ด ๋งŽ์ด ๋‹ด๊ฒจ์ ธ ์žˆ๋‹ค.

์ผ์ •ํ•œ ํฌ๊ธฐ์˜ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด ํ• ๋‹น์„ ํ–ˆ๋˜ page์™€ ๋‹ค๋ฅด๊ฒŒ, segmentation์€ ์˜๋ฏธ ๋‹จ์œ„๋กœ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹น์„ ํ•˜๋Š” ๊ธฐ๋ฒ•์ž„์„ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ํŠนํžˆ code, data, heap, stack ๋“ฑ์˜ ๊ธฐ๋Šฅ(์˜๋ฏธ) ๋‹จ์œ„๋กœ ๋‚˜๋ˆˆ๋‹ค๋Š” ์ ์„ ๊ธฐ์–ตํ•˜์‹œ๊ธธ ๋ฐ”๋ž€๋‹ค.

Segmentation

segmentation ๊ธฐ๋ฒ•์€ process๊ฐ€ ํ• ๋‹น๋ฐ›์€ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๋…ผ๋ฆฌ์  ์˜๋ฏธ ๋‹จ์œ„(segment)๋กœ ๋‚˜๋ˆ„์–ด, ์—ฐ์†๋˜์ง€ ์•Š๋Š” ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ํ• ๋‹น๋  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ธฐ๋ฒ•์ด๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ process์˜ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ ์ค‘ Code, Data, Heap, Stack ๋“ฑ์˜ ๊ธฐ๋Šฅ ๋‹จ์œ„๋กœ segment๋ฅผ ์ •์˜ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.

segmentation ๊ธฐ๋ฒ•์—์„œ๋Š” ์ฃผ์†Œ ๋ฐ”์ธ๋”ฉ(address binding)์„ ์œ„ํ•ด ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ฐ๊ฐ์˜ ์ฃผ์†Œ ๋ณ€ํ™˜์„ ์œ„ํ•œ segment table์„ ๊ฐ–๋Š”๋‹ค.

segment๋Š” ๊ทธ ํฌ๊ธฐ๊ฐ€ ๊ท ์ผํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋…ผ๋ฆฌ์  ์ฃผ์†Œ๊ฐ€ <segment ๋ฒˆํ˜ธ, offset>์œผ๋กœ ํ‘œํ˜„๋œ๋‹ค.

์ด ๋•Œ offset ๊ฐ’์ด table์˜ limit ๊ฐ’๋ณด๋‹ค ํฌ๋ฉด, ํ•ด๋‹น segment๋ฅผ ๋„˜์–ด๊ฐ€๋ฏ€๋กœ segmentation fault ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

segmentation์˜ ๋ฉ”๋ชจ๋ฆฌ ๋‹จํŽธํ™”(Memory fragmentation) ๋ฌธ์ œ ์„ค๋ช…

segmentation ๊ธฐ๋ฒ•์—์„œ segment์˜ ํฌ๊ธฐ๋งŒํผ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜๋ฏ€๋กœ ๋‚ด๋ถ€ ๋‹จํŽธํ™” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค. ํ•˜์ง€๋งŒ ์„œ๋กœ ๋‹ค๋ฅธ ํฌ๊ธฐ์˜ segment๋“ค์ด ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋˜๊ณ  ์ œ๊ฑฐ๋˜๋Š” ์ผ์ด ๋ฐ˜๋ณต๋˜๋ฉด, ์™ธ๋ถ€ ๋‹จํŽธํ™” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค.

paging๊ณผ segmentation์˜ ์ฐจ์ด

paging ์ผ์ •ํ•œ ํฌ๊ธฐ์˜ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด ํ• ๋‹นํ•˜๋ฉฐ,
๋‚ด๋ถ€ ๋‹จํŽธํ™”์˜ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.
segmentation code, data, heap, stack๋“ฑ์˜ ๊ธฐ๋Šฅ(์˜๋ฏธ)๋‹จ์œ„๋กœ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹นํ•˜๋ฉฐ,
segmentation์€ ์™ธ๋ถ€ ๋‹จํŽธํ™”์˜ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒ

paged segmentation ๊ธฐ๋ฒ• ์„ค๋ช…

paged segmentation์ด๋ž€ segmentation์„ ๊ธฐ๋ณธ์œผ๋กœ ํ•˜๋˜ ์ด๋ฅผ ๋‹ค์‹œ ๋™์ผ ํฌ๊ธฐ์˜ page๋กœ ๋‚˜๋ˆ„์–ด ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹นํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ธฐ๋ฒ•์ด๋‹ค. ์ฆ‰, ํ”„๋กœ๊ทธ๋žจ์„ ์˜๋ฏธ ๋‹จ์œ„์˜ segment๋กœ ๋‚˜๋ˆ„๊ณ  ๊ฐœ๋ณ„ segment์˜ ํฌ๊ธฐ๋ฅผ page์˜ ๋ฐฐ์ˆ˜๊ฐ€ ๋˜๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

์ด๋ฅผ ํ†ตํ•ด segmentation ๊ธฐ๋ฒ•์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์™ธ๋ถ€ ๋‹จํŽธํ™” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ , ๋™์‹œ์— segment ๋‹จ์œ„๋กœ process ๊ฐ„์˜ ๊ณต์œ ๋‚˜ process ๋‚ด์˜ ์ ‘๊ทผ ๊ถŒํ•œ ๋ณดํ˜ธ๊ฐ€ ์ด๋ฃจ์–ด์ง€๋„๋ก ํ•ด์„œ paging ๊ธฐ๋ฒ•์˜ ๋‹จ์ ์„ ํ•ด๊ฒฐํ•œ๋‹ค.

 

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

๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ(virtual memory)๋ž€ process ์ „์ฒด๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์˜ค์ง€ ์•Š๋”๋ผ๋„ ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•˜๋Š” ๊ธฐ๋ฒ•์ด๋‹ค. ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฒ•์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์ด ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ๋ณด๋‹ค ์ปค์ ธ๋„ ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

 

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

์šด์˜์ฒด์ œ์— ์˜ํ•ด์„œ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ด๋ค„์ง€๊ณ  ์žˆ๋Š”์ง€, ๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ฌด์—‡์ธ์ง€, page fault๋Š” ๋ฌด์—‡์ด๊ณ  page ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜์—๋Š” ์–ด๋–ค ๊ฒƒ๋“ค์ด ์žˆ๋Š”์ง€๊ฐ€ ํฌ์ธํŠธ์ด๋‹ค.

๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ (virtual memroy)

๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋Š” ์‹ค์ œ์˜ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ ๊ฐœ๋…๊ณผ ๊ฐœ๋ฐœ์ž ์ž…์žฅ์˜ ๋…ผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ ๊ฐœ๋…์„ ๋ถ„๋ฆฌํ•œ ๊ฒƒ์ด๋‹ค.

์ด๋ ‡๊ฒŒ ํ•จ์œผ๋กœ์จ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ์— ๊ด€๋ จํ•œ ๋ฌธ์ œ๋ฅผ ์—ผ๋ คํ•  ํ•„์š” ์—†์ด ์‰ฝ๊ฒŒ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.

์šด์˜์ฒด์ œ๋Š” ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฒ•์„ ํ†ตํ•ด ํ”„๋กœ๊ทธ๋žจ์˜ ๋…ผ๋ฆฌ์  ์ฃผ์†Œ ์˜์—ญ์—์„œ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•˜๊ณ , ์ง์ ‘์ ์œผ๋กœ ํ•„์š”ํ•˜์ง€ ์•Š์€ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์€ ๋””์Šคํฌ(Swap ์˜์—ญ)์— ์ €์žฅํ•˜๊ฒŒ ๋œ๋‹ค.

๋ฐ˜์‘ํ˜•

์š”๊ตฌ ํŽ˜์ด์ง•(demand paging)

๋‹น์žฅ ์‚ฌ์šฉ๋  ์ฃผ์†Œ ๊ณต๊ฐ„์„ page ๋‹จ์œ„๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์š”๊ตฌ ํŽ˜์ด์ง•(demand paging)์ด๋ผ๊ณ  ํ•œ๋‹ค.

์š”๊ตฌ ํŽ˜์ด์ง• ๊ธฐ๋ฒ•์—์„œ๋Š” ํŠน์ • page์— ๋Œ€ํ•ด cpu์˜ ์š”์ฒญ์ด ๋“ค์–ด์˜จ ํ›„์— ํ•ด๋‹น page๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•œ๋‹ค. ๋‹น์žฅ ์‹คํ–‰์— ํ•„์š”ํ•œ page๋งŒ์„ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ๊ฐ์†Œํ•˜๊ณ , ํ”„๋กœ์„ธ์Šค ์ „์ฒด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•˜๋Š” ์ž…์ถœ๋ ฅ ์˜ค๋ฒ„ํ—ค๋“œ๋„ ๊ฐ์†Œํ•˜๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

์š”๊ตฌ ํŽ˜์ด์ง• ๊ธฐ๋ฒ•์—์„œ๋Š” ์œ ํšจ/๋ฌดํšจ ๋น„ํŠธ(valid/invalid bit)๋ฅผ ๋‘์–ด ๊ฐ page๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์กด์žฌํ•˜๋Š”์ง€ ํ‘œ์‹œํ•˜๊ฒŒ ๋œ๋‹ค.

Page fault

CPU๊ฐ€ ๋ฌดํšจ ๋น„ํŠธ(invalid bit)๋กœ ํ‘œ์‹œ๋œ page์— ์—‘์„ธ์Šคํ•˜๋Š” ์ƒํ™ฉ์„ page fault๋ผ๊ณ  ํ•œ๋‹ค.

CPU๊ฐ€ ๋ฌดํšจ page์— ์ ‘๊ทผํ•˜๋ฉด ์ฃผ์†Œ ๋ณ€ํ™˜์„ ๋‹ด๋‹นํ•˜๋Š” ํ•˜๋“œ์›จ์–ด์ธ MMU๊ฐ€ page fault trap์„ ๋ฐœ์ƒ์‹œํ‚ค๊ฒŒ ๋˜๊ณ , ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ˆœ์„œ๋กœ page fault๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋œ๋‹ค. 

  1. CPU๊ฐ€ ํŽ˜์ด์ง€ N์„ ์ฐธ์กฐํ•˜๋‹ค.
  2. Page table์—์„œ ํŽ˜์ด์ง€ N์ด ๋ฌดํšจ์ƒํƒœ์ž„์„ ํ™•์ธํ•œ๋‹ค.
  3. MMU์—์„œ Page fault trap์ด ๋ฐœ์ƒ์‹œํ‚จ๋‹ค.
  4. ๋””์Šคํฌ์—์„œ ํŽ˜์ด์ง€ N์„ ํ”„๋ ˆ์ž„์— ์ ์žฌํ•˜๊ณ  page table์„ ์—…๋ฐ์ดํŠธํ•œ๋‹ค.(invalid -> valid)

page fault ์ฒ˜๋ฆฌ ๊ณผ์ •

page ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜ (replacement algorithm)

page fault๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด, ์š”์ฒญ๋œ page๋ฅผ ๋””์Šคํฌ์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๊ฐ€์ ธ์˜จ๋‹ค. ์ด ๋•Œ, ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์— ๊ณต๊ฐ„์ด ๋ถ€์กฑํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿด ๊ฒฝ์šฐ์—๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์™€ ์žˆ๋Š” page๋ฅผ ๋””์Šคํฌ๋กœ ์˜ฎ๊ฒจ์„œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํ™•๋ณดํ•ด์•ผ ํ•œ๋‹ค. ์ด๊ฒƒ์„ ํŽ˜์ด์ง€ ๊ต์ฒด(page replacement)๋ผ๊ณ  ํ•˜๊ณ , ์–ด๋–ค page๋ฅผ ๊ต์ฒดํ•  ๊ฒƒ์ด๋ƒ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด page๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜(replacement algorithm)์ด๋‹ค.

๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ตœ๋Œ€ํ•œ page fault๊ฐ€ ์ ๊ฒŒ ์ผ์–ด๋‚˜๋„๋ก ๋„์™€์ค˜์•ผ ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์•ž์œผ๋กœ ์ฐธ์กฐ๋  ๊ฐ€๋Šฅ์„ฑ์ด ์ ์€ page๋ฅผ ์„ ํƒํ•ด์„œ ๊ต์ฒดํ•˜๋Š” ๊ฒƒ์ด ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๋ช…
FIFO(First In First Out) ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์˜จ์ง€ ๊ฐ€์žฅ ์˜ค๋ž˜๋œ page๋ฅผ ๊ต์ฒดํ•œ๋‹ค.
์ตœ์  ํŽ˜์ด์ง€ ๊ต์ฒด ์•ž์œผ๋กœ ๊ฐ€์žฅ ์˜ค๋žซ๋™์•ˆ ์‚ฌ์šฉ๋˜์ง€ ์•Š์„ page๋ฅผ ์ฐพ์•„ ๊ต์ฒดํ•œ๋‹ค. ์‹ค์ œ๊ตฌํ˜„์€ ์–ด๋ ต๋‹ค.
LRU(Least Recently Used) ๊ฐ€์žฅ ์˜ค๋žซ๋™์•ˆ ์‚ฌ์šฉ๋˜์ง€ ์•Š์€ page๋ฅผ ๊ต์ฒดํ•œ๋‹ค.
LFU(Least Frequently Used) ์ฐธ์กฐ ํšŸ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ์ ์€ page๋ฅผ ๊ต์ฒดํ•œ๋‹ค. ๋น„์šฉ๋Œ€๋น„ ์„ฑ๋Šฅ์ด ์ข‹์ง€ ์•Š์•„ ์ž˜ ์“ฐ์ด์ง„ ์•Š๋Š”๋‹ค.

์š”๊ตฌํŽ˜์ด์ง•(demand paging) ์ด๋ž€?

์š”๊ตฌ ํŽ˜์ด์ง• ๊ธฐ๋ฒ•์€ ํŠน์ • page์— ๋Œ€ํ•ด cpu์˜ ์š”์ฒญ์ด ๋“ค์–ด ์™”์„ ๋•Œ ํ•ด๋‹น page๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•œ๋‹ค. ๋‹ค์žฅ ์‹คํ–‰์— ํ•„์š”ํ•œ page๋งŒ์„ ํŽ˜๋ชจ๋ฆฌ์— ์ ์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ๊ฐ์†Œํ•˜๊ณ , ํ”„๋กœ์„ธ์Šค ์ „์ฒด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•˜๋Š” ์ž…์ถœ๋ ฅ ์˜ค๋ฒ„ํ—ค๋“œ๋„ ๊ฐ์†Œํ•˜๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜(replacement agorithm)์„ ์•„๋Š”๋Œ€๋กœ ์„ค๋ช…

FIFO, ์ตœ์  ํŽ˜์ด์ง€ ๊ต์ฒด, LRU, LFU ๋“ฑ์ด ์žˆ๋‹ค. 

LRU ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ LFU ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋น„๊ต ์„ค๋ช…

LRU๋Š” Least Recently Used์˜ ์–‘์ž๋กœ, ๊ฐ€์žฅ ์˜ค๋ž˜์ „์— ์ฐธ์กฐ๊ฐ€ ์ด๋ฃจ์–ด์ง„ page๋ฅผ ๊ต์ฒดํ•œ๋‹ค.

LFU๋Š” Least Frequently Used์˜ ์•ฝ์ž๋กœ, ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ ๋‚ด์— ์กด์žฌํ•˜๋Š” page ์ค‘์—์„œ ์ง€๊ธˆ๊นŒ์ง€์˜ ์ฐธ์กฐ ํšŸ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ์ ์€ page๋ฅผ ๊ต์ฒดํ•œ๋‹ค.

 


์ฐธ๊ณ 

https://www.nossi.dev/

 

728x90
๋ฐ˜์‘ํ˜•