Post

[OS] Operating System(10-3): Allocation of Frame

[OS] Operating System(10-3): Allocation of Frame

๐Ÿ€ ์šด์˜์ฒด์ œ ์ „๊ณต ์ˆ˜์—… ์ •๋ฆฌ

Allocation of Frames


๐Ÿ“šAllocation of Frames: ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์‹œ์— ์‹คํ–‰๋  ๋•Œ ๊ฐ๊ฐ์—๊ฒŒ ์–ผ๋งˆ๋งŒํผ์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„(ํ”„๋ ˆ์ž„)์„ ์ค„์ง€ ์ •ํ•˜๋Š” ๊ฒƒ

  • ๊ฐ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ•„์š”๋กœํ•˜๋Š” frame์˜ ์ˆ˜๋Š” minimum์ด ์กด์žฌํ•จ
  • maximum์€ ์‹œ์Šคํ…œ์˜ ์ „์ฒด ํ”„๋ ˆ์ž„ ์ˆ˜
  • ๋„ˆ๋ฌด ์ ๊ฒŒ ์ฃผ๋ฉด page fault๊ฐ€ ์ž์ฃผ ๋ฐœ์ƒ, ๋„ˆ๋ฌด ๋งŽ์ด ์ฃผ๋ฉด ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ถ€์กฑํ•ด์ง

  • ์˜ˆ์‹œ: IBM 370 - 6 pages to handle SS MOVE instruction:
    • instruction is 6 bytes, might span 2 pages
    • 2 pages to handle from - ๋ฐ์ดํ„ฐ ์ฝ๊ธฐ
    • 2 pages to handle to - ๋ฐ์ดํ„ฐ ์“ฐ๊ธฐ
    • ์ตœ์†Œ ํ•„์š” ํ”„๋ ˆ์ž„: 6๊ฐœ (์ด๋ณด๋‹ค ์ ๊ฒŒ ํ• ๋‹นํ•˜๋ฉด page fault ๋ฐœ์ƒ)

โœ…๋‘๊ฐœ์˜ allocation schemes:

  1. **fixed** allocation
  2. **priority** allocation

Fixed allocation


  • Equal allocation: ํ”„๋ ˆ์ž„๊ณผ ํ”„๋กœ์„ธ์Šค ์ˆ˜์— ๋”ฐ๋ผ ๊ท ๋“ฑํ•˜๊ฒŒ ๋ฐฐ๋ถ„ํ•˜๋Š” ๋ฐฉ๋ฒ•

๊ณ„์‚ฐ ๊ณต์‹:

  • ์ด ํ”„๋ ˆ์ž„ = 100๊ฐœ, OS์šฉ = 20๊ฐœ, ํ”„๋กœ์„ธ์Šค = 5๊ฐœ
  • ๊ฐ ํ”„๋กœ์„ธ์Šค ํ• ๋‹น = (100-20) รท 5 = 16๊ฐœ โŒ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„ ๊ฐ€๋Šฅ์„ฑ ์กด์žฌ

  • Proportional allocation: process size์— ๋”ฐ๋ผ frame์„ ํ• ๋‹นํ•˜๋Š” ๋ฐฉ๋ฒ•

๊ณ„์‚ฐ ๊ณต์‹:

  • s_i = ํ”„๋กœ์„ธ์Šค i์˜ ํฌ๊ธฐ
  • S = ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค ํฌ๊ธฐ์˜ ํ•ฉ
  • m = ์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ”„๋ ˆ์ž„ ์ˆ˜
  • a_i = ํ”„๋กœ์„ธ์Šค i์— ํ• ๋‹นํ•  ํ”„๋ ˆ์ž„ ์ˆ˜ = (s_i/S) ร— m

  • ์˜ˆ์‹œ ๊ณ„์‚ฐ:
  • m = 62, s1 = 10, s2=127 โ†’ S = 137
    • ํ”„๋กœ์„ธ์Šค 1: ํฌ๊ธฐ 10, ํ• ๋‹น = (10/137) ร— 62 โ‰ˆ 4 ํ”„๋ ˆ์ž„
    • ํ”„๋กœ์„ธ์Šค 2: ํฌ๊ธฐ 127, ํ• ๋‹น = (127/137) ร— 62 โ‰ˆ 57 ํ”„๋ ˆ์ž„

