Operating Systems
Keywords |
Classification |
Keyword |
OFICIAL |
Informatics Engineering and Computing |
Instance: 2024/2025 - 1S 
Cycles of Study/Courses
Acronym |
No. of Students |
Study Plan |
Curricular Years |
Credits UCN |
Credits ECTS |
Contact hours |
Total Time |
L.EIC |
342 |
Syllabus |
2 |
- |
6 |
52 |
162 |
Teaching Staff - Responsibilities
Teaching - Hours
Type |
Teacher |
Classes |
Hour |
Lectures |
Totals |
2 |
4,00 |
Carlos Miguel Ferraz Baquero-Moreno |
|
2,00 |
Luís Miguel Barros Lopes |
|
2,00 |
Recitations |
Totals |
14 |
28,00 |
Paula Raissa Costa e Silva |
|
4,00 |
Francisco António Ferraz Martins de Almeida Maia |
|
4,00 |
Jorge Henrique Santos Oliveira |
|
4,00 |
Hugo Manuel Soares Oliveira |
|
4,00 |
Luís Miguel Barros Lopes |
|
4,00 |
José Manuel de Magalhães Cruz |
|
4,00 |
Luís Fernando Oliveira Portela |
|
4,00 |
Teaching language
Suitable for English-speaking students
Obs.: Os materiais de estudo estão disponíveis em Inglês e as aulas são leccionadas em Português
Objectives
The main objectives of this curricular unit are to provide the fundamental knowledge on:
O1- the structure and the operation of a generic operating system;
O2- the use of the Application Programming Interface (API) of a real operating system.
Learning outcomes and competences
The students who complete successfully this curricular unit should be able to:
LO1- describe the functions and the general structure of an operating system and identify the main abstractions that it provides;
LO2- describe the operation of the essential components of an operating system, the way they interact and the fundamental algorithms used to implement them;
LO3- develop programs using and exploring the API of an Unix-type operating system.
Working method
B-learning
Pre-requirements (prior knowledge) and co-requirements (common knowledge)
Previous knowledge of programming with the C language is required. Approval in the curricular unit of "Programming" is recommended.
Program
INTRODUCTION TO OPERATING SYSTEMS
- Objectives and functions of an operating system
- System boot
- Command interface: Shell
- Supported abstractions, system calls and their programming interface
PROCESS MANAGEMENT
- Process life cycle
- Scheduling
- IPC: Signals, mmap, pipes / UNIX sockets
THREADS and CONCURRENT PROGRAMMING
- Thread live cycle
- Mutual exclusion: Peterson, test & set
- Locks, semaphores and condition variables
- Lock order and two-phase locking
- Thread-safe structures: Queues, Barrier, RW registers
MEMORY MANAGEMENT
- Memory hierarchy
- Physical memory management
- Virtual memory
- Process memory model
- Segmentation and pagination
- Hardware-level support
FILE SYSTEMS
- Storage devices
- Partitioning, volumes, swap space
- File-system
- OS API and implementation
- Data structures and space management
INPUT/OUTPUT SYSTEMS
- Devices and bandwidth profile
- Interrupts and interrupt management
- Controllers and device drivers
- UNIX /dev directory
Complementary practice (covered along the course )
SYSTEM PROGRAMMING (UNIX/LINUX API)
- File and directory manipulation
- Process and thread creation and management
- Interprocess communication: signals, pipes, FIFOs, and shared memory
- Process and thread synchronization: semaphores, mutexes and condition variables
Mandatory literature
Silberschatz, A.; Galvin, P. & Gagne;
Operating System Concepts
Teaching methods and learning activities
- Theoretical classes: presentation and discussion of the subject matter.
- Theoretical/practical classes: resolution of programming exercises involving the use of the Unix/Linux API.
- Self-learning: study of the programme themes, using the bibliography and the materials available at the web page of the curricular unit; resolution of exercises and development of a project, involving the use of the API.
Software
Sistema de desenvolvimento em C
Sistema operativo LINUX
Evaluation Type
Distributed evaluation without final exam
Assessment Components
Designation |
Weight (%) |
Teste |
100,00 |
Total: |
100,00 |
Amount of time allocated to each course unit
Designation |
Time (hours) |
Estudo autónomo |
52,00 |
Frequência das aulas |
52,00 |
Trabalho laboratorial |
58,00 |
Total: |
162,00 |
Eligibility for exams
Attend 50% of the TP Classes
Calculation formula of final grade
The assessment is "distributed without a final exam" and consists of two tests, T1 and T2, each worth 10 points, each covering approximately half of the theoretical material and exercises from the TP classes.
Assuming that the student attends the class, the final grade is obtained by the following expression:
Final Grade = T1 + T2
Students who fail (Final Grade < 10) but attend the class or students who are enrolled to improve their grades must take the retake exam, which covers all of the theoretical and practical material.
Special assessment (TE, DA, ...)
Students enrolled under special regimes without attending practical classes are subject to the same assessment conditions as regular students, except that they are exempt from attending practical classes.
Classification improvement
The grade can be improved at the legally stipulated times, covering all the lecture material.
Observations
Very important: Cases of dishonest academic conduct will be brought to the attention of the Course Director.