Architecture Logicielle et Matérielle des Ordinateurs v2 (ALMO2)
Planning
- This module will open in september, 2020.
Module purposes
- The purpose of this module is to explain in detail how it is possible to have several programs running independently on a multicore computer.
- The module introduces progressively:
- the main hardware components;
- and the corresponding operating system services.
- The studied hardware architecture is simulated by using a cycle-and-bit-accurate model, able to execute the software from the true beginning (full system emulation).
- There is one practical work per week:
- The really first code is a simple assembler program which print "hello Word!" on the terminal without any operating system or even any function libraries.
- The last one is composed of two programs running independently on the same processeur by using virtual memory.
- The module must answer the following questions (this is non-exhaustive list):
- How does a machine start?
- What is the role of an operating system and what services does it offer?
- What is a memory cache?
- What is a device controller, and how to use it?
- What is a device driver?
- How to run multiple programs on a single processor?
- How can multiple processors share the same address space?
- Why should each program have its own address space and how?
- and finally:
- When you hit a key on the keyboard, how does the character appear on the screen?
Prerequisites
- A good knowledge of the C language is necessary since the module proposes to write an operating system from the beginning.
- The knowledge of the MIPS32 assembler is also important, but the principles of this language and the conventions of use for writing functions are recalled the first week.
Course plan
- Assembler programming on a minimal machine
The purpose of this first session is to present a minimal architecture and how write a first program in assembly language.
Documents
Last modified 6 years ago
Last modified on Jun 28, 2019, 7:01:59 AM