Global vs Local Allocation


๐Ÿ“šGlobal replacement: ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ชจ๋“  frame ์ง‘ํ•ฉ์—์„œ ๊ต์ฒดํ•  frame์„ ๊ณ ๋ฆ„

  • ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋Š” ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋กœ๋ถ€ํ„ฐ frame์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Œ
  • ํ”„๋กœ์„ธ์Šค ์‹คํ–‰ ์‹œ๊ฐ„์ด ํฌ๊ฒŒ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Œ(โ†’ ํ• ๋‹น๋œ ํ”„๋ ˆ์ž„์˜ ์ˆ˜๊ฐ€ ์ž์‹ ์€ ๋ฌผ๋ก  ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์— ์˜ํ•ด ์˜ํ–ฅ์„ ๋ฐ›๊ธฐ ๋•Œ๋ฌธ)
  • ์ฒ˜๋ฆฌ๋Ÿ‰์ด ๋” ๋†’์Œ - ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋จ

๐Ÿ“šLocal replacement: ๊ฐ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž์‹ ์—๊ฒŒ ํ• ๋‹น๋œ ํ”„๋ ˆ์ž„ ๋‚ด์—์„œ๋งŒ ๊ต์ฒด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ์‹

  • ๊ฐ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋…๋ฆฝ์ ์ธ ํ”„๋ ˆ์ž„ ์ง‘ํ•ฉ ์‚ฌ์šฉ
  • ํ”„๋กœ์„ธ์Šค๋ณ„ ์„ฑ๋Šฅ์ด ์ผ๊ด€์ ์ž„
  • ๋ฉ”๋ชจ๋ฆฌ ํ™œ์šฉ๋„๊ฐ€ ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ์Œ

Reclaiming Pages


global page-replacement policy๋ฅผ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ „๋žต์ด ์กด์žฌ

๐Ÿ“šReclaiming Pages: ๋ฉ”๋ชจ๋ฆฌ ์š”์ฒญ์ด ํ•ญ์ƒ ์„ฑ๊ณตํ•  ์ˆ˜ ์žˆ๋„๋ก free frame์˜ ์ˆ˜๊ฐ€ ์–ด๋–ค ์ž„๊ณ„์น˜์— ๋„๋‹ฌํ•˜๋ฉด ํŽ˜์ด์ง€ ๊ต์ฒด๋ฅผ ๋ฏธ๋ฆฌ ์‹คํ–‰ํ•˜๋Š” ์ „๋žต

โœ…๋™์ž‘ ์›๋ฆฌ:

  1. threshold ๋ชจ๋‹ˆํ„ฐ๋ง: free-frame list๊ฐ€ ํŠน์ • ์ž„๊ณ„๊ฐ’(threshold) ์ดํ•˜๋กœ ๋–จ์–ด์ง€๋ฉด ํŽ˜์ด์ง€ ํšŒ์ˆ˜ ์‹œ์ž‘
  2. ๋ฏธ๋ฆฌ ํ™•๋ณด: free-frame list๊ฐ€ ์™„์ „ํžˆ ๋น„๊ธฐ ์ „์— ๊ต์ฒด ์ž‘์—… ์ˆ˜ํ–‰
  3. ์—ฐ์†์  ์„œ๋น„์Šค: ์ƒˆ๋กœ์šด ๋ฉ”๋ชจ๋ฆฌ ์š”์ฒญ์„ ๋Œ€๊ธฐ์‹œํ‚ค์ง€ ์•Š๊ณ  ์ฆ‰์‹œ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ

alt text

