{"id":{"repo_id":"vt","oai_identifier":"oai:vtechworks.lib.vt.edu:10919/78293"},"canonical_url":"https://search.dev.ndltd.org/etd/vt/oai:vtechworks.lib.vt.edu:10919/78293","repository":{"repo_id":"vt","name":"Virginia Tech","base_url":"https://vtechworks.lib.vt.edu/oai/request"},"display":{"title":"Symmetric MultiProcessing for the Pintos Instructional Operating System","abstract":"For the last decade, practical limitations have prevented processor speeds from increasing significantly. To increase throughput, the computing industry has turned to multiprocessing; that is, executing computations in parallel on separate processing units. Making use of these additional units requires support from the operating system (OS). Indeed, most modern operating systems do have the capability of recognizing and utilizing multiprocessor hardware. Pintos is an instructional operating system used by many institutions to teach important operating systems concepts. Pintos aims to increase student engagement by providing challenging programming projects in which students personally implement many core functionalities of an operating system. However, prior to this work, Pintos was a uniprocessor OS. This makes it difficult for Pintos to expose students to the same synchronization challenges that most modern kernel developers face. In addition, the first structured project, aimed at teaching scheduling policies, requires students to implement an uniprocessor variant of MLFQS scheduler which is no longer used in modern systems. We implemented Symmetric MultiProcessing (SMP) support in Pintos. We also created a new scheduling assignment to expose students to a multiprocessor proportional-share scheduling policy called Completely Fair Scheduler and to introduce them to the concept of load balancing. Finally, we evaluate the effectiveness of our new Pintos framework in augmenting students’ knowledge of OS scheduling and enhancing their ability to code and debug in a low-level environment.","abstract_html":"For the last decade, practical limitations have prevented processor speeds from increasing significantly. To increase throughput, the computing industry has turned to multiprocessing; that is, executing computations in parallel on separate processing units. Making use of these additional units requires support from the operating system (OS). Indeed, most modern operating systems do have the capability of recognizing and utilizing multiprocessor hardware. Pintos is an instructional operating system used by many institutions to teach important operating systems concepts. Pintos aims to increase student engagement by providing challenging programming projects in which students personally implement many core functionalities of an operating system. However, prior to this work, Pintos was a uniprocessor OS. This makes it difficult for Pintos to expose students to the same synchronization challenges that most modern kernel developers face. In addition, the first structured project, aimed at teaching scheduling policies, requires students to implement an uniprocessor variant of MLFQS scheduler which is no longer used in modern systems. We implemented Symmetric MultiProcessing (SMP) support in Pintos. We also created a new scheduling assignment to expose students to a multiprocessor proportional-share scheduling policy called Completely Fair Scheduler and to introduce them to the concept of load balancing. Finally, we evaluate the effectiveness of our new Pintos framework in augmenting students’ knowledge of OS scheduling and enhancing their ability to code and debug in a low-level environment.","abstract_has_math":false,"creators":["Chao, Lance Rolin"],"institution":"Virginia Tech","degree_name":"Master of Science","degree_level":"masters","degree_discipline":"Computer Science and Applications","degree_department":"Computer Science","school":null,"contributors":[],"advisors":[],"committee_chairs":["Back, Godmar V."],"committee_members":["Kafura, Dennis G.","Butt, Ali R."],"year":2017,"date_issued":"2017-06-30","date_published":"2017-06-30","updated_at":"2026-07-22T22:20:07Z","subjects":["Pintos","Symmetric Multiprocessing","Education","OS"],"languages":[],"rights":["In Copyright"],"rights_urls":["http://rightsstatements.org/vocab/InC/1.0/"],"identifier_entries":[{"key":"dc:identifier.other","label":"Dc Identifier Other","values":["vt_gsexam:12067"],"render_values":[{"text":"vt_gsexam:12067","href":null,"code":true}]}]},"links":{"outbound_url":"http://hdl.handle.net/10919/78293","outbound_label":"Handle","outbound_source":"dc:identifier.uri"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:contributor.committeechair","label":"Committee Chair","values":["Back, Godmar V."]},{"key":"dc:contributor.committeemember","label":"Committee Member","values":["Kafura, Dennis G.","Butt, Ali R."]},{"key":"dc:contributor.department","label":"Department","values":["Computer Science"]},{"key":"dc:creator","label":"Author","values":["Chao, Lance Rolin"]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date.accessioned","label":"Dc Date Accessioned","values":["2017-07-01T08:00:31Z"]},{"key":"dc:date.available","label":"Dc Date Available","values":["2017-07-01T08:00:31Z"]},{"key":"dc:date.issued","label":"Date","values":["2017-06-30"]},{"key":"dc:publisher","label":"Institution","values":["Virginia Tech"]},{"key":"dc:type","label":"Dc Type","values":["Thesis"]},{"key":"thesis:degree_discipline","label":"Discipline","values":["Computer Science and Applications"]},{"key":"thesis:degree_level","label":"Degree Level","values":["masters"]},{"key":"thesis:degree_name","label":"Degree Name","values":["Master of Science"]},{"key":"thesis:institution_name","label":"Thesis Institution Name","values":["Virginia Polytechnic Institute and State University"]}]},{"id":"subjects_keywords","label":"Subjects and Keywords","entries":[{"key":"dc:subject","label":"Dc Subject","values":["Pintos","Symmetric Multiprocessing","Education","OS"]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:rights","label":"Dc Rights","values":["In Copyright"]},{"key":"dc:rights.uri","label":"Rights URI","values":["http://rightsstatements.org/vocab/InC/1.0/"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier.other","label":"Dc Identifier Other","values":["vt_gsexam:12067"]},{"key":"dc:identifier.uri","label":"Identifier URI","values":["http://hdl.handle.net/10919/78293"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description.abstract","label":"Abstract","values":["For the last decade, practical limitations have prevented processor speeds from increasing significantly. To increase throughput, the computing industry has turned to multiprocessing; that is, executing computations in parallel on separate processing units. Making use of these additional units requires support from the operating system (OS). Indeed, most modern operating systems do have the capability of recognizing and utilizing multiprocessor hardware. Pintos is an instructional operating system used by many institutions to teach important operating systems concepts. Pintos aims to increase student engagement by providing challenging programming projects in which students personally implement many core functionalities of an operating system. However, prior to this work, Pintos was a uniprocessor OS. This makes it difficult for Pintos to expose students to the same synchronization challenges that most modern kernel developers face. In addition, the first structured project, aimed at teaching scheduling policies, requires students to implement an uniprocessor variant of MLFQS scheduler which is no longer used in modern systems. We implemented Symmetric MultiProcessing (SMP) support in Pintos. We also created a new scheduling assignment to expose students to a multiprocessor proportional-share scheduling policy called Completely Fair Scheduler and to introduce them to the concept of load balancing. Finally, we evaluate the effectiveness of our new Pintos framework in augmenting students’ knowledge of OS scheduling and enhancing their ability to code and debug in a low-level environment."]},{"key":"dc:description.abstractgeneral","label":"General Abstract","values":["Operating system education remains a cornerstone of any undergraduate computer science curriculum. Instructional operating systems provide the necessary infrastructure to increase student engagement by allowing students to learn through challenging, hands-on projects. We present PintOS/SMP, an instructional operating system we built. PintOS/SMP is based on the existing PintOS operating system that has been in use at Virginia Tech and other institutions for several years. PintOS, however, was not a multiprocessor operating system, which meant that it was unable to support additional execution units provided by the underlying hardware. Thus, it lacks realism in an era in which even smartphones are delivered with multiple execution units. We added multiprocessor support to PintOS in order to introduce students to the challenges that multiprocessor systems brought to OS developers. We also developed a new programming assignment in order to expose students to the techniques used to distribute work efficiently in multiprocessor systems. We deployed PintOS/SMP in a capstone class with 23 students and evaluated it using a survey instrument. Students reported that the projects were useful and interesting and significantly enhanced their level of understanding of operating system concepts, which we confirmed through the use of test questions. Our results indicate that PintOS/SMP provides a challenging but enjoyable learning experience and is successful in reaching its educational goals."]},{"key":"dc:description.degree","label":"Dc Description Degree","values":["Master of Science"]},{"key":"dc:format.medium","label":"Dc Format Medium","values":["ETD"]},{"key":"dc:title","label":"Title","values":["Symmetric MultiProcessing for the Pintos Instructional Operating System"]}]}],"canonical_facts":{"dc:contributor.committeechair":["Back, Godmar V."],"dc:contributor.committeemember":["Kafura, Dennis G.","Butt, Ali R."],"dc:contributor.department":["Computer Science"],"dc:creator":["Chao, Lance Rolin"],"dc:date.accessioned":["2017-07-01T08:00:31Z"],"dc:date.available":["2017-07-01T08:00:31Z"],"dc:date.issued":["2017-06-30"],"dc:description.abstract":["For the last decade, practical limitations have prevented processor speeds from increasing significantly. To increase throughput, the computing industry has turned to multiprocessing; that is, executing computations in parallel on separate processing units. Making use of these additional units requires support from the operating system (OS). Indeed, most modern operating systems do have the capability of recognizing and utilizing multiprocessor hardware. Pintos is an instructional operating system used by many institutions to teach important operating systems concepts. Pintos aims to increase student engagement by providing challenging programming projects in which students personally implement many core functionalities of an operating system. However, prior to this work, Pintos was a uniprocessor OS. This makes it difficult for Pintos to expose students to the same synchronization challenges that most modern kernel developers face. In addition, the first structured project, aimed at teaching scheduling policies, requires students to implement an uniprocessor variant of MLFQS scheduler which is no longer used in modern systems. We implemented Symmetric MultiProcessing (SMP) support in Pintos. We also created a new scheduling assignment to expose students to a multiprocessor proportional-share scheduling policy called Completely Fair Scheduler and to introduce them to the concept of load balancing. Finally, we evaluate the effectiveness of our new Pintos framework in augmenting students’ knowledge of OS scheduling and enhancing their ability to code and debug in a low-level environment."],"dc:description.abstractgeneral":["Operating system education remains a cornerstone of any undergraduate computer science curriculum. Instructional operating systems provide the necessary infrastructure to increase student engagement by allowing students to learn through challenging, hands-on projects. We present PintOS/SMP, an instructional operating system we built. PintOS/SMP is based on the existing PintOS operating system that has been in use at Virginia Tech and other institutions for several years. PintOS, however, was not a multiprocessor operating system, which meant that it was unable to support additional execution units provided by the underlying hardware. Thus, it lacks realism in an era in which even smartphones are delivered with multiple execution units. We added multiprocessor support to PintOS in order to introduce students to the challenges that multiprocessor systems brought to OS developers. We also developed a new programming assignment in order to expose students to the techniques used to distribute work efficiently in multiprocessor systems. We deployed PintOS/SMP in a capstone class with 23 students and evaluated it using a survey instrument. Students reported that the projects were useful and interesting and significantly enhanced their level of understanding of operating system concepts, which we confirmed through the use of test questions. Our results indicate that PintOS/SMP provides a challenging but enjoyable learning experience and is successful in reaching its educational goals."],"dc:description.degree":["Master of Science"],"dc:format.medium":["ETD"],"dc:identifier.other":["vt_gsexam:12067"],"dc:identifier.uri":["http://hdl.handle.net/10919/78293"],"dc:publisher":["Virginia Tech"],"dc:rights":["In Copyright"],"dc:rights.uri":["http://rightsstatements.org/vocab/InC/1.0/"],"dc:subject":["Pintos","Symmetric Multiprocessing","Education","OS"],"dc:title":["Symmetric MultiProcessing for the Pintos Instructional Operating System"],"dc:type":["Thesis"],"thesis:degree_discipline":["Computer Science and Applications"],"thesis:degree_level":["masters"],"thesis:degree_name":["Master of Science"],"thesis:institution_name":["Virginia Polytechnic Institute and State University"]},"updated_at":"2026-07-22T22:20:07Z"}