Computing Systems
Keywords |
Classification |
Keyword |
OFICIAL |
Informatics |
Instance: 2022/2023 - 2S
Cycles of Study/Courses
Acronym |
No. of Students |
Study Plan |
Curricular Years |
Credits UCN |
Credits ECTS |
Contact hours |
Total Time |
L.EEC |
169 |
Syllabus |
3 |
- |
6 |
52 |
|
Teaching language
Suitable for English-speaking students
Obs.: As aulas serão em Inglês sempre que haja pelo menos um estudante em aula que não seja falante de Português
Objectives
- Expose the diversity of computing systems, from simple patforms for embedded applications to high-performance platforms with multi-core processors.
- Present a computing system as a set of resources that must be managed in na efficient way to achieve a good performance.
- Introduce the notion of operating system as a layer mediating the physical resources of a system and its users.
- Present the different subsystems of an operating system, including the different managers of memory, I/O and processes, show how it can be used in an efficient way and how to measure its performance using benchmarks.
Learning outcomes and competences
- Be able to identify different kinds of computational systems and summarize the main differences among them.
- Be able to describe the main components of a general-purpose operating system, as well as the main algorithms and data structures used by these components.
- Be able to use the operating system API.
- Be able to use communication and synchronization primitives in concurrent programs to prevent race conditions.
- Be able to develop a device driver for a simple input/output device.
- Be able to explain the mechanisms available in an OS to ensure protection and security.
- Be able to explain how the configuration of a component of an operating system may affect the performance of applications.
- Be able to use evaluate the performance of the different components of an operating system and list the most common benchmarks used to measure their performance.
Working method
B-learning
Pre-requirements (prior knowledge) and co-requirements (common knowledge)
Programming
Program
- Organization of a computing system: embedded systems, general purpose systems, multi-core processors and multi-processors, servers and distributed systems.
- Role of an operating system (OS) as the manager of the resources of a computing system. Structuring of an OS and its kernel. Monolithic and micro-kernel based OSs. Special purpose OS (e.g. RTOS).
- Process management. Multiprogramming and scheduling. Inter-process communication. Process management API.
- Threads. Concurrency and synchronization primitives. POSIX API for threads.
- Memory management. Pysical and virtual memory. Segmentation and paging.
- Device management. Devices, controllers and interrupts. Device drivers.
- File systems. Abstractions and their implementation. File system API.
- Security and protection. Authentication and authorization. Protection and confinement mechanisms.
- Performance evaluation and “benchmarking”.
Mandatory literature
Remzi H. Arpaci-Dusseau;
Operating systems
Peter Marwedel;
Embedded system design. ISBN: 978-3-319-56045-8
Complementary Bibliography
Jane Holcombe;
Survey of operating systems. ISBN: 0-07-222511-4
William Stallings;
Operating systems. ISBN: 978-1-292-21429-0
Alan Holt;
Embedded operating systems. ISBN: 978-3-319-72977-0
Abraham Silberschatz;
Operating system concepts. ISBN: 0-471-69466-5
Jonathan Corbert;
LINUX device drivers. ISBN: 0-596-00590-3
José Alves Marques;
Sistemas operativos. ISBN: 978-972-722-575-0
Andrew S. Tanenbaum;
Modern operating systems. ISBN: 978-1-292-06142-9
Teaching methods and learning activities
- The lectures are essentially expository. Whenever appropriate, examples are used to help the understanding of the material being taught, promoting interaciton with the students.
- The lab classes consist of three assignments carried out in group but assessed individually, in which different hardware platforms are used, e.g., Arduino, Raspberry Pi, general purpose computer, to exercize the concepts taught in the lectures.
Evaluation Type
Distributed evaluation with final exam
Assessment Components
Designation |
Weight (%) |
Exame |
60,00 |
Trabalho laboratorial |
40,00 |
Total: |
100,00 |
Amount of time allocated to each course unit
Designation |
Time (hours) |
Estudo autónomo |
74,00 |
Frequência das aulas |
56,00 |
Trabalho laboratorial |
32,00 |
Total: |
162,00 |
Eligibility for exams
Having attended the laboratory classes and obtained a minimum grade of 7 over 20 in the laboratorial component.
Calculation formula of final grade
MT1 - Mini-test covering the first lab assignment
MT2 - Mini-test covering the second lab assignment
MT3 - Mini-test covering the third lab assignment
NL - Grade of the laboratory component
NE - Grade of the theory component
NF - Final grade
NL = (MT1 + MT2 + MT3) /3
NF = 50% NL + 50% NE
Passing is subject to a minimum grade of 7 over 20 in the laboratory (NL) and theory (NE) components
Classification improvement
The recourse exam allows replacing, if better, the grade of the theory component, only. The laboratory component cannot be repeated in the recourse.