The course is a cornerstone for understanding the function of computers, compilers, and operating systems. The
skills and knowledge acquired at this course are necessary for completing other subjects. An integral part of the
course are practical exercises on suitably selected simple hardware or in an emulated environment.
Last update: Töpfer Pavel, doc. RNDr., CSc. (22.01.2018)
Kurz navazující na předmět Principy počítačů je základním kamenem pro pochopení funkce počítačů, překladačů
a operačních systémů. Dovednosti a znalosti získané na tomto kurzu jsou nezbytné pro absolvování dalších
předmětů. Nedílnou součástí kurzu jsou praktická cvičení na vhodně vybraném jednoduchém hardware či v
emulovaném prostředí.
Last update: Töpfer Pavel, doc. RNDr., CSc. (22.01.2018)
Course completion requirements -
Credit is obtained for continuous work on labs, homework, and final work. Conditions may be specified by the lab teacher.
The default form of the exam is a short closed-book written test, however, the form of the exam may be influenced by epidemiological measures in place.
Because the epidemiological situation is difficult to predict, in the academic year 2020/2021 the exam will be held online.
Students are required to connect to an online Zoom meeting and work on the test with both the camera and microphone turned on.
Last update: Kruliš Martin, doc. RNDr., Ph.D. (29.05.2024)
Zápočet je získán za průběžnou práci na cvičeních, odevzdávání domácích prací a odevzdání závěrečné práce. Podmínky mohou být upřesněny cvičícím.
Zkouška je formou krátkého písemného testu v laboratoři.
Podstatná část práce k získání zápočtu probíhá doma ve spolupráci se cvičícím. Z tohoto důvodu má předmět vyšší kreditové ohodnocení.
Last update: Kruliš Martin, doc. RNDr., Ph.D. (29.05.2024)
Syllabus -
Introduction to the C/C++ language - basic constructs, pointers and pointer arithmetic, complex data structures, pointers to functions, decomposition
Computer architecture
CPU - instruction set, registers, processor stack
Memory - addressing, data in memory, alignment, memory hierarchy, cache, allocation algorithms
Programming languages - program translation and compilation, memory organization of a procedural program, function/procedure call mechanism, parameter passing, variable types and lifetimes, stack, heap, runtime, JIT and sandbox concepts, libraries, source code portability
Operating systems - user mode/kernel mode, OS architectures, interrupts, exceptions, DMA, process, threads, scheduling, file systems, virtual memory
Parallel programming - synchronization, deadlock
Last update: Töpfer Pavel, doc. RNDr., CSc. (25.05.2022)
Úvod do jazyka C/C++ - základní konstrukce, ukazatele a ukazatelová aritmetika, komplexní datové struktury, ukazatele na funkce, dekompozice
Architektura počítače
CPU - instrukční sada, registry, zásobník procesoru
Paměť - adresování, data v paměti, zarovnání, paměťová hierarchie, cache, alokační algoritmy
Programovací jazyky - překlad a sestavení programu, paměť procedurálního programu, mechanismus volání funkce/procedury, předávání parametrů, druhy a životnost proměnných, zásobník při běhu procedurálních programů, heap, runtime, koncepty JIT a sandboxu, knihovny, přenositelnost na úrovni zdrojového kódu
Operační systémy - uživatelský režim/režim jádra, architektury OS, přerušení, výjimky, DMA, proces, vlákno, plánování, souborové systémy, virtuální paměť
Paralelní programování - synchronizace, deadlock
Last update: Töpfer Pavel, doc. RNDr., CSc. (25.05.2022)