Operating Systems for Embedded Computers
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.
- explain features required from embedded computer systems
- identify embedded system implementation problems
- describe operating principles for operating system kernel components
- modify operating system kernel components
- use tool chain to create software for embedded computers
- employ advanced features from C programming language
- select suitable algorithms when creating software for embedded computers
Forms of Teaching
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.
|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
- Embedded computer systems. Software development for embedded computers. Operating systems. Operating system examples used in course. Development environment. Example system demonstration.
- Debugging. Layered source code tree structure. Tool chain. Building system.
- Interrupt subsystem: responsibility, possible implementations, example implementation.
- Timer subsystem. Dynamic memory management.
- Input output devices: console, keyboard, serial port.
- Unified interface for input output devices. Device drivers for console, keyboard, serial port.
- Command line interpreter. Customized compiling.
- Mid term exam.
- Multithreading: benefits and drawbacks. Software multithreading. Kernel supported multithreading.
- Thread management: create thread, exit thread, cancel thread, wait for thread exit, thread states, thread scheduling.
- Thread synchronization and communication mechanisms: semaphores, monitors, signals, messages. Synchronization problems. Priority inversion. Synchronization mechanisms extensions for RT systems.
- Processes: system call through software interrupt, user mode, memory management with segmentation, separate user and kernel address space.
- Paging. Memory management problems.
- Other operating system subsystems principles and possible implementations. Adapting example systems for other architectures.
- Final exam