Person in charge: | (-) |
Others: | (-) |
Credits | Dept. | Type | Requirements |
---|---|---|---|
7.5 (6.0 ECTS) | AC |
|
EC2
- Precorequisit for DIE , DCSYS , DCSFW PRED - Precorequisit for DIE , DCSYS PS - Precorequisit for DCSFW SO - Prerequisite for DIE , DCSFW USO - Prerequisite for DCSYS |
Person in charge: | (-) |
Others: | (-) |
This subject aims to instil students with the following skills:
- An awareness of the practicalities of the internal functionality of an operating system (OS).
- The ability to implement the basic components of the kernel of an OS from scratch.
- The ability to develop new functionalities working from a real OS.
Estimated time (hours):
T | P | L | Alt | Ext. L | Stu | A. time |
Theory | Problems | Laboratory | Other activities | External Laboratory | Study | Additional time |
|
T | P | L | Alt | Ext. L | Stu | A. time | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
2,0 | 0 | 8,0 | 0 | 10,0 | 0 | 0 | 20,0 | |||
Description of the protected execution mode architecture: user mode and system mode.
Introduction to the mechanisms for entering the system: exceptions, interrupts and traps (system calls) Describing the programming and handling of the different mechanisms for entering the system (IDT initialisation, handlers and service routings programming, implementing the syscalls library)
|
|
T | P | L | Alt | Ext. L | Stu | A. time | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
1,0 | 0 | 4,0 | 0 | 5,0 | 0 | 0 | 10,0 | |||
Description of the process address space (logical space vs physical space)
Page table handling: incidence on the process creation and context change
|
|
T | P | L | Alt | Ext. L | Stu | A. time | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
3,0 | 0 | 12,0 | 0 | 15,0 | 0 | 0 | 30,0 | |||
Description of the basic data structures for process handling: PCB, lists.
Description of the routines for process handling: process creation and destruction, context change between processes, process planning and getting statistical information from the processes
|
|
T | P | L | Alt | Ext. L | Stu | A. time | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
2,0 | 0 | 8,0 | 0 | 10,0 | 0 | 0 | 20,0 | |||
Description of the routines and data structures for handling basic keyboard input/output
Channel table concept. System calls for handling the channel table.
|
|
T | P | L | Alt | Ext. L | Stu | A. time | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
1,0 | 0 | 4,0 | 0 | 5,0 | 0 | 0 | 10,0 | |||
Description of the data structures for synchronising the processes with semaphores.
System calls for semaphore handling. Description of other features that the students can choose to add to the system
|
|
T | P | L | Alt | Ext. L | Stu | A. time | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
1,0 | 0 | 4,0 | 0 | 5,0 | 0 | 0 | 10,0 | |||
Description of the following concepts: modules, devices and device drivers on Linux
|
|
T | P | L | Alt | Ext. L | Stu | A. time | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
4,0 | 0 | 16,0 | 0 | 20,0 | 0 | 0 | 40,0 | |||
Description of the device driver concept. Description of the techniques for inserting code in the Linux kernel.
|
Total per kind | T | P | L | Alt | Ext. L | Stu | A. time | Total |
15,0 | 0 | 60,0 | 0 | 75,0 | 0 | 0 | 150,0 | |
Avaluation additional hours | 2,5 | |||||||
Total work hours for student | 152,5 |
The OS project comprises items:
Project 1: Implementation of an OS kernel
Project 2: Implementation of a device driver for Linux
Each project will comprise various parts. Each part will review the relevant theoretical concepts and describe the project to be carried out.
On completion of each part, students will make a submission/be interviewed and demonstrate the project"s functioning.
The theory classes will review the basic concepts underlying operating systems needed to carry out the project, and will set out the project requirements.
The project will be implemented in lab classes (usually with support being provided by the lab teacher). Students will be given time in the lab to complete the project. It is mandatory to attend those classes with teacher support as the teacher will use them to assess the evolution of the project.
Project 1: 70%
Project 2: 30%
Throughout the course, the student will be required to hand out two
partial deliveries for the project 1 and a final delivery for each project. The grade of each delivery counts towards the final grade of the project, but none of them is compulsory (the grade for a missed delivery is 0). The advisor will assess the evolution of the project during the laboratory classes. After each delivery, the advisor will show to each student the incorrect issues that must be solved/improved for the following deliveries.
At the end of each delivery the student will validate his project before his advisor. The validation will be done through a set of answers about the knowledge required to develop his project. Each project will be evaluated based on: the software delivered, a global evaluation about the student evolution and a continuous assessment grade (that is calculated based on the answers to his advisor's questions to validate his code both during the laboratory class and after each delivery).
Students must know:
- Basics on operating system concepts, structures and algorithms: mechanisms for entering the system, process management, input/output management and memory management
- User level understanding of the Linux system calls
- Low level programming: C language and i386 assembler
- High level programming: algorithms and data structures
- Basic tools to develop C programs in Linux: Makefile, C compiler and debuggers
Accordingly, students taking this course must previously have passed SO, EC2 and PRED.