{"id":40563,"date":"2026-05-16T09:01:27","date_gmt":"2026-05-16T00:01:27","guid":{"rendered":"https:\/\/blog.agentsoft.co.kr\/index.php\/2026\/05\/16\/40563\/"},"modified":"2026-05-16T09:01:27","modified_gmt":"2026-05-16T00:01:27","slug":"pintos-project-3-final-report-virtual-memory-frame-table","status":"publish","type":"post","link":"https:\/\/blog.agentsoft.co.kr\/index.php\/2026\/05\/16\/40563\/","title":{"rendered":"Pintos Project 3 final report &#8211; Virtual Memory, Frame table"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/image4.happycampus.com\/Production\/thumbnail\/2024\/06\/10\/data29981845-0001.jpg\"><img decoding=\"async\" src=\"https:\/\/image4.happycampus.com\/Production\/thumbnail\/2024\/06\/10\/data29981845-0002.jpg\"><\/p>\n<p><strong>\ubaa9\ucc28<\/strong><\/p>\n<p>1. frame table<br \/>\n1.1. Algorithm<br \/>\n1.2. Data Structure<br \/>\n1.3. Function<\/p>\n<p>2. lazy loading<br \/>\n2.1. Algorithm<br \/>\n2.2. Function<\/p>\n<p>3. Supplemental page table<br \/>\n3.1. Algorithm<br \/>\n3.2. Data Structure<br \/>\n3.3. Function<\/p>\n<p>4. stack growth<br \/>\n4.1. Algorithm<br \/>\n4.2. Function<\/p>\n<p>5. File memory mapping<br \/>\n5.1. Algorithm<br \/>\n5.2. Data structure<br \/>\n5.3. Function<\/p>\n<p>6. Swap table<br \/>\n6.1. Algorithm<br \/>\n6.2. Data structure<br \/>\n6.3.Function<\/p>\n<p>7. On process termination<br \/>\n7.1. Algorithm<br \/>\n7.2. Function<\/p>\n<p>8. discussion<\/p>\n<p><strong>\ubcf8\ubb38\ub0b4\uc6a9<\/strong><\/p>\n<p>1. frame table<br \/>\n\uc5b4\ub5a4 page\uc5d0 frame\uc744 \ud560\ub2f9\ud558\uae30 \uc704\ud574 frame table\uc744 \uc21c\ud68c\ud558\uc600\uc744 \ub54c<br \/>\n1. free frame\uc774 \uc874\uc7ac\ud558\ub294 \uacbd\uc6b0<br \/>\n\ud574\ub2f9 frame\uc744 \ud560\ub2f9\ud558\uba74 \ub41c\ub2e4.<br \/>\n2. free frame\uc774 \uc874\uc7ac\ud558\uc9c0 \uc54a\ub294 \uacbd\uc6b0<br \/>\n\ub2e4\ub978 frame\uc758 page\ub97c evict\ud558\uc5ec \uc0c8\ub85c\uc6b4 free frame\uc744 \ub9cc\ub4e4\uc5b4\uc57c \ud55c\ub2e4<br \/>\n\uc774\ub54c page replacement algorithm\uc744 \ud1b5\ud574<br \/>\nevict\ud560 frame\uc744 \uace0\ub978 \ud6c4,<br \/>\n\ud604\uc7ac frame\uc5d0 \ucc38\uc870\uc911\uc778 \ubaa8\ub4e0 page table\uc758 reference\ub97c \uc81c\uac70\ud558\uace0,<br \/>\npage\uc5d0 \ubcc0\ud654\uac00 \uc788\ub2e4\uba74 write back\uc774\ub098 swap\uc744 \uc218\ud589\ud55c\ub2e4.<br \/>\nevict\ub41c frame\uc740 \uc0c8\ub85c\uc6b4 page\ub97c \uc800\uc7a5\ud558\uae30 \uc704\ud574 \uc0ac\uc6a9\ub41c\ub2e4.<br \/>\nproject 3\uc5d0\uc11c<br \/>\nframe\uc5d0\uc11c\uc758 eviction\uc744 \uc704\ud574 \uc0ac\uc6a9\ud560 page replacement algorithm\uc740 Clock algorithm\uc774\ub2e4.<br \/>\n\uc774 \uc54c\uace0\ub9ac\uc998\uc740<br \/>\nframe table\uc744 \uc21c\ud68c\ud558\uc5ec<br \/>\npage\uc758 accessed bit\uc774 1\uc778 \uacbd\uc6b0 0\uc73c\ub85c \ubc14\uafd4\uc8fc\uace0,<br \/>\npage\uc758 accessed bit\uc774 0\uc778 \uacbd\uc6b0 \uc774\ub97c \uc120\ud0dd\ud55c\ub2e4.<br \/>\n1.1. Algorithm<br \/>\nFrame \uc0dd\uc131<br \/>\nFrame \uc0dd\uc131\uc744 \uc704\ud55c memory\uacf5\uac04\uc744 \ud560\ub2f9\ud558\uae30 \uc704\ud574 frame_allocate\uc744 \ud638\ucd9c\ud55c\ub2e4.<br \/>\n\uc774\ub54c, palloc_get_page(PAL_USER) \ub97c \ud1b5\ud574 user pool\ub85c\ubd80\ud130 page\ub97c \uc0dd\uc131\ud55c\ub2e4.<br \/>\npage allocation \uc131\uacf5<br \/>\n\uc0dd\uc131\ud55c \uc8fc\uc18c \uadf8\ub300\ub85c \uc0ac\uc6a9<br \/>\npage allocation \uc2e4\ud328<br \/>\nfree frame\uc744 \ud655\ubcf4\ud558\uae30 \uc704\ud574 eviction()\uc744 \ud638\ucd9c\ud55c\ub2e4.<br \/>\npalloc_get_page()\ub97c \ub2e4\uc2dc \ud638\ucd9c\ud55c\ub2e4.<br \/>\nframe\uc744 \uc0dd\uc131\ud558\uae30 \uc704\ud574 malloc()\uc744 \ud638\ucd9c\ud55c\ub2e4.<br \/>\nframe\uc744 frame table\uc5d0 \ucd94\uac00\ud55c\ub2e4.<br \/>\nFrame \uc81c\uac70<br \/>\nFrame \uc81c\uac70\ub97c \uc704\ud55c frame_deallocate()\ub97c \ud638\ucd9c\ud55c\ub2e4.<br \/>\nFrame table\uc5d0\uc11c \ud574\ub2f9 frame\uc744 \ucc3e\uc73c\uba74,<br \/>\npage\ub97c \ud574\uc81c\ud574\uc8fc\uace0,<br \/>\nframe table\uc5d0\uc11c frame\uc744 \uc81c\uac70\ud55c\ub2e4.<\/p>\n<p>\ucd9c\ucc98 : <a href=\"https:\/\/www.happycampus.com\/report-doc\/29981845\/\" target=\"_blank\">\ud574\ud53c\ucea0\ud37c\uc2a4<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\ubaa9\ucc28 1. frame table 1.1. Algorithm 1.2. Data Structure 1.3. Function 2. lazy loading 2.1. Algorithm 2.2. Function 3. Supplemental page table 3.1. Algorithm 3.2. Data Structure 3.3. Function 4. stack growth 4.1. Algorithm 4.2. Function 5. File memory mapping 5.1. Algorithm 5.2. Data structure 5.3. Function 6. Swap table 6.1. Algorithm 6.2. Data structure [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[12085,50878,50883,50880,50862,50882,50881,50879,16377,50863],"class_list":["post-40563","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-acarbose","tag-frame-table","tag-lazy-loading","tag-page-table","tag-pintos","tag-stack-growth","tag-swap-table","tag-virtual-memory","tag-16377","tag-50863"],"_links":{"self":[{"href":"https:\/\/blog.agentsoft.co.kr\/index.php\/wp-json\/wp\/v2\/posts\/40563","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.agentsoft.co.kr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.agentsoft.co.kr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.agentsoft.co.kr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.agentsoft.co.kr\/index.php\/wp-json\/wp\/v2\/comments?post=40563"}],"version-history":[{"count":0,"href":"https:\/\/blog.agentsoft.co.kr\/index.php\/wp-json\/wp\/v2\/posts\/40563\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.agentsoft.co.kr\/index.php\/wp-json\/wp\/v2\/media?parent=40563"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.agentsoft.co.kr\/index.php\/wp-json\/wp\/v2\/categories?post=40563"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.agentsoft.co.kr\/index.php\/wp-json\/wp\/v2\/tags?post=40563"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}