๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โญ Group_Study/Operating System

[8์ฃผ์ฐจ] Virtual Memory Management: Other considerations

by ํฌ์ŠคํŠธ์‰์ดํฌ 2023. 1. 25.

Virtual Memory Management: Other considerations

Page Size

โœ” ์‹œ์Šคํ…œ ํŠน์„ฑ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋‹ค

  • ์ •๋‹ต x
  • ์ ์  ์ปค์ง€๋Š” ๊ฒฝํ–ฅ

โœ” ์ผ๋ฐ˜์ ์ธ page size

  • 2^7(128) bytes ~ 2^22(4M) bytes

Small page size vs Large page size

Small Page Size Large Page Size
Large page table / # of PF Small page table / # of PF
high overhead(kernel) low overhead(kernel)
๋‚ด๋ถ€ ๋‹จํŽธํ™” ๊ฐ์†Œ ๋‚ด๋ถ€ ๋‹จํŽธํ™” ์ฆ๊ฐ€
I/O์‹œ๊ฐ„ ์ฆ๊ฐ€ I/O์‹œ๊ฐ„ ๊ฐ์†Œ
locality ํ–ฅ์ƒ locality ์ €ํ•˜
page fault ์ฆ๊ฐ€ page fault ๊ฐ์†Œ

โœ” HW ๋ฐœ์ „ ๊ฒฝํ–ฅ

  • CPU ↑, Memory size ↑ -> ์ƒ๋Œ€์ ์ธ page fault ์ฒ˜๋ฆฌ ๋น„์šฉ ↑
  • CPU ๋ฐœ์ „ ์†๋„์™€ disk ๋ฐœ์ „ ์†๋„์˜ gap ์ฆ๊ฐ€ -> I/O bottle neck ๊ฐ€๋Šฅ์„ฑ ↑ -> I/O ์‹œ๊ฐ„ ๊ฐ์†Œ ํ•„์š”

Program Restructuring

โœ” ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ์‹œ์Šคํ…œ์˜ ํŠน์„ฑ์— ๋งž๋„๋ก ํ”„๋กœ๊ทธ๋žจ์„ ์žฌ๊ตฌ์„ฑ

โœ” ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ธฐ๋ฒ• (paging system)์— ๋Œ€ํ•ด ์ดํ•ดํ•˜๊ณ  ์žˆ๋‹ค๋ฉด, ํ”„๋กœ๊ทธ๋žจ์˜ ๊ตฌ์กฐ๋ฅผ ๋ณ€๊ฒฝํ•˜์—ฌ ์„ฑ๋Šฅ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค

Example

null

โœ” zar๋ฅผ ๋‹ค 0์œผ๋กœ ๋งŒ๋“œ๋Š” ํ”„๋กœ๊ทธ๋žจ

null

โœ” ๋ฉ”๋ชจ๋ฆฌ์—๋Š” ํ–‰๋‹จ์œ„๋กœ ์ ์žฌ ๋œ๋‹ค.

null

โœ” ํƒ์ƒ‰ ์ˆœ์„œ๋ฅผ ๋ฐ”๊ฟ”์„œ ํ–‰์ด ๋ฐ”๋€” ๋•Œ๋งŒ page fault๊ฐ€ ๋ฐœ์ƒํ•˜๋„๋ก ๋ณ€๊ฒฝ

TLB Reach

โœ” TLB(Translation Lookaside Buffer) : ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๋ฌผ๋ฆฌ์ ์ธ ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์†๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์บ์‹œ

  • ์ตœ๊ทผ์— ์ผ์–ด๋‚œ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์™€ ๋ฌผ๋ฆฌ ์ฃผ์†Œ์˜ ๋ณ€ํ™˜ ํ…Œ์ด๋ธ”์„ ์ €์žฅ

โœ” TLB Reach: TLB๋ฅผ ํ†ตํ•ด ์ ‘๊ทผ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ์˜ ์–‘

  • (# of entries) * (page size)

โœ” TLB์˜ hit ratio

  • TLB์˜ ํฌ๊ธฐ ์ฆ๊ฐ€
    • expensive
  • Page ํฌ๊ธฐ ์ฆ๊ฐ€ of ๋‹ค์–‘ํ•œ page size ์ง€์›
    • OS์˜ ์ง€์› ํ•„์š”
      • ์ตœ๊ทผ OS์˜ ๋ฐœ์ „ ๊ฒฝํ–ฅ

๋Œ“๊ธ€