Description of Course Unit: Operating Systems

Code: L.EIC015     Acronym: SO

Keywords
Classification Keyword
OFICIAL Informatics Engineering and Computing

Instance: 2021/2022 - 2S Ícone do Moodle

Active? Yes
Web Page: https://moodle.up.pt/course/view.php?id=1639
Responsible unit: Department of Informatics Engineering
Course/CS Responsible: Bachelor in Informatics and Computing Engineering

Cycles of Study/Courses

Acronym No. of Students Study Plan Curricular Years Credits UCN Credits ECTS Contact hours Total Time
L.EIC 281 Plano Oficial 2 - 6 52 162

Teaching Staff - Responsibilities

Teacher Responsibility
Carlos Miguel Ferraz Baquero-Moreno
Luís Miguel Barros Lopes

Teaching - Hours

Lectures: 2,00
Recitations: 2,00
Type Teacher Classes Hour
Lectures Totals 2 4,00
Luís Miguel Barros Lopes 2,00
Carlos Miguel Ferraz Baquero-Moreno 2,00
Recitations Totals 11 22,00
João Pedro Matos Teixeira Dias 4,00
Luís Miguel Barros Lopes 2,00
José Manuel de Magalhães Cruz 4,00
Carlos Miguel Ferraz Baquero-Moreno 6,00
André Nuno de Pinho Tavares Gurgo e Cirne 2,00
Mais informaçõesLast updated on 2022-02-25.

Fields changed: Teaching methods and learning activities, Fórmula de cálculo da classificação final, Melhoria de classificação, Obtenção de frequência, Bibliografia Complementar, Tipo de avaliação, Observações, Componentes de Avaliação e Ocupação, Bibliografia Obrigatória, Programa

Teaching language

Suitable for English-speaking students
Obs.: Se houver alunos inscritos não fluentes em Português, as aulas e as provas, na generalidade, serão em Inglê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, G.; Operating System Concepts (9th ed), John Wiley & Sons, Inc.
Arpaci-Dusseau, R.& Arpaci-Dusseau, A.; Operating Systems: Three Easy Pieces, Arpaci-Dusseau Books, 2018 ( (freely available at: http://pages.cs.wisc.edu/~remzi/OSTEP/))
Richard W. Stevens, Stephen A. Rago; Advanced Programming in the UNIX Environment (2nd edition), Addison-Wesley Professional, 2005. ISBN: 0201433079

Complementary Bibliography

Stallings, W. ; Operating Systems: Internals and Design Principles (9th ed), Pearson, 2017
Stevens, W. Richard; Unix network programming. ISBN: 0-13-081-081-9
Marques,J.; Ferreira P.; Ribeiro,C. ; Veiga,L. & Rodrigues, R. ; Sistemas Operativos (2.a ed), FCA, 2012
Robbins, K. & Robbins , S.; UNIX systems programming: Communication, Concurrency And Threads (2th ed), Prentice Hall. , 2015
Tanenbaum, A & Bos, H. ; Modern Operating Systems. , Pearson Education Limited, 2015

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 (%)
Trabalho prático ou de projeto 30,00
Teste 70,00
Total: 100,00

Amount of time allocated to each course unit

Designation Time (hours)
Estudo autónomo 66,00
Frequência das aulas 56,00
Trabalho laboratorial 40,00
Total: 162,00

Eligibility for exams

Both theory and practice classes are in person. Attendance is not mandatory but presence might be registered for reasons of pandemic surveillance.

Grading has two components:

One assignment (TP, graded with 6 points)
Two tests (T1 and T2, graded with 7 points each)

The frequency requirement is to have at least 3 points (in 6) on TP. 

Due to the new TP setup, students who have attended this course last year and obtained frequency, still need to obtain this year the frequency requirement.

Calculation formula of final grade

The final mark (Final) results from the expression:
   Final =  TP + T1 + T2

(Observation: TP, graded with 6 points; T1 and T2, graded with 7 points each)

To pass the course students much obtain at least 7 points in the sum of T1 and T2 points.

The exam allows obtaining approval to one or both of the components T1 and T2.


Special assessment (TE, DA, ...)

Students with special status are subject to the same assessment conditions as regular students, except that they are exempt from attending practical classes.
Special-season exams are therefore equivalent to the written exams of normal and resit periods for regular students.

Classification improvement

The overall grade of the practical works can only be improved in the following academic year.
The grade of the written exam can be improved in the exam seasons legally provided.

Observations

Very important: cases of dishonest academic conduct will be presented to the Course Director.