Non-Uniform Memory Access


  • UMA ์‹œ์Šคํ…œ์—์„œ๋Š” ๋ชจ๋“  ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ์‹œ๊ฐ„์ด ๋™์ผํ•จ

๐Ÿ“šNUMA system:

  • CPU๋งˆ๋‹ค ๋กœ์ปฌ ๋ฉ”๋ชจ๋ฆฌ ์กด์žฌ
  • ๋กœ์ปฌ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์ด ์›๊ฒฉ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ๋ณด๋‹ค ๋น ๋ฆ„
  • ์‹œ์Šคํ…œ ๋ฒ„์Šค๋ฅผ ํ†ตํ•ด ์ƒํ˜ธ ์—ฐ๊ฒฐ alt text

โœ…ํŠน์ง•:

  1. Locality: ํ”„๋กœ์„ธ์Šค๋ฅผ ํ•ด๋‹น ๋ฉ”๋ชจ๋ฆฌ์™€ ๊ฐ€๊นŒ์šด CPU์—์„œ ์‹คํ–‰
  2. ํ™•์žฅ์„ฑ: ๋” ๋งŽ์€ CPU-๋ฉ”๋ชจ๋ฆฌ ๋…ธ๋“œ ์ถ”๊ฐ€ ๊ฐ€๋Šฅ

โ˜€๏ธ Solaris์˜ NUMA ์ตœ์ ํ™”: lgroups

  • CPU์™€ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๊ฐ€๊นŒ์šด ๊ฑฐ๋ฆฌ์— ์œ„์น˜
  • ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ™์€ lgroup ๋‚ด์˜ CPU์—์„œ ์‹คํ–‰
  • ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐ™์€ lgroup ๋‚ด์— ํ• ๋‹น

Thrashing


๐Ÿ“šThrashing: ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰๋ณด๋‹ค ํŽ˜์ด์ง•์— ๋” ๋งŽ์€ ์‹œ๊ฐ„์„ ๋ณด๋‚ด๋Š” ์ˆœ๊ฐ„ - ์ฆ‰, ํŽ˜์ด์ง€ ํดํŠธ๊ฐ€ ๊ณผ๋„ํ•˜๊ฒŒ ๋ฐœ์ƒํ•˜๋Š” ํ˜„์ƒ

๋งŒ์•ฝ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ถฉ๋ถ„ํ•œ ํŽ˜์ด์ง€๊ฐ€ ์—†์œผ๋ฉด, ํŽ˜์ด์ง€ ํดํŠธ๊ฐ€ ๊ธ‰๊ฒฉํ•˜๊ฒŒ ์ฆ๊ฐ€ํ•˜๊ฒŒ ๋จ

๐Ÿ“๋ฐœ์ƒ๊ณผ์ •:

  1. page fault ๋ฐœ์ƒ
  2. ๊ธฐ์กด ํ”„๋ ˆ์ž„ ๊ต์ฒด
  3. ๋ฐฉ๊ธˆ ๊ต์ฒด๋œ ํ”„๋ ˆ์ž„ ํ•„์š”
  4. ๋ฐ˜๋ณต์  ๊ต์ฒด
  • ๊ธ‰๊ฒฉํ•˜๊ฒŒ ์ฆ๊ฐ€ํ•˜๋Š” ์ด์œ : ํŽ˜์ด์ง€ ํดํŠธ ๋•Œ๋ฌธ์— frame์„ ๊ต์ฒดํ•ด์•ผํ•˜๊ณ  ๊ทธ๋Ÿฌ๋ฉด
    • CPU ํšจ์œจ์ด ๋–จ์–ด์ง
    • OS๋Š” CPU ์‚ฌ์šฉ๋ฅ ์ด ๋‚ฎ์•„ ๋” ๋งŽ์€ ํ”„๋กœ์„ธ์Šค ์ถ”๊ฐ€
    • ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ฆ๊ฐ€ โ†’ ๋” ์‹ฌํ•œ thrasing ๋ฐœ์ƒ

