Embedded Operating Systems

A tantárgy neve magyarul / Name of the subject in Hungarian: Beágyazott operációs rendszerek

Last updated: 2019. január 17.

Budapest University of Technology and Economics
Faculty of Electrical Engineering and Informatics
Electrical Engineering M.Sc.         
Computer Based Systems Major Specialization         
Course ID Semester Assessment Credit Tantárgyfélév
VIAUMA08 1 2/1/0/v 4  
3. Course coordinator and department Dr. Vajk István,
4. Instructors

Name:

Title:

Department.:

Dr. István Vajk

professor

Automation and Applied Informatics

Zoltán Szabó

engineer

Automation and Applied Informatics

Gábor Bányász

assistant lect.

Automation and Applied Informatics

István Oláh

master lecturer

Automation and Applied Informatics

   
5. Required knowledge Basic knowledge in programming using C and C++ language, object oriented system design
6. Pre-requisites
Kötelező:
NEM ( TárgyEredmény( "BMEVIAUM166" , "jegy" , _ ) >= 2
VAGY
TárgyEredmény( "BMEVIMIM151" , "jegy" , _ ) >= 2
VAGY
TárgyEredmény("BMEVIAUM166", "FELVETEL", AktualisFelev()) > 0
VAGY
TárgyEredmény("BMEVIMIM151", "FELVETEL", AktualisFelev()) > 0)

A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.

A kötelező előtanulmányi rendek grafikus formában itt láthatók.

Ajánlott:
7. Objectives, learning outcomes and obtained knowledge The students will be able to understand and make use of the basic concepts of embedded operating systems. The objective of the course is to present platforms, techniques and tools which are required to create and run both application and system level software for embedded systems. The topics covered are illustrated by case studies and demo applications.
8. Synopsis Introduction
Basic services of operating systems, using operating systems in embedded environment. Operating system selection guidelines.

Simple operating systems
The architecture and services of the uCOS-II and the FreeRTOS operating systems. Scheduling algorithm, task registry, supported services, intertask communication.

GNU/Linux operating system
The history and the general features of GNU/Linux operating system. The main components of the Kernel related to real-time operation: scheduling, memory management, interrupt handling. The structure of the Linux operating systems. Most commonly used Unix commands, and the BASH shell command interpreter and programming. Security and authorization is Linux, simple regular expressions, process management.

Embedded Linux
The structure and the components of a minimal x86 based Linux system in details. Common configuration services.
Cross-platform Linux system generation for ARM devices. Automatic embedded Linux system generation tools: Buildroot, OpenEmbedded, Yocto Project. The structure and the usage of the  Yocto Project.

Application development for Linux platform
Getting familiar with the development tools: compiler toolchain(gcc), libraries, Makefile, debug tools (gdb, malloc debugs, valgrind, strace), integrated development environments
File abstraction, file handling system calls, i-node handling functions. Concurrent programming: processes, interprocess communication, synchronization. I/O multiplexing and the ioctl system call. Developing real-time applications. Network communication using the Berkley socket API.

Development of Linux kernel modules
The basics of the kernel development. Using, writing and compiling kernel modules. Parameter passing to kernel modules. Structure of a character based device driver. Device driver registration procedure. Handling concurrency in the kernel: atomic operations, spinlock, semaphore, mutex, reader/writer constructions. I/O port and interrupt handling in practice.

Embedded Windows operating systems
Windows in the world of embedded systems. The architecture and the services of Windows Embedded and the Windows Embedded Compact. Scheduling, synchronization objects, interrupt handling. BSP implementation, driver models. Native WinAPI application development.

QNX operating system
The structure of QNX. Kernel services, scheduling, interrupt mechanism, network handling. Creating embedded systems using QNX. QNX from the view of an end user. Application development for QNX operating system.


9. Method of instruction The course consists of lectures and practices, which are alternating during the semester. The lectures mainly contain the theoretical background and case studies are presented in practices.
10. Assessment
In lecture term:
An in-class term test
In examination period:
Written exam
Pre-exam:upon request

The requisite of the mid-term signature is to attend at the in-class term test and have at least satisfactory result. The requisite of attending at an exam is having the mid-term signature. The credits can be obtained by reaching at least satisfactory result at the exam. The grade consists of two parts: the grade of the mid-term test (30%) and the grade of the exam (70%).
11. Recaps The in-class term test can be repeated once during the semester and once during the repeat period in accordance with the Code of Studies and Exams (CSE).
12. Consultations Before and after lectures, or upon request, appointed with the lecturer.
13. References, textbooks and resources Szabó Z., Bányász G., Oláh I..: Embedded operating systems (Electronic lecture notes). BME AUT, 2014.
Asztalos Márk, Bányász Gábor, Levendovszky Tihamér: Linux programozás, Szak Kiadó 2013
14. Required learning hours and assignment
Contact hours 42
Preparation for lectures 14
Preparation for practices 7
Preparation for in-class test
 15
Preparation for the exam 42
Total
 120
15. Syllabus prepared by

Name:

Title:

Department.:

Dr. István Vajk

professor

Automation and Applied Informatics

Zoltán Szabó

engineer

Automation and Applied Informatics

Gábor Bányász

assistant lect.

Automation and Applied Informatics

István Oláh

master lecturer

Automation and Applied Informatics