Operating Systems Foundations
Know: -services provided by operating systems (OS), their user and programming interfaces; - OS abstractions for program execution and resource management; - principles of concurrent programming and process coordination; - principles of design and internal organization of an operating system.
Apply: - Relate the theoretical and practical aspects and improve the ability to perform practical laboratory work; - Use the environment and tools to support the development and management of program execution at the operating system interface level and with operating system call programming models involving concurrency, communication and synchronization between processes.
Paulo Orlando Reis Afonso Lopes, Pedro Abílio Duarte de Medeiros
Weekly - 5
Total - 60
It is recommended that students have successfully completed the IP and AC course units.
Remzi Arpaci-Dusseau, Andrea Arpaci-Dusseau, Operating Systems: Three Easy Pieces, 2015 v0.9*, http://pages.cs.wisc.edu/~remzi/OSTEP/
Modern Operating Systems, 4th Ed, A. Tanenbaum, H. Bos, Pearson, 2014
Computer Systems: A Programmer´s Approach, R.Bryant, D. O´Hallaron, Pearson, 3rd Ed 2015
The C Programming Language, B. W. Kernighan, D. M. Ritchie, 2nd Edition, Prentice Hall, 1988
The lectures present the main topics and discuss the most relevant questions. Students should, preferably before class, study the recommended bibliography.
Lab sessions are intended to enable the student to i) develop applications that use system calls in a controlled environment (virtual machines) where administration privileges are sometimes required and ii) use monitoring tools that require such elevated privileges.
Theoretical-Practical (a.k.a. “Teóricas”)
Laboratory (a.k.a. “Práticas”)
Grade must be equal or above 8,5 (max. 20)
Students with "frequência" or with grade ≥ 8,5 on the Theoretical-Practical evaluation on the 2 years preceeding this edition are not required to redo it, but if they submit any assignment, test or exam, the grade previously obtained is effectively lost.
Grade of Theoretical-Practical Component (CompT)
CompT = 0,5 T1 + 0,5 T2
To succeed with mid-term tests or exam: CompT ≥ 8,5
3 individual small-sized work assignments; 1 group Project (P) for 2 students
Grade of the Laboratory Component : CompL = 0,4*(NTP1+NTP2+NTP3)/3 + 0,6*NP
To succeed: CompL ≥ 8,5
1. Introduction to operating systems (OS): System services: file and process as the main abstractions, system calls.
2. CPU management: support of process abstraction by the OS; lightweight processes: CPU scheduling algorithms.
3. Memory management: process address space; transformation of virtual addresses into real addresses using pages; virtual memory using pagination; page replacement algorithms.
4. Concurrent programming: fundamentals, communication and synchronization in shared memory and distributed memory. Lightweight Processes - pthreads API.
5. Input / output files and devices: file system organization and operations; characteristics of devices that support file systems; file system consistency. Management of input / output devices. Structure of a device driver.
6. Virtual Machines and Containers
Programs where the course is taught: