Teachers
Person in charge
- Antonio Camacho Santiago ( antonio.camacho.santiago@upc.edu )
Others
- Enric X. Martin Rull ( enric.xavier.martin@upc.edu )
- Joan Aranda López ( joan.aranda@upc.edu )
- Manuel Vinagre Ruiz ( manuel.vinagre.ruiz@upc.edu )
Weekly hours
Theory
1.5
Problems
0.5
Laboratory
2
Guided learning
0.4
Autonomous learning
5.6
Competences
Common technical competencies
- CT5.6 - To demonstrate knowledge and capacity to apply the fundamental principles and basic techniques of parallel, concurrent, distributed and real-time programming.
Reasoning
- G9.3 - Critical capacity, evaluation capacity.
Computer engineering specialization
- CEC1.1 - To design a system based on microprocessor/microcontroller.
- CEC2.3 - To develop and analyse software for systems based on microprocessors and its interfaces with users and other devices.
- CEC2.5 - To design and implement operating systems.
- CEC3.1 - To analyse, evaluate and select the most adequate hardware and software platform to support embedded and real-time applications.
- CEC3.2 - To develop specific processors and embedded systems; to develop and optimize the software of these systems.
Objectives
-
To understand the concept of real-time system
Related competences: G9.3, CEC3.1, -
To determine when to use a real-time system.
Related competences: G9.3, CEC3.1, CT5.6, -
To plan a cyclical scheduler
Related competences: CEC2.3, CEC3.2, CEC1.1, CT5.6, -
Real-time system with fixed priorities
Related competences: CEC2.3, CEC3.2, CEC1.1, CEC3.1, CT5.6, -
Real-time system with dynamic priorities
Related competences: CEC2.5, CEC3.2, CT5.6, -
Migrate a real-time operating system to a specific microprocessor
Related competences: G9.3, CEC2.3, CEC2.5, CEC3.2, CEC1.1, CT5.6, -
To understand the time slots into a RTS to implement bandwidth servers
Related competences: CEC2.5, CT5.6, -
Understand how multi-core real-time systems work
Related competences: CEC2.3, CEC3.1, -
To observe the advantages of using a RTS using examples
Related competences: CEC2.3,
Contents
-
Introduction to real-time systems
Explanation of different examples in which the analysis and use of real-time techniques becomes essential -
Cyclic real time systems
Examples of real-time systems that do not have computing capability to be able to solve possible concurrency problems. - Real-time networks
- elevators
- batteries
- crossroads or train tracks
- other examples that broaden the student's vision
- optimal planning -
Fixed or dynamic priorities real-time systems
Online scheduling and preemption.
- Optimal Schedulers
- Rate Monotonic
- Deadline Monotonic
- Earliest Deadline First -
Implementation of an RTOS in a microprocessor
Details to consider when migrating or deploying a real-time operating system on a microprocessor -
High level systems. Bandwidth servers
Implementation of bandwidth servers -
Multi-core in real-time systems
Introduction to real-time systems in systems with more than one microcontroller
Activities
Activity Evaluation act
Scheduling
Need and implementation of algorithms for schedulability analysisObjectives: 3
Contents:
Theory
5h
Problems
2.5h
Laboratory
0h
Guided learning
0h
Autonomous learning
15h
Multi-core
Selection of the most suitable multi-core architecture for a specific applicationObjectives: 8
Contents:
Theory
4h
Problems
2h
Laboratory
0h
Guided learning
0h
Autonomous learning
2h
Laboratory practices of real-time systems
Relevant part of the subject aimed at seeing the implementation details of real-time systems. Special interest in applications that require strict response times and communications.Objectives: 3 4 5 6 7 9 2 1 8
Contents:
Theory
0h
Problems
0h
Laboratory
22h
Guided learning
0h
Autonomous learning
10h
Short project
Brief research work, implementation, deepening, challenge ... related to the real-time systemes. A preiminary research on the project topic will take place to guide the work. There will be an open critical debate for the selection of the most opportune solutions. The results obtained will be presented in public, and a co-evaluation method will be developed.
Theory
4h
Problems
0h
Laboratory
8h
Guided learning
6h
Autonomous learning
15h
Teaching methodology
The teaching methodology will be of a deductive nature. The approach will always be the same:- propose a problem
- try to solve it
- add the necessary pieces of theory to be able to solve properly
The teaching laboratory of the department at the FIB will be the place where both practice and theory are developed.
Evaluation methodology
The evaluation of the subject will be done by means of exams, problems, laboratory practices and mini-project, being able to pass the subject without having to do a final exam. The evaluation is done as follows:- Theory 40%
- Problems 10%
- Lab practices 25%
- Mini-project 25%
Theory: there will be two online exams, CT1 and CT2, each counting 20% on the overall grade of the course
Problems: there will be problems along the course with an overall 10% of the grade of the course
Laboratory practices: there will be several deliveries, each counting equally on the overall grade of the course
Mini-project: a brief and free choice work will be developed to delve into some aspect related to real-time systems
The final NF grade will be:
NF=CT1(20%)+CT2(20%)+PRO(10%)+PRA(25%)+MP(25%)
Competence "G9.3 - Critical ability, assessment ability" will be assessed based on the tasks performed in the theory and problem classes, as well as on the tasks performed in the laboratory practices. In any case it has no weight in the final note of the subject.
Bibliography
Basic
-
Hard real-time computing systems: predictable scheduling algorithms and applications
- Buttazzo, G.C,
Springer,
2011.
ISBN: 9781461406754
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003999659706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Real-time systems and programming languages: Ada, Real-Time Java and C/Real-Time POSIX
- Burns, A.; Wellings, A.J,
Addison-Wesley,
2009.
ISBN: 9780321417459
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003601749706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Previous capacities
regarding Designing Microcomputer Based Systems:Understand the structure of microcomputers, their assembly language and their input interface management capabilities
regarding Operating Systems:
Know the basics of process management, memory management and input / output.