Informations générales
Number of hours
- Lectures 2.0
- Projects 0
- Tutorials 26.0
- Internship 0
- Laboratory works 0
- Written tests 0
ECTSECTS
0.0
Goal(s)
To study the basics of designing an operating system kernel and writing "low-level" code that achieves the interaction between the system and the hardware (a machine with a RISCV processor). The notion of time-sharing is introduced through the implementation of a preemptive scheduling mechanism for light processes.
Contact Sebastien VIARDOTContent(s)
The entire project is done on a RISCV-based platform emulated by qemu.
1. Write a display driver, serial interface at first, then manage a PCI express controller and video card.
2. Time management via hardware clock
3. Design a simple process scheduling mechanism, create the processes, explicitly switch context, and then switch context triggered by the hardware clock.
4. Mechanism of dormancy of processes, termination 5. Possible extensions: synchronization, input drivers, virtual memory,...
Prerequisites
C programming
Test
Additional Information
Bibliography
- Andrew S. Tanenbaum : Modern Operating Systems et Operating Systems Design and Implementation
- Abraham Silberschatz, Peter B. Galvin et Greg Gagne : Operating Systems Concepts.
- https://github.com/riscv/riscv-isa-manual