System Programming
BASIC DATA
course listing
A - main register
course code
ITS8020
course title in Estonian
Süsteemprogrammeerimine
course title in English
System Programming
course volume CP
-
ECTS credits
6.00
to be declared
yes
assessment form
Examination
teaching semester
autumn
language of instruction
Estonian
English
Study programmes that contain the course
code of the study programme version
course compulsory
IAFM21/24
no
IAPM02/25
no
Structural units teaching the course
IT - Department of Software Science
Course description link
Timetable link
View the timetable
Version:
VERSION SPECIFIC DATA
course aims in Estonian
Kursuse eesmärk on anda operatsioonisüsteemidele tuginevate sardsüsteemide arenduseks vajalikud alusteadmised ja kogemused. Kursus võrdleb ja üldistab erinevaid operatsioonisüsteeme ja nende kasutusspetsiifikat mitme-tegumi sardsüsteemide rakendustarkvara arenduses.
course aims in English
The primary goal of this course is to give the participant the knowledge and skills necessary to develop software for embedded computer systems using an operating system. The course will provide knowledge on principles shared by many operating systems, and their use in the development of embedded multitasking application software.
learning outcomes in the course in Est.
Kursuse edukas läbimine annab teadmised ja oskused:
- täita sardsüsteemide tarkvara arendusülesandeid
- olla tarkvarasüsteemi arhitekt või arendusprojekti juht
- disainida ja realiseerida sardsüsteemide tarkvara kasutades erinevaid operatsioonisüsteeme.
learning outcomes in the course in Eng.
Upon completion of this course, student will be able to:
- solve embedded systems software development tasks;
- be a software system architect or project manager;
- design and implement the software for embedded computer systems using different operating systems.
brief description of the course in Estonian
Kursus algab reaalaja sardsüsteemide põhielementide sissejuhatava tutvustusega. Vaadeldakse mitmetegumi süsteemide protsessoreid ja operatsioonisüsteeme fookusega ettevaataval tegumite plaanimisel, tegumitevahelisel kommunikatsioonil ja sünkroniseerimisel.
Kursus jätkub populaarsemate op. süsteemide tuumateenuste ülevaatega, koos nende rakendusnäidetega. Taimeri teenused, dünaamilised mälujagamise skeemid, võrgu liideste programmeerimine ja draiverite superviisorid. Mitmetegumi reziimi koodiarendus, programmide analüüs ja vigadeotsing.

Teemad on rühmitatud järgmiselt:
- Sardarvutisüsteemide ülevaade: põhimõisted ja probleemid, sisend/väljund, sissejuhatus sardtarkvara arendusse
- OS tuum – multitasking, tegumid ja prioriteedi-põhine ettevaatav planeerimine, ülevaade plaanuritest
- OS: tegumitevaheline kommunikatsioon ja sünkroniseerimine, sõnumid ja sõnumijärjekorrad
- OS tuum (lisateemad): dünaamiline mäluhaldus ja fragmenteerimise probleemid, taimerid (suhteline ja absoluutne ajastamine), asünkroonsed signaalid, superviisor; reaalaja operatsioonisüsteemid.
- Andmeside programmeerimine - soketid, draiverid, katkestuste töötlemine.
brief description of the course in English
The course begins with the fundamental elements of multitasking embedded application software design and development. Processor and operating system concepts relevant to multitasking systems are examined, with focus on preemptive task scheduling, intertask communication and synchronization.
The course continues with a survey of popular operating system kernel services, giving application examples. Topics include timer services, dynamic memory allocation schemes, network communication programming interfaces and device driver supervisors. Multitasking code development is discussed and example programs are reviewed and debugged. Practical experience is gained during student work exercises.
a. Embedded Computer Systems Overview: Embedded Systems I/O, Embedded / Real-Time Systems: Definitions and Issues, Introduction to Embedded Software Development
b. Kernel Basics – Multitasking, Tasks and Priority-Based Preemptive Scheduling, Survey of Task Schedulers
c. OS Basics - Communicating between Tasks: Intertask Communication and Synchronization Overview, Messages and Message Queues
d. Additional OS Kernel Topics Dynamic Memory Allocation: Fragmentation Issues
OS Timers: Relative and Absolute Timing, Asynchronous Signals, Device I/O Supervisor; real-time operating systems.
e. Network Communication Programming: Sockets Interface, Application Software: Device Drivers, Application Software: Interrupt Service Routines
type of assessment in Estonian
-
type of assessment in English
-
independent study in Estonian
-
independent study in English
-
study literature
https://courses.cs.ttu.ee/pages/ITS8020
study forms and load
daytime study: weekly hours
4.0
session-based study work load (in a semester):
lectures
2.0
lectures
-
practices
2.0
practices
-
exercises
0.0
exercises
-
lecturer in charge
-
LECTURER SYLLABUS INFO
semester of studies
teaching lecturer / unit
language of instruction
Extended syllabus
2025/2026 autumn
Henri Vasserman, IT - Department of Software Science
English
    Grading_criteria.pdf 
    display more
    2024/2025 autumn
    Henri Vasserman, IT - Department of Software Science
    English
      2023/2024 autumn
      Henri Vasserman, IT - Department of Software Science
      English
        2022/2023 autumn
        Henri Vasserman, IT - Department of Software Science
        English
          2021/2022 autumn
          Henri Vasserman, IT - Department of Software Science
          English, Estonian
            Grading_criteria.pdf 
            2020/2021 autumn
            Henri Vasserman, IT - Department of Software Science
            English
              Grading_criteria.pdf 
              2019/2020 autumn
              Jaagup Irve, IT - Department of Software Science
              English
                Grading_criteria.pdf 
                2018/2019 autumn
                Jaagup Irve, IT - Department of Software Science
                English
                  Grading_criteria.pdf 
                  Course description in Estonian
                  Course description in English