pintos-Memory Management ๊ตฌํ˜„

developer_jenniferยท2023๋…„ 6์›” 16์ผ
0

ํฌ๋ž˜ํ”„ํ†ค ์ •๊ธ€

๋ชฉ๋ก ๋ณด๊ธฐ
21/29

๐Ÿ’ก๋ชฉํ‘œ : ํŽ˜์ด์ง€์™€ ํ”„๋ ˆ์ž„์˜ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ

ํŽ˜์ด์ง€(spt)์—์„œ ๋งŒ๋“ค์–ด์•ผ ํ•  ๊ฒƒ

  • ๊ตฌ์กฐ์ฒด ์‚ฝ์ž…
  • ๊ตฌ์กฐ์ฒด ํƒ์ƒ‰
  • ๊ตฌ์กฐ์ฒด ์‚ญ์ œ

ํ”„๋ ˆ์ž„(ft)์—์„œ ๋งŒ๋“ค์–ด์•ผ ํ•  ๊ฒƒ

  • ๊ตฌ์กฐ์ฒด ์‚ฝ์ž…

  • ๊ตฌ์กฐ์ฒด ํƒ์ƒ‰

  • ๊ตฌ์กฐ์ฒด ์‚ญ์ œ

  • ๊ตฌ์กฐ์ฒด ์ˆœํšŒ

  • ๐Ÿค” Hash table์ด๋ž€?
    ํ•ด์‹œ ํ…Œ์ด๋ธ”์€ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ €์žฅํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„์ธ ๋ฒ„ํ‚ท(bucket)๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋ฒ„ํ‚ท์— ๋งคํ•‘ํ•˜๋Š” ์—ฐ์‚ฐ์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

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

ํ•ด์‹œ ํ•จ์ˆ˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ๊ณ ์ •๋œ ๊ธธ์ด์˜ ํ•ด์‹œ ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ด ํ•ด์‹œ ์ฝ”๋“œ๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ณ ์œ ํ•œ ์‹๋ณ„์ž๋กœ ์‚ฌ์šฉ๋˜์–ด ๋ฒ„ํ‚ท๊ณผ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค. ํ•ด์‹œ ํ•จ์ˆ˜๋Š” ๋ฐ์ดํ„ฐ์˜ ํŠน์ง•์„ ์ž˜ ๋ฐ˜์˜ํ•˜๊ณ , ์ถฉ๋Œ์„ ์ตœ์†Œํ™”ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ถฉ๋Œ์€ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๊ฐ€ ๋™์ผํ•œ ํ•ด์‹œ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ง€๋Š” ์ƒํ™ฉ์„ ์˜๋ฏธํ•˜๋ฉฐ, ์ด๋Š” ํ•ด์‹œ ํ…Œ์ด๋ธ”์˜ ์„ฑ๋Šฅ์„ ์ €ํ•˜์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•ด์‹œ ํ…Œ์ด๋ธ”์˜ ์ฃผ์š” ์—ฐ์‚ฐ์€ ๋ฐ์ดํ„ฐ์˜ ์‚ฝ์ž…, ๊ฒ€์ƒ‰, ์‚ญ์ œ์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ์˜ ์‚ฝ์ž…์€ ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ ์ ˆํ•œ ๋ฒ„ํ‚ท์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๊ฒ€์ƒ‰์€ ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ์˜ ์œ„์น˜๋ฅผ ์ฐพ๊ณ , ํ•ด๋‹น ๋ฒ„ํ‚ท์—์„œ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋‚˜ ์ด์ง„ ํŠธ๋ฆฌ ๋“ฑ์„ ํƒ์ƒ‰ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค. ์‚ญ์ œ๋Š” ๊ฒ€์ƒ‰๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ฐ์ดํ„ฐ์˜ ์œ„์น˜๋ฅผ ์ฐพ์€ ํ›„, ํ•ด๋‹น ๋ฒ„ํ‚ท์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

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

  • ๐Ÿ™„ supplemental page table์„ hash table ์ด์šฉํ•ด์„œ ๊ตฌํ˜„ํ•˜๋Š” ์ด์œ ?

    Supplemental page table์„ ํ•ด์‹œ ํ…Œ์ด๋ธ”๋กœ ๊ตฌํ˜„ํ•˜๋Š” ์ด์œ ๋Š” ํšจ์œจ์„ฑ๊ณผ ๊ฒ€์ƒ‰ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„œ์ž…๋‹ˆ๋‹ค.

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

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

