{"id":41553,"date":"2026-05-26T09:01:10","date_gmt":"2026-05-26T00:01:10","guid":{"rendered":"https:\/\/blog.agentsoft.co.kr\/index.php\/2026\/05\/26\/41553\/"},"modified":"2026-05-26T09:01:10","modified_gmt":"2026-05-26T00:01:10","slug":"pintos-project-2-%ed%95%9c%ea%b5%ad%ec%96%b4-%ec%84%a4%eb%aa%85%ec%84%9c-design-report-user-program-system-call","status":"publish","type":"post","link":"https:\/\/blog.agentsoft.co.kr\/index.php\/2026\/05\/26\/41553\/","title":{"rendered":"Pintos Project 2 \ud55c\uad6d\uc5b4 \uc124\uba85\uc11c (design report) &#8211; User Program, System Call"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/image4.happycampus.com\/Production\/thumbnail\/2024\/06\/15\/data30007225-0001.jpg\"><img decoding=\"async\" src=\"https:\/\/image4.happycampus.com\/Production\/thumbnail\/2024\/06\/15\/data30007225-0002.jpg\"><\/p>\n<p><strong>\ubaa9\ucc28<\/strong><\/p>\n<p>0. Analysis<br \/>\n0.1. Process Execution Procedure<br \/>\n0.1.1. analysis<br \/>\n0.2. System Call Procedure<br \/>\n0.2.1. what is system call<br \/>\n0.2.2. analysis<br \/>\n0.3. File System<br \/>\n0.3.1. what is file descriptor<br \/>\n0.3.2. analysis<\/p>\n<p>1. Process terminate messages<br \/>\n1.1. goal<br \/>\n1.2. how to solve problems<\/p>\n<p>2. Argument Passing<br \/>\n2.1. goal<br \/>\n2.2. how to solve problems<\/p>\n<p>3. System Call<br \/>\n3.1. goal<br \/>\n3.2. how to solve problems<br \/>\n3.2.1. data structure<br \/>\n3.2.2. detailed algorithm<br \/>\n3.2.3. implement system calls<\/p>\n<p>4. Denying Writes to Executables<br \/>\n4.1. goal<br \/>\n4.2. how to solve problems<\/p>\n<p><strong>\ubcf8\ubb38\ub0b4\uc6a9<\/strong><\/p>\n<p>0. Analysis<br \/>\nproject 1\uc5d0\uc120 kernel\uc5d0\uc11c \uc2e4\ud589\ub418\ub294 thread\ub4e4 \uc704\uc8fc\uc600\ub2e4\uba74 project 2\uc5d0\uc11c\ub294 user program\uc744 \uc2e4\ud589\uc2dc\ud0a4\ub294 \uac83\uc774 \uc704\uc8fc\uc774\ub2e4. \ub530\ub77c\uc11c project 1\uc5d0\uc120 alarm clock, priority scheduling, advanced scheduling \ub4f1\uc758 \ucf54\ub4dc\ub4e4\uc774 \ubaa8\ub450 kernel\uc758 \uc77c\ubd80\uc600\uace0 \ud574\ub2f9 \ucf54\ub4dc\ub4e4\uc744 kernel\uc5d0\uc11c \uc9c1\uc811 compile\ud588\uc9c0\ub9cc, project 2\uc5d0\uc120 user program\uc744 \uc774\uc6a9\ud558\uc5ec compile\ud55c\ub2e4. user program\uc744 \uc2e4\ud589\uc2dc\ud0a4\uae30 \uc704\ud558\uc5ec \uad6c\ud604\ud574\uc57c \ud558\ub294 \uac83\uc740 \uc544\ub798\uc640 \uac19\ub2e4.<br \/>\n1. Process terminate messages<br \/>\n2. Argument passing<br \/>\n3. System call<br \/>\n4. Denying writes to executables<br \/>\nuser program\uc740 file system\uc5d0\uc11c load\ub418\uace0 \uc788\uace0, \ub9ce\uc740 system call \uad6c\ud604\uc740 file system\uc5d0\uc11c \ub2e4\ub904\uc9c4\ub2e4.<br \/>\n0.1. Process Execution Procedure<br \/>\n0.1.1. analysis<br \/>\n1. main()<br \/>\nProcess Execution Procedure\uc744 \ubd84\uc11d\ud558\uae30 \uc704\ud574 \uba3c\uc800 threads\/init.c\uc758 main \ud568\uc218\ub97c \ubcf4\uaca0\ub2e4.<br \/>\n0. Analysis 0.1. Process Execution Procedure<br \/>\n0.1.1. analysis 0.2. System Call Procedure<br \/>\n0.2.1. what is system call 0.2.2. analysis 0.3. File System 0.3.1. what is file descriptor 0.3.2. analysis<\/p>\n<p>\ucd9c\ucc98 : <a href=\"https:\/\/www.happycampus.com\/report-doc\/30007225\/\" target=\"_blank\">\ud574\ud53c\ucea0\ud37c\uc2a4<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\ubaa9\ucc28 0. Analysis 0.1. Process Execution Procedure 0.1.1. analysis 0.2. System Call Procedure 0.2.1. what is system call 0.2.2. analysis 0.3. File System 0.3.1. what is file descriptor 0.3.2. analysis 1. Process terminate messages 1.1. goal 1.2. how to solve problems 2. Argument Passing 2.1. goal 2.2. how to solve problems 3. System Call 3.1. [&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,50875,50877,50862,50873,50876,50874,50865,16377,50863],"class_list":["post-41553","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-acarbose","tag-fork","tag-multi-oom","tag-pintos","tag-process-termination","tag-stack","tag-systemcall","tag-thread","tag-16377","tag-50863"],"_links":{"self":[{"href":"https:\/\/blog.agentsoft.co.kr\/index.php\/wp-json\/wp\/v2\/posts\/41553","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=41553"}],"version-history":[{"count":0,"href":"https:\/\/blog.agentsoft.co.kr\/index.php\/wp-json\/wp\/v2\/posts\/41553\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.agentsoft.co.kr\/index.php\/wp-json\/wp\/v2\/media?parent=41553"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.agentsoft.co.kr\/index.php\/wp-json\/wp\/v2\/categories?post=41553"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.agentsoft.co.kr\/index.php\/wp-json\/wp\/v2\/tags?post=41553"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}