Faculdade de Ciências e Tecnologia

Operating Systems Design and Implementation

Code

11162

Academic unit

Faculdade de Ciências e Tecnologia

Department

Departamento de Informática

Credits

6.0

Teacher in charge

Hervé Miguel Cordeiro Paulino, Pedro Abílio Duarte de Medeiros

Weekly hours

4

Total hours

58

Teaching language

Português

Objectives

This course aims at providing the students with an in-depth knowledge on the Operating System (OS) internal organization, and the techniques and algorithms used in its implementation.

Knowledge:

  • Issues in the design and organization of OS, and the techniques and algorithms for implementing OS, including:
    • resource management (processors, memory and input/output devices);
    • file systems; 
    • processes and threads, protection mechanisms;
    • OS support for virtualization, multiprocessing and embedded systems.

Application:

  • identify the trade-offs in the design and implementation of OS kernel and services, and how to estimate their expected behaviour under specific requirements
  • ability to implement/modify internal OS modules and handle their complexity
  • ability to experimentally evaluate distinct systems, depending on their internal organizations and strategies

Prerequisites

Passing in 1st cycle in Computer Architecture and Operating Systems.

Subject matter

1. Introduction

-Functions and internal organization of the OS kernel and services

2. Process Management

-Strategies and mechanisms for process/thread management and implementation

-Process/thread interactions and resource sharing.

-Scheduling under multiprogramming, multiprocessing, and real-time environments.

3. Memory Management

-Memory hierarchy, Virtual memory: Swapping, paging and segmentation.

-Strategies and algorithms. On-demand paging, working sets and thrashing, protection and sharing.

-Memory-mapped files

4. File Systems and Input/output Systems

-Meta-data and data management. Disk space management.

-Availability, verification and recovery.

-Alternative storage media.

-Input/output strategies and mechanisms. Device drivers.

-File system case studies.

5. Virtualization, multiprocessing, and dedicated embedded systems

-Hw and Sw support for virtualization.

-Multiprocessor OS. Single System Image.

-OS for embedded systems: memory, time, and power constraints.

Bibliography

  • Main reference
    • T. Andersson, M. Dahlin, Operating Systems: Principles and Practice, 2012, Recursive Books
  • Alternative references:
    • Avi Silberschatz, Peter Baer Galvin, Greg Gagne,Operating System Concepts, John Wiley & Sons, Inc.
    • Andrew S. Tanenbaum,  Herbert Bos, Modern Operating Systems, Prentice Hall
    • Remzi Arpaci-Dusseau, Andrea Arpaci-Dusseau, Operating Systems: Three Easy Pieces, 2013, http://pages.cs.wisc.edu/~remzi/OSTEP/
  • Course page @ CLIP
    • Slides, tutorials, class and take home programming assignments

Teaching method

The course teaching methodology includes lectures and project assignments, partially developed in the laboratory practical classes.

The lectures motivate for the study of the OS architectural components, identify their objetives and difficulties, and present the techniques and algorithms used to address them.

The practical classes provide privileged contact time with instructor, inform about the details of the project assignments, support the student in adapting to the experimental HW and SW environment used, and also provide some time for project development.

Assessment Components:

1. Individual tests or final exam (50 %).

2. Group project assignments, including written reports (50 %).

Evaluation method

  • Grading (students without “frequência” from the previous year)
    • 50% from two individual tests, each contributing with 25% to the final grade
    • 50% from three group projects, each contributing with 16.(6)% to the final grade
  • Grading (students with “frequência” from last year)
    • 1000% from two individual tests, each contributing with 50% to the final grade
  • Each project will be graded according to the following distribution:
    • [75%] functionality
    • [12.5%] testing
    • [12.5%] report

To obtain "frequência" the student must have an average ≥ 9.5 points in the lab projects.

Courses