Subject description
Introduction, embedded systems architectures, advanced embedded systems, application domains, and a few examples.
Operating systems (OS) concepts, real-time OS,
embedded OS.
Linux, system calls and functions overview.
Processes, multi-tasking, multi-threading. Memory management.
Scheduling. System calls for process/thread control. Examples in C/C++.
Inter-process communications (IPC), critical section, synchronization, semaphores, signals, shared memory, pipes, and messages. Thread synchronization. System calls for IPC. Examples in C/C++.
Principles of computer networks, ISO OSI and TCP/IP. Client-server model. Sockets API, examples in C/C++.
Time management. Timers. Real-time (RT) systems. Scheduling in RT systems.
Examples in C/C++.
Multi-processor systems, parallelisms, speed-up, efficiency. Selected topics in parallel/distributed systems design.
The subject is taught in programs
Objectives and competences
To understand fundamental concepts and to be able to apply modern solutions and technologies to embedded systems for automation/robotics.
Teaching and learning methods
The lectures provide a theoretical background on particular subjects together with practical examples on Linux OS.
Practical work is being performed as the part of laboratory exercises, and is accomplished in the form of multiple programming assignments, acquainting students with individual elements of the modern operating systems, in this particular example, Linux. Students work in groups, consisting of two or three students, and the results are in the form of C/C++ source code for the selected embedded platform. After completing each part, students present their results to the assistant.
Expected study results
After successful completion of the course, the students should be able to:
- Define basic embedded system concepts and solutions for real-time embedded systems in automation and robotics.
- Find appropriate solutions for inter-process communication in embedded systems
- Use appropriate operating system tools for process control in embedded systems
- Develop the software for operating system based embedded systems.
- Implement simple operating system component that runs in kernel space (simple kernel module in Linux OS)
- Choose and recommend appropriate embedded solutions for real life problems in automation and robotics.
Basic sources and literature
- M. Kerrisk, The Linux Programming Interface, No Starch Press, Inc., 2010.
- R. Stevens, S. Rago, Advanced programming in the UNIX environment, 3rd Ed., Addison Wesley, 2013.
- Vgradni sistemi, Študijsko gradivo izvajalcev predmeta (Embedded systems: course material written by the lecturers), navodila za vaje (lab assignment instructions).