๋˜ํ•œ, ํ•ด์‹œ ํ…Œ์ด๋ธ”์€ ์ถฉ๋Œ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ์ถฉ๋Œ์„ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ถฉ๋Œ์€ ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ€์ƒ ์ฃผ์†Œ๊ฐ€ ๋™์ผํ•œ ํ•ด์‹œ ๊ฐ’์— ๋งคํ•‘๋˜๋Š” ์ƒํ™ฉ์„ ์˜๋ฏธํ•˜๋ฉฐ, ํ•ด์‹œ ํ…Œ์ด๋ธ”์—์„œ๋Š” ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ฒด์ด๋‹ ๋˜๋Š” ๊ฐœ๋ณ„ ์ฒด์ด๋‹ ๋“ฑ์˜ ์ถฉ๋Œ ํ•ด๊ฒฐ ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋งคํ•‘ ์ •๋ณด๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ์œ ์ง€ํ•˜๋ฉด์„œ๋„ ๊ฒ€์ƒ‰ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

1. thread ๊ตฌ์กฐ์ฒด์— ํ•ด์‹œ ํ…Œ์ด๋ธ” ์ž๋ฃŒ ๊ตฌ์กฐ๋ฅผ ์ถ”๊ฐ€

  • struct thread

    ํ”„๋กœ์„ธ์Šค๋งˆ๋‹ค ๊ฐ€์ƒ์ฃผ์†Œ ๊ณต๊ฐ„์ด ํ• ๋‹น๋˜๋ฏ€๋กœ, ๊ฐ€์ƒ ํŽ˜์ด์ง€๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ธ ํ•ด์‹œ ํ…Œ์ด๋ธ” ์ •์˜

ํ”„๋ ˆ์ž„(ft) ๋งŒ๋“ค ๋•Œ ๊ณ ๋ คํ•ด์•ผ ํ•  ์ 

  • synchronization ๋™๊ธฐํ™”
    : ft๋Š” ๋ชจ๋“  thread๊ฐ€ ๊ณต์œ ํ•˜๋Š” ํ•˜๋‚˜์˜ ์ž์›์œผ๋กœ ํ•œ๋ฒˆ์— ํ•˜๋‚˜์˜ thread๊ฐ€ ์ ‘๊ทผํ•˜์—ฌ ์ถฉ๋Œ ์—†์ด ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” lock์„ ์ด์šฉํ•ด์•ผ ํ•œ๋‹ค.

  • ๊ตฌ์กฐ์ฒด ์ˆœํšŒ
    : swap in/out์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ft๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ ๋ฉ”๋ชจ๋ฆฌ ๋‚ด์—์„œ ์ซ’์•„๋‚ผ ํ”„๋ ˆ์ž„์„ ๋น ๋ฅด๊ฒŒ ๊ณจ๋ผ๋‚ด์•ผ ํ•œ๋‹ค. ์ด๋•Œ eviction policy๋ฅผ ๊ณ ๋ คํ•˜๋ฉด์„œ ์ˆœํšŒ๋ฅผ ์ง„ํ–‰ํ•˜๊ณ  ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•œ๋‹ค.

profile
๋ธ”๋กœ๊ทธ ์ด์ „ํ•ฉ๋‹ˆ๋‹ค -> https://heekyoung2000.tistory.com/

0๊ฐœ์˜ ๋Œ“๊ธ€

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด