| Person in charge: | Yolanda Becerra Fontal (yolandab |
| Others: | Jordi Guitart Fernandez (jguitart Juan José Costa Prats (jcosta Julita Corbalan Gonzalez (juli Maria Luisa Gil Gomez (marisa Ruben Gonzalez Garcia (ruben.gonzalez-garcia |
| 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: | Yolanda Becerra Fontal (yolandab |
| Others: | Jordi Guitart Fernandez (jguitart Juan José Costa Prats (jcosta Julita Corbalan Gonzalez (juli Maria Luisa Gil Gomez (marisa Ruben Gonzalez Garcia (ruben.gonzalez-garcia |
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.
Project 1 will two partial submissions (for monitoring purposes) and a final submission. Project 2 will include a partial submission (for monitoring purposes) and a final submission.
Project 1: 60%
Project 2: 40%
Project 1 will include two partial submissions (for monitoring purposes) and a final submission. Project 2 will include a partial submission (for monitoring purposes) and a final submission. All submissions will be graded.
Project 1.
- partial submission 1: 10%
- partial submission 2: 10%
- final submission: 40% (the total for Project 1 is 60%)
Project 2.
- partial submission: 10%
- final submission: 30% (the total for Project 2 is 40%)
All submissions are obligatory. A zero grade will be awarded for any project parts that are not submitted.
Students must know the basic principles and structure of an operating system.
In addition, students will also need to be able to carry out low-level programming in "C" and in 386 assembler. Knowledge of the concepts underlying high-level programming and data structures will also be useful. Lastly, students should have experience in the use of the Linux operating system and basic programming and de-bugging tools.
Accordingly, students taking this course must previously have passed SO, EC2 and PRED.