Operating Systems for Embedded Computers

Course Description

Embedded computers are very different from other computer systems. Many of them manage the processes in which the timed actions are of the utmost importance. Therefore, the device drivers and the rest of the system must be adapted to meet such constraints. Such systems are usually not under the constant supervision, and are expected of them to work independently for longer periods, which require high reliability and embedded recovery mechanisms. The principal goal of the course is to use simple operating system examples for demonstrating the methods for building the system, its components and device drivers for embedded computers, and in that process develops an understanding of used mechanisms as well as to learn the building process.

General Competencies

Students gain knowledge and experience to build and adapt the components of the operating system for embedded computers. Knowledge includes the methodology involved in system construction, usage of tool chain, advanced features of the programming languages ​​C and a deeper understanding of core concepts of the operating system tailored for embedded computers.

Learning Outcomes

  1. explain features required from embedded computer systems
  2. identify embedded system implementation problems
  3. describe operating principles for operating system kernel components
  4. modify operating system kernel components
  5. use tool chain to create software for embedded computers
  6. employ advanced features from C programming language
  7. select suitable algorithms when creating software for embedded computers

Forms of Teaching

Lectures

Lectures are organized through two cycles: first last seven weeks and second six weeks. After first cycle is scheduled mid term exam and after second cycle comes final exam. Each week there are two hour lecture. Within some lectures students will be tested with short tests.

Exams

Mid term exam and first part of final exams are written. Second part of final exam is verbal exam. Written exams takes 90 minutes for mid term and 120 minutes for final exam. Questions on all exams are both theoretical and practical.

Programming Exercises

Homework includes solving of the given problems (published in the first week): design and implementation accompanied by a short documentation. Result should be then uploaded and later presented for grading.

Grading Method

Continuous Assessment Exam
Type Threshold Percent of Grade Threshold Percent of Grade
Homeworks 50 % 30 % 50 % 0 %
Quizzes 0 % 10 % 0 % 0 %
Mid Term Exam: Written 0 % 20 % 0 %
Final Exam: Written 50 % 20 %
Final Exam: Oral 20 %
Exam: Written 50 % 50 %
Exam: Oral 50 %

Week by Week Schedule

  1. Embedded computer systems. Software development for embedded computers. Operating systems. Operating system examples used in course. Development environment. Example system demonstration.
  2. Debugging. Layered source code tree structure. Tool chain. Building system.
  3. Interrupt subsystem: responsibility, possible implementations, example implementation.
  4. Timer subsystem. Dynamic memory management.
  5. Input output devices: console, keyboard, serial port.
  6. Unified interface for input output devices. Device drivers for console, keyboard, serial port.
  7. Command line interpreter. Customized compiling.
  8. Mid term exam.
  9. Multithreading: benefits and drawbacks. Software multithreading. Kernel supported multithreading.
  10. Thread management: create thread, exit thread, cancel thread, wait for thread exit, thread states, thread scheduling.
  11. Thread synchronization and communication mechanisms: semaphores, monitors, signals, messages. Synchronization problems. Priority inversion. Synchronization mechanisms extensions for RT systems.
  12. Processes: system call through software interrupt, user mode, memory management with segmentation, separate user and kernel address space.
  13. Paging. Memory management problems.
  14. Other operating system subsystems principles and possible implementations. Adapting example systems for other architectures.
  15. Final exam

Study Programmes

University graduate
Computer Engineering (profile)
Specialization Course (2. semester)
Computer Science (profile)
Specialization Course (2. semester)
Electronic and Computer Engineering (profile)
Specialization Course (2. semester)

Literature

J.J. Labrosse (2000.), MicroC/OS-II, CMP Books
W.A. Halang, A.D. Stoyenko (1991.), Constructing predictable real-time systems, Kluwert Academic Publishers
A.M. Tilborg, G.M. Koob (1991.), Foundations of real-time computing: scheduling and resource management, Kluwert Academic Publishers
A. Silbershatz, P.B. Galvin, G. Gagne (2003.), Applied Operating Systems Concepts, John Wiley & Sons
L. Budin, M. Golub, D. Jakobović, L. Jelenković (2011.), Operacijski sustavi, Element

Laboratory exercises

General

ID 127438
  Summer semester
4 ECTS
L1 English Level
L1 e-Learning
30 Lectures
0 Exercises
10 Laboratory exercises
0 Project laboratory

Grading System

90 Excellent
75 Very Good
60 Good
50 Acceptable