24 research outputs found
XinuPi3: Teaching Multicore Concepts Using Embedded Xinu
As computer platforms become more advanced, the need to teach advanced computing concepts grows accordingly. This paper addresses one such need by presenting XinuPi3, a port of the lightweight instructional operating system Embedded Xinu to the Raspberry Pi 3. The Raspberry Pi 3 improves upon previous generations of inexpensive, credit card-sized computers by including a quad-core, ARM-based processor, opening the door for educators to demonstrate essential aspects of modern computing like inter-core communication and genuine concurrency.
Embedded Xinu has proven to be an effective teaching tool for demonstrating low-level concepts on single-core platforms, and it is currently used to teach a range of systems courses at multiple universities. As of this writing, no other bare metal educational operating system supports multicore computing. XinuPi3 provides a suitable learning environment for beginners on genuinely concurrent hardware. This paper provides an overview of the key features of the XinuPi3 system, as well as the novel embedded system education experiences it makes possible
A Systematic Map for Improving Teaching and Learning in Undergraduate Operating Systems Courses
Operating Systems (OS) is an important area of knowledge included in virtually allundergraduate computing curricula and in some engineering curricula as well. Teaching and learning anOS undergraduate course have always been a challenge. Several different approaches have been used for OSteaching and learning. Nevertheless, it is not easy for a teacher to choose one of them. No guidelines areavailable on how to choose one of them to match the specific objectives of each OS course. The objective ofthis paper is to analyze the approaches that have been used to improve OS teaching and learning by applyinga systematic map. In particular, we consider the following dimensions: learning objectives, assessment,empirical study, methodology, and mode (face-to-face, online, or blended). The systematic map devisedin this paper is focused on the time span from 1995 to 2017 and considered six of the major publicationson the Computer Science Education. We considered three journals (theJournal of Engineering Education,the IEEE TRANSACTIONS ONEDUCATION, and theInternational Journal of Engineering Education) and threeconferences (the ACM Technical Symposium on Computer Science Education—SIGCSE, the Conferenceon Computing Education Research—ITiCSE, and the International Conference on Computing EducationResearch—Koli). A total of 55 papers were included in the study after performing a search based on theinclusion/exclusion criteria. Nine approaches to improve OS teaching and learning were identified andanalyzed. Furthermore, the implications for OS instructors and for research in this field are discussed.2018-1
MiniOS: an instructional platform for teaching operating systems labs
Delivering hands-on practice laboratories for introductory courses on operating systems is a difficult task. One of the main sources of the difficulty is the sheer size and complexity of the operating systems software. Consequently, some of the solutions adopted in the literature to teach operating systems laboratory consider smaller and simpler systems, generally referred to as instructional operating systems. This work continues in the same direction and is threefold...MiniOSoperating systems laborator
A graphical file system visualization tool for operating systems
Fileshark was developed for the primary purpose of aiding in the teaching of students in file system related courses, particularly at the undergraduate level, by providing a visual representation of often abstract file system ideas. Many teachers find it difficult to teach the file system in detail in a typical operating systems classroom environment due to its abstract nature and the inability to truly observe what is occurring within the file system. Fileshark provides an easy to use interface that can be used by both students and professors to visualize the internal workings of the file system and the processes that allow the file system to read, store and delete data. Such a program also has applications for systems forensics and system security related research. The application described in the following project is the result of those aims. The future goal of this project is for the application to be tested in the classroom setting with the goal of continued implementation into file system related curriculum
Using The Nanvix Operating System in Undergraduate Operating System Courses
National audienceOperating Systems (OSs) have an important position in the Computer Science curriculum. When students face this subject, they study core concepts, mechanisms and strategies that apply to several fields. To support practical lectures in an OSs course, instructors may adopt an OS on which students can work, exercising their knowledge and enhancing their practical skills. In this context, we present Nanvix, a new OS designed to address this use in undergraduate OSs courses. We introduce a flexible assignment-based teaching methodology for our OS, and we assess the effectiveness of this methodology by applying it in the OSs course of the Pontifical Catholic University of Minas Gerais. When using Nanvix, the average score of the students in the course increased in 11.2%, and the failure rate dropped 47.7%. Moreover, we observed that with Nanvix students got more motivated and interested in the OSs field
Studio e realizzazione dell’emulatore μARM e del progetto JaeOS per la didattica dei Sistemi Operativi
La maggior parte degli strumenti per la didattica dei sistemi operativi sono basati sull'architettura MIPS, che è ampiamente superata. Questo lavoro introduce μARM, un emulatore, basato su architettura ARM7TDMI adeguato all'insegnamento a livello universitario.
Inoltre viene presentato JaeOS, un manuale di specifiche per un sistema operativo multi-strato che supporti esecuzione multi-processo, memoria virtuale, sincronizzazione dei thread, gestione di dispositivi esterni ed un file system.
I progetti tradizionali, come OSP2 o OS/161, forniscono un buon quantitativo di codice già sviluppato agli studenti, i quali devono modificare i moduli del sistema già implementati ed aggiungerne di nuovi.
Con μARM/JaeOS gli studenti sono sottoposti ad un'esperienza pedagogicamente differente, partendo dal solo emulatore hardware e finendo con un sistema operativo, interamente sviluppato da loro, in grado di eseguire programmi sviluppati dagli studenti stessi
Recommended from our members
Multi-Persona Mobile Computing
Smartphones and tablets are increasingly ubiquitous, and many users rely on multiple mobile devices to accommodate work, personal, and geographic mobility needs. Pervasive access to always-on mobile computing has created new security and privacy concerns for mobile devices that often force users to carry multiple devices to meet those needs. The volume and popularity of mobile devices has commingled hardware and software design, and created tightly vertically integrated platforms that lock users into a single, vendor controlled ecosystem. My thesis is that lightweight mechanisms can be added to commodity operating systems to enable multiple virtual phones or tablets to run at the same time on a physical smartphone or tablet device, and to enable apps from multiple mobile platforms, such as iOS and Android, to run together on the same physical device, all while maintaining the low-latency and responsiveness expected of modern mobile devices. This dissertation presents two lightweight operating systems mechanisms, virtualization and binary compatibility, that enable multi-persona mobile computing. First, we present Cells, a mobile virtualization architecture enabling multiple virtual phones, or personas, to run simultaneously on the same physical cellphone in a secure and isolated manner. Cells introduces device namespaces that allow apps to run in a virtualized environment while still leveraging native devices such as GPUs to provide accelerated graphics. Second, we present Cycada, an operating system compatibility architecture that runs applications built for different mobile ecosystems, iOS and Android, together on a single Android device. Cycada introduces kernel-level code adaptation and diplomats to simplify binary compatibility support by reusing existing operating system code and unmodified frameworks and libraries. Both Cells and Cycada have been implemented in Android, and can run multiple Android virtual phones, and a mix of iOS and Android apps on the same device with good performance. Because mobile computing has become increasingly important, we also present a new way to teach operating systems in a mobile-centric way that incorporates the concepts of geographic mobility, sensor data acquisition, and resource-constrained design considerations