The operating system is the software layer that manages hardware, presenting the programmer with an interface which is independent of each device’s specific features. The notions of file and process are central in this virtualization process, as well as main memory management.
In the end, students are expected to be able to identify the main functions of the operating system, and to describe ways those functions can be implemented.
Introduction to Operating Systems; Processes and Threads; Memory Management; File systems; Input/Output; Deadlocks; Case study: Linux.
Modern Operating Systems, International Edition 3e (3rd edition or newer), Andrew S. Tanenbaum, Pearson Higher Education, ISBN-13: 978-0138 134594, ISBN-10: 0138 134596.
Sistemas Operativos (2.ª Edição Atualizada, 2012), José Alves Marques/Paulo Ferreira/Carlos Ribeiro/Luís Veiga/Rodrigo Rodrigues, FCA, ISBN-13: 978-972-722-756-3.
Complementary reading (Optional)
Advanced Linux Programming, Mark Mitchell/Jeffrey Oldham/Alex Samuel of CodeSourcery LLC, published by New Riders Publishing, ISBN-13: 978-0735 710436, ISBN-10: 0735 710430, First Edition, June 2001 (available freely in the Internet).
Continuous assessment is privileged: 2 or 3 digital written documents (e-folios) during the semester (40%) and a
presence-based final exam (p-folio) in the end of the semester (60%). In due time, students can alternatively choose to perform one
final presence-based exam (100%).
Pré-requisitos: Conhecimentos de Programação em Linguagem C (21173 Introdução à Programação) e de Arquitectura de Computadores (UC 21010 Arquitectura de Computadores).