Skip to main content

Real-Time Systems

Credits
6
Types
Specialization complementary (Computer Engineering)
Requirements
Department
ESAII
A system is called real-time when it interacts with the real world (physical process) within temporal requirements. In a Real Time System (RTS) the answer must not only be correct but must arrive at the right time or the system is considered to have failed. This is the case of the activation of the airbag or ABS in a car to give two critical examples, but also that of a robot that has to catch a ball in flight. At the end of the course the student will understand the difference between a fast and a real time system, as well as the distinction between a hard, soft or critical real time system. He will know how to analyze, design and implement systems based on microcomputers with requirements of time criticality, reliability and cost.

Teachers

Person in charge

Others

Weekly hours

Theory
1.5
Problems
0.5
Laboratory
2
Guided learning
0.4
Autonomous learning
5.6

Competences

Common technical competencies

  • CT5 - To analyse, design, build and maintain applications in a robust, secure and efficient way, choosing the most adequate paradigm and programming languages.
    • 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 [Avaluable] - Capacity of critical, logical and mathematical reasoning. Capacity to solve problems in her study area. Abstraction capacity: capacity to create and use models that reflect real situations. Capacity to design and perform simple experiments and analyse and interpret its results. Analysis, synthesis and evaluation capacity.
    • G9.3 - Critical capacity, evaluation capacity.
  • Computer engineering specialization

  • CEC1 - To design and build digital systems, including computers, systems based on microprocessors and communications systems.
    • CEC1.1 - To design a system based on microprocessor/microcontroller.
  • CEC2 - To analyse and evaluate computer architectures including parallel and distributed platforms, and develop and optimize software for these platforms.
    • 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 - To develop and analyse hardware and software for embedded and/or very low consumption 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

    1. To understand the concept of real-time system
      Related competences: G9.3, CEC3.1,
    2. To determine when to use a real-time system.
      Related competences: G9.3, CEC3.1, CT5.6,
    3. To plan a cyclical scheduler
      Related competences: CEC2.3, CEC3.2, CEC1.1, CT5.6,
    4. Real-time system with fixed priorities
      Related competences: CEC2.3, CEC3.2, CEC1.1, CEC3.1, CT5.6,
    5. Real-time system with dynamic priorities
      Related competences: CEC2.5, CEC3.2, CT5.6,
    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,
    7. To understand the time slots into a RTS to implement bandwidth servers
      Related competences: CEC2.5, CT5.6,
    8. Understand how multi-core real-time systems work
      Related competences: CEC2.3, CEC3.1,
    9. To observe the advantages of using a RTS using examples
      Related competences: CEC2.3,

    Contents

    1. Introduction to real-time systems
      Explanation of different examples in which the analysis and use of real-time techniques becomes essential
    2. 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
    3. Fixed or dynamic priorities real-time systems
      Online scheduling and preemption.
      - Optimal Schedulers
      - Rate Monotonic
      - Deadline Monotonic
      - Earliest Deadline First
    4. Implementation of an RTOS in a microprocessor
      Details to consider when migrating or deploying a real-time operating system on a microprocessor
    5. High level systems. Bandwidth servers
      Implementation of bandwidth servers
    6. Multi-core in real-time systems
      Introduction to real-time systems in systems with more than one microcontroller

    Activities

    Activity Evaluation act


    Need for a real time system

    Analysis and understanding of the tools needed to provide a temporary response to the tasks of a complex system
    Objectives: 2 1
    Contents:
    Theory
    2h
    Problems
    0h
    Laboratory
    0h
    Guided learning
    0h
    Autonomous learning
    2h

    Need to calculate the worst case execution time of a task

    How to calculate the worst case code execution of a task
    Objectives: 2 1
    Contents:
    Theory
    2h
    Problems
    2h
    Laboratory
    0h
    Guided learning
    0h
    Autonomous learning
    4h

    Scheduling

    Need and implementation of algorithms for schedulability analysis
    Objectives: 3
    Contents:
    Theory
    5h
    Problems
    2.5h
    Laboratory
    0h
    Guided learning
    0h
    Autonomous learning
    15h

    Bandwidth servers

    Operation and characteristics of bandwidth servers
    Objectives: 4 5 7
    Contents:
    Theory
    3.5h
    Problems
    1h
    Laboratory
    0h
    Guided learning
    0h
    Autonomous learning
    6h

    Multi-core

    Selection of the most suitable multi-core architecture for a specific application
    Objectives: 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

    Exam1


    Objectives: 3 4 5 2 1
    Week: 7
    Theory
    0h
    Problems
    0h
    Laboratory
    0h
    Guided learning
    0h
    Autonomous learning
    0h

    Exam 2


    Objectives: 4 5 6 7 9 8
    Week: 14
    Theory
    0h
    Problems
    0h
    Laboratory
    0h
    Guided learning
    0h
    Autonomous learning
    0h

    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

    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.