alt text

thrasing์ด ๋ฐœ์ƒํ•˜๋Š” ์ˆœ๊ฐ„ CPU ์‚ฌ์šฉ๋ฅ ์ด ๊ธ‰๊ฒฉํ•˜๊ฒŒ ๋‚ฎ์•„์ง

Demand Paging and Thrashing


Demand paging์ด ์ž‘๋™ํ•˜๋Š” ์ด์œ 

  • Locality Model - ๊ฐ™์ด ํ™œ๋ฐœํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜๋Š” ํŽ˜์ด์ง€์˜ ์ง‘ํ•ฉ
    • ํ”„๋กœ์„ธ์Šค๊ฐ€ ํŠน์ • ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ์ง‘์ค‘์ ์œผ๋กœ ์‚ฌ์šฉ
    • ์—ฌ๋Ÿฌ ์ง€์—ญ์„ฑ์ด ๋™์‹œ์— ํ™œ์„ฑํ™”๋  ์ˆ˜ ์žˆ์Œ

๐Ÿ“์™œ Thrasing์ด ๋ฐœ์ƒํ• ๊นŒ?:

  • ฮฃ(size of locality) > total momory size
  • ๋ชจ๋“  ํ™œ์„ฑ ํ”„๋กœ์„ธ์Šค์˜ ์ง€์—ญ์„ฑ ํฌ๊ธฐ ํ•ฉ์ด ์ „์ฒด ๋ฉ”๋ชจ๋ฆฌ๋ณด๋‹ค ํด ๋•Œ ์“ฐ๋ž˜์‹ฑ์ด ๋ฐœ์ƒ

โœ…local or priority Page Replacement๋กœ ์ œํ•œ์ ์ธ thrashing ํ•ด๊ฒฐ

Local page replacement algorithm๋„ thrashing ๋ฌธ์ œ๋ฅผ ์™„์ „ํžˆ ํ•ด๊ฒฐํ•˜์ง€๋Š” ๋ชปํ•œ๋‹ค.

  • ์™œ๋ƒ๋ฉด ์–ด๋–ค ํ”„๋กœ์„ธ์Šค๊ฐ€ thrashing์ด ์ผ์–ด๋‚˜๋ฉด paging device๊ฐ€ ๋ฐ”๋น ์ง€๋ฏ€๋กœ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋Š” thrashing์ด ์•„๋‹ˆ๋”๋ผ๋„ EAT๊ฐ€ ๋‚˜๋น ์ง„๋‹ค

Working-Set Model


๐Ÿ“šWorking-Set Model: Page์˜ ์‚ฌ์šฉ๋Ÿ‰์„ ์ธก์ •ํ•˜๊ณ  ์ ์ ˆํ•œ ํ”„๋ ˆ์ž„ ํ• ๋‹น์„ ์œ„ํ•œ model

  • ฮ” (Delta)(Working Set Window): ๊ณ ์ •๋œ ํŽ˜์ด์ง€ ์ฐธ์กฐ ํšŸ์ˆ˜ (์˜ˆ: 10,000๊ฐœ ๋ช…๋ น์–ด)
  • WSS_i(Working Set Size): ์ตœ๊ทผ ฮ”๋ฒˆ์˜ ์ฐธ์กฐ์—์„œ ์‚ฌ์šฉ๋œ ๊ณ ์œ  ํŽ˜์ด์ง€ ์ˆ˜
  • D: ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค์˜ WSS ํ•ฉ๊ณ„ (Total Demand Frames)

โœ… D > m (์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ) โ‡’ ์“ฐ๋ž˜์‹ฑ ๋ฐœ์ƒ

alt text

t1์˜ WSS๋Š” 5
t2์˜ WSS๋Š” 2

๊ทธ๋Ÿผ Working set์„ ์–ด๋–ป๊ฒŒ ์ถ”์ ํ•ด์•ผํ• ๊นŒ?

๋ฐ”๋กœ Timer์™€ reference bit๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ทผ์‚ฌ์น˜๋ฅผ ๊ณ„์‚ฐํ•ด์„œ ์ถ”์ ํ•œ๋‹ค.

Keeping Track of the Working Set

  • interval timer + reference bit๋ฅผ ์ด์šฉํ•œ ๊ทผ์‚ฌ ๊ตฌํ˜„
  • ์˜ˆ์‹œ: ฮ” = 10,000, ํƒ€์ด๋จธ ์ธํ„ฐ๋ŸฝํŠธ = 5,000 time units
    • ๊ฐ ํŽ˜์ด์ง€๋งˆ๋‹ค 1๊ฐœ์˜ ์ฐธ์กฐ ๋น„ํŠธ + 2๊ฐœ์˜ ํžˆ์Šคํ† ๋ฆฌ ๋น„ํŠธ = ์ด 3๋น„ํŠธ
    • ํƒ€์ด๋จธ ์ธํ„ฐ๋ŸฝํŠธ ๋ฐœ์ƒ โ†’ ๋ชจ๋“  ์ฐธ์กฐ ๋น„ํŠธ๋ฅผ ํžˆ์Šคํ† ๋ฆฌ ๋น„ํŠธ๋กœ ์‹œํ”„ํŠธ
    • ๋ชจ๋“  ํŽ˜์ด์ง€์˜ ์ฐธ์กฐ ๋น„ํŠธ๋ฅผ 0์œผ๋กœ ์„ค์ •
    • ๋น„ํŠธ ์ค‘ ํ•˜๋‚˜๋ผ๋„ 1์ด๋ฉด Working Set์— ํฌํ•จ

Page Fault Frequency


๐Ÿ“Š Page-Fault Frequency (PFF): ์‹ค์ œ page fault ๋ฐœ์ƒ๋ฅ  ๋ชจ๋‹ˆํ„ฐ๋ง

  • ์ƒํ•œ/ํ•˜ํ•œ ์ž„๊ณ„๊ฐ’ ์„ค์ •
  • ์ž„๊ณ„๊ฐ’ ์ดˆ๊ณผ ์‹œ ํ”„๋ ˆ์ž„ ์กฐ์ •

alt text

alt text

Working set and PFF

Allocation Kernel Memory


์ปค๋„์€ ์ž์‹ ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ์…‹์ด ์ •ํ•ด์ ธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— allocation์ด ํ›จ์”ฌ ์‰ฌ์›€

  • ๋‹ค์–‘ํ•œ ํฌ๊ธฐ์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์š”์ฒญ
  • ์ผ๋ถ€ ์ปค๋„ ๋ฉ”๋ชจ๋ฆฌ๋Š” ์—ฐ์†์ (ํŠนํžˆ device I/O)

Buddy System


๐Ÿ“šBuddy System: ์ปค๋„ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•

โœ…์ž‘๋™์›๋ฆฌ:

  1. ๊ณ ์ • ํฌ๊ธฐ ์„ธ๊ทธ๋จผํŠธ์—์„œ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์—ฐ์†๋œ ํŽ˜์ด์ง€๋“ค์„ ํ• ๋‹น
  2. 2์˜ ๊ฑฐ๋“ญ์ œ๊ณฑ ๋‹จ์œ„๋กœ๋งŒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น
  3. ์š”์ฒญ๋œ ํฌ๊ธฐ๋ณด๋‹ค ํฐ ๋‹ค์Œ 2์˜ ๊ฑฐ๋“ญ์ œ๊ณฑ์œผ๋กœ ๋ฐ˜์˜ฌ๋ฆผ
  4. ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฒƒ๋ณด๋‹ค ์ž‘์€ ํ• ๋‹น์ด ํ•„์š”ํ•˜๋ฉด ํ˜„์žฌ ์ฒญํฌ๋ฅผ ๋‘˜๋กœ ๋ถ„ํ• 

alt text

  • ์žฅ์ : ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ฒญํฌ๋“ค์„ ๋น ๋ฅด๊ฒŒ ๋” ํฐ ์ฒญํฌ๋กœ ๋ณ‘ํ•ฉ ๊ฐ€๋Šฅ
  • ๋‹จ์ : ๋‚ด๋ถ€ ๋‹จํŽธํ™”(fragmentation) ๋ฐœ์ƒ (21KB ์š”์ฒญ์— 32KB ํ• ๋‹น)

Slab Allocator (์Šฌ๋žฉ ํ• ๋‹น์ž)


Buddy System์˜ ๋Œ€์•ˆ ์ „๋žต

  • **Slab</span.: ํ•˜๋‚˜ ์ด์ƒ์˜ **๋ฌผ๋ฆฌ์ ์œผ๋กœ ์—ฐ์†๋œ ํŽ˜์ด์ง€
  • Cache: ํ•˜๋‚˜ ์ด์ƒ์˜ ์Šฌ๋žฉ์œผ๋กœ ๊ตฌ์„ฑ
  • ๊ฐ ๊ณ ์œ ํ•œ ์ปค๋„ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋งˆ๋‹ค ๋‹จ์ผ ์บ์‹œ ์กด์žฌ
  • ์บ์‹œ๋Š” ๊ฐ์ฒด๋“ค(objects)๋กœ ์ฑ„์›Œ์ง - ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์˜ ์ธ์Šคํ„ด์Šค๋“ค

alt text

โœ…์žฅ์ :

  • ๋‹จํŽธํ™”(fragmentation) ์—†์Œ: ์ •ํ™•ํ•œ ํฌ๊ธฐ์˜ ๊ฐ์ฒด๋งŒ ํ• ๋‹น
  • ๋น ๋ฅธ ๋ฉ”๋ชจ๋ฆฌ ์š”์ฒญ ๋งŒ์กฑ: ๋ฏธ๋ฆฌ ํ• ๋‹น๋œ ๊ฐ์ฒด ์‚ฌ์šฉ

Slab Allocator in Linux

๐Ÿ“Linux์—์„œ ์‹ค์ œ ์‚ฌ์šฉ ์˜ˆ์‹œ:

  • process descriptor๋Š” struct task_struct ํƒ€์ž…
  • ์•ฝ 1.7KB์˜ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ
  • ์ƒˆ๋กœ์šด ํƒœ์Šคํฌ ์ƒ์„ฑ ์‹œ โ†’ ์บ์‹œ์—์„œ ์ƒˆ๋กœ์šด struct ํ• ๋‹น
  • ๊ธฐ์กด์˜ ์ž์œ ๋กœ์šด struct task_struct ์‚ฌ์šฉ

  • Slab ํ• ๋‹น ์•Œ๊ณ ๋ฆฌ์ฆ˜:
    1. Partial slab ์—์„œ ์ž์œ  struct ์‚ฌ์šฉ
    2. Partial์ด ์—†์œผ๋ฉด Empty slab์—์„œ ํ•˜๋‚˜ ๊ฐ€์ ธ์˜ด
    3. Empty slab๋„ ์—†์œผ๋ฉด ์ƒˆ๋กœ์šด Empty slab ์ƒ์„ฑ

Prepaging


๐Ÿ“šPrepaging: ํ”„๋กœ์„ธ์Šค ์‹œ์ž‘ ์‹œ ๋ฐœ์ƒํ•˜๋Š” ๋Œ€๋Ÿ‰์˜ ํŽ˜์ด์ง€ ํดํŠธ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•œ ๊ธฐ๋ฒ•

  • ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ฐธ์กฐํ•˜๊ธฐ ์ „์— ํ•„์š”ํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋˜๋Š” ํŽ˜์ด์ง€๋“ค์„ ๋ฏธ๋ฆฌ ๋กœ๋“œ
  • ์˜ˆ์ธก ๊ธฐ๋ฐ˜ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ธฐ๋ฒ•
  • ์‹œ์ž‘ ์‹œ๊ฐ„ ๋‹จ์ถ• vs ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„์˜ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„

โœ…๊ณต์‹:

  • s๊ฐœ ํŽ˜์ด์ง€๋ฅผ prepageํ•˜๊ณ , ฮฑ๊ฐ€ ์‹ค์ œ ์‚ฌ์šฉ๋˜๋Š” ๋น„์œจ์ผ ๋•Œ
  • ์ด๋“: s ร— ฮฑ (์ €์žฅ๋œ ํŽ˜์ด์ง€ ํดํŠธ)
  • ์†์‹ค: s ร— (1-ฮฑ) (๋ถˆํ•„์š”ํ•œ ํŽ˜์ด์ง€)
  • ์กฐ๊ฑด: cost(s prepaging) < cost(sร—ฮฑ page fault) โ†’ prepaging wins

Page size


Page size๋Š” ์‹œ์Šคํ…œ ์„ฑ๋Šฅ์— ํฐ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ์ค‘์š”ํ•œ ์„ค๊ณ„์‚ฌํ•ญ์ด๋‹ค.

โœ…๊ณ ๋ ค ์š”์†Œ๋“ค:

  • ๋‹จํŽธํ™” โ†“: ์ž‘์€ ํŽ˜์ด์ง€๊ฐ€ ์œ ๋ฆฌ
  • ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ํฌ๊ธฐ โ†‘: ํฐ ํŽ˜์ด์ง€๊ฐ€ ์œ ๋ฆฌ
  • ํ•ด์ƒ๋„ โ†“: ์ž‘์€ ํŽ˜์ด์ง€๊ฐ€ ์œ ๋ฆฌ
  • I/O ์˜ค๋ฒ„ํ—ค๋“œ: ํฐ ํŽ˜์ด์ง€๊ฐ€ ํžˆํŠธ์— ์œ ๋ฆฌ, ์ž‘์€ ํŽ˜์ด์ง€๊ฐ€ ์–‘์— ์œ ๋ฆฌ
  • ํŽ˜์ด์ง€ ํดํŠธ ์ˆ˜ โ†‘: ํฐ ํŽ˜์ด์ง€๊ฐ€ ์œ ๋ฆฌ
  • ์ง€์—ญ์„ฑ โ†“: ์ž‘์€ ํŽ˜์ด์ง€๊ฐ€ ์œ ๋ฆฌ
  • TLB ํฌ๊ธฐ์™€ ํšจ์œจ์„ฑ โ†‘: ํฐ ํŽ˜์ด์ง€๊ฐ€ ์œ ๋ฆฌ

์‹ค์ œ ๋ฒ”์œ„๋Š” 2^12(4KB)qnxj 2^22(4MB)๊นŒ์ง€

TLB Reach


๐Ÿ“šTLB Reach: TLB๊ฐ€ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ์˜ ์–‘

  • TLB Reach = (TLB Size) ร— (Page Size)

  • ์ด์ƒ์ ์œผ๋กœ๋Š” ๊ฐ ํ”„๋กœ์„ธ์Šค์˜ working set์ด TLB์— ์ €์žฅ๋˜์–ด์•ผ ํ•จ
  • ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋†’์€ ํŽ˜์ด์ง€ ํดํŠธ ๋ฐœ์ƒ

โœ…ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•:

  1. ํŽ˜์ด์ง€ ํฌ๊ธฐ ์ฆ๊ฐ€: ๋‹จํŽธํ™” ์ฆ๊ฐ€ ์œ„ํ—˜ ์กด์žฌ!
  2. ๋‹ค์ค‘ ํŽ˜์ด์ง€ ํฌ๊ธฐ ์ œ๊ณต: ์œ ์—ฐ์„ฑ ํ™•๋ณด
This post is licensed under CC BY 4.0 by the author.