A Practical Methodology to Learn Computer Architecture, Assembly Language, and Operating System

Hiroaki Fukuda, Paul Leger, Ismael Figueroa

Abstract

System-level details, such as assembly language and operating systems, are important to develop/debug embedded systems and analyze malware. Therefore it is recommended to teach every topic of these subjects. However, their learning cost has been significantly increased due to current system complexities. To solve this problem, several visualization techniques have been proposed to help students in their learning process. However, observing only the computer system behaviors may be insufficient to apply it to real systems due to the lack of practical experiences and a comprehensive understanding of system-level details. To address these issues, we propose a novel methodology where students implement a virtual machine instead of using existing ones. This virtual machine needs to execute binary programs that can be run on a real operating system. Through implementing this virtual machine, students improve by experience their understanding of computer architecture, assembly languages, instruction sets, and the role of operating systems. We also provide MMVM that is a virtual machine implementation reference, and can execute the binary programs while showing the internal states of CPU (registers & flags) to users (students) to support their implementation. Finally, this paper reports the education results applying this methodology to 15 students that consist of 3rd-year students and 1st year of master students.

Download


Paper Citation


in Harvard Style

Fukuda H., Leger P. and Figueroa I. (2020). A Practical Methodology to Learn Computer Architecture, Assembly Language, and Operating System.In Proceedings of the 12th International Conference on Computer Supported Education - Volume 1: CSEDU, ISBN 978-989-758-417-6, pages 333-340. DOI: 10.5220/0009319503330340


in Bibtex Style

@conference{csedu20,
author={Hiroaki Fukuda and Paul Leger and Ismael Figueroa},
title={A Practical Methodology to Learn Computer Architecture, Assembly Language, and Operating System},
booktitle={Proceedings of the 12th International Conference on Computer Supported Education - Volume 1: CSEDU,},
year={2020},
pages={333-340},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0009319503330340},
isbn={978-989-758-417-6},
}


in EndNote Style

TY - CONF

JO - Proceedings of the 12th International Conference on Computer Supported Education - Volume 1: CSEDU,
TI - A Practical Methodology to Learn Computer Architecture, Assembly Language, and Operating System
SN - 978-989-758-417-6
AU - Fukuda H.
AU - Leger P.
AU - Figueroa I.
PY - 2020
SP - 333
EP - 340
DO - 10.5220/0009319503330340