Enlarging letters   Home   Information   Contacting   Map
Catalā   Castellano

Operating Systems Project (PROSO)

Credits Dept. Type Requirements
7.5 (6.0 ECTS) AC
  • Compulsory for DIE
  • Elective for DCSFW
  • Elective for DCSYS
EC2 - Precorequisit for DIE , DCSYS , DCSFW
PRED - Precorequisit for DIE , DCSYS
PS - Precorequisit for DCSFW
SO - Prerequisite for DIE , DCSFW
USO - Prerequisite for DCSYS

Instructors

Person in charge:  Yolanda Becerra Fontal (yolandab@ac.upc.edu)
Others:Jordi Guitart Fernandez (jguitart@ac.upc.edu)
Juan José Costa Prats (jcosta@ac.upc.edu)
Julita Corbalan Gonzalez (juli@ac.upc.edu)
Maria Luisa Gil Gomez (marisa@ac.upc.edu)
Ruben Gonzalez Garcia (ruben.gonzalez-garcia@upc.edu)

General goals

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.

Specific goals

Knowledges

  1. Learn the workings of a real OS, from switching on and system booting, to dynamic management of resources and switching off the computer at the end of the session.
  2. Learn the implementation details of some of the basic components of a real OS: initialisation code, memory management code, input/output management, process management code, and loading code for executable files.
  3. Learn the method for dynamically inserting code in a real OS: Linux modules.
  4. Learn the special device concept in Linux and the device driver concept.

Abilities

  1. Learn how to implement a complex low-level programme from scratch.
  2. Learn how to add low-level code that interacts with complex, low-level real code.
  3. Master the tools and methods for developing and debugging low-level code.

Competences

  1. Ability to work effectively in small groups to solve problems of middling difficulty.
  2. Ability to design systems, components and processes meeting certain needs, using the most appropriate methods, techniques and tools in each case.
  3. Ability to think in abstract terms. Ability to tackle new problems by consciously using strategies that have proved useful in solving previous problems.
  4. Ability to solve problems through the application of scientific and engineering methods.
  5. Ability in and experience of complex and low-level programme coding.

Contents

Estimated time (hours):

T P L Alt Ext. L Stu A. time
Theory Problems Laboratory Other activities External Laboratory Study Additional time

1. Booting process and OS boot-up.
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 booting process and OS boot-up.
Description of the Linux development environment and the compilation and debugging tools that will be used in the first project.
  • Laboratory
    First steps with the development environment and the compilation and debugging tools.
    First steps with the OS file system structure and learning its boot and initialization process.
    Generation of a bootable image of an OS.
  • Additional laboratory activities:
    Continue the lab classes work.

2. Mechanisms for entering the system.
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)
  • Laboratory
    Programming and handling the system enter mechanisms: exceptions, clock and keyboard interrupts and the "write" syscall.

  • Additional laboratory activities:
    Continue the lab classes work.

3. Basic management of memory.
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
  • Laboratory
    Implementing routines for simple management of memory.



  • Additional laboratory activities:
    Continue the lab classes work.

4. Process management and scheduling.
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
  • Laboratory
    Definition of the basic data structures for process management.
    Initialization of the initial process.
    Implementation of the process creation and destruction routines.
    Implementation of the context switch between processes and a policy for its scheduling in the clock interruption.
    Implementation of a mechanism for gathering statistical information from the processes.
  • Additional laboratory activities:
    Continue the lab classes work.

5. Basic management of the input/output.
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.
  • Laboratory
    Definition of basic data structures providing management of the keyboard.
    Implementation of the "read" system call on the keyboard and the keyboard interruption.
    Add to the code the concept of channel table and system calls for its management.
  • Additional laboratory activities:
    Continue the lab classes work.

6. Process synchronization: semaphores. Other features.
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
  • Laboratory
    Implementation of the data structures and system calls for process synchronization using semaphores.
    Implementation of the data structures and system calls associated to the new features.
  • Additional laboratory activities:
    Continue the lab classes work.

7. Management of Linux devices: device drivers.
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
  • Laboratory
    Implementation of a basic device driver for managing the logic device in the Linux kernel.

  • Additional laboratory activities:
    Continue the lab classes work.

8. Implementation of a device driver in 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.
  • Laboratory
    Implementation of a device driver managing information in the Linux kernel.
  • Additional laboratory activities:
    Continue the lab classes work.


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

Project

Description

The OS project comprises items:



Project 1: Implementation of an OS kernel



Project 2: Implementation of a device driver for Linux

Development plan

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.

Docent Methodolgy

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.

Evaluation Methodgy

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.

Basic Bibliography

  • RUBINI, Alessandro Linux device drivers, 2nd ed., O'Reilly & Associates, Inc., 2001.
  • BOVET, Daniel P.; CESATI, Marco Understanding the Linux Kernel, O'Reilly & Associates, .
  • LOVE, Robert Linux Kernel Development. A practical guide to the design and implementation of the Linux kernel, Developer's Library, .

Complementary Bibliography

  • KERNIGHAN, Brian W and PIKE, Rob The Practice of Programming, Addison-Wesley Professional Computing Series, 1999.
  • SILBERSCHATZ, Abraham; GALVIN, Peter B Operating Systems Concepts, Addison Wesley, .
  • STALLINGS, William Operating Systems: Internals and Design Principles, Pearson Education, .

Previous capacities

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.



 
logo FIB © Barcelona school of informatics - webmaster@fib.upc.edu - RSS RSS