Kurs om

C++ för minnesbegränsade system

Kurs om hur du implementerar C++ applikationer med egen minneshantering

Denna kurs går på djupet om hur man på olika sätt optimerar och hanterar system som av olika skäl är minnesbegränsade. Det kan vara inbyggda system eller transaktionsintensiva system. Kort sagt, programmering av system där minneshanteringen kräver en alldeles speciell form av omsorg.

Du får lära dig om hur man designar system som inte använder sig av system heapen. Hur man bygger fler-trådade system med effektiv minneshantering. Hur man bygger system av processer med delat minne. Hur man fångar och exekverar vidare efter ett null pekar fel. Hur man kan generera en stack-trace i ett C/C++ program samband med ett kastat undantag. Samt, mycket mer där till.

Välkommen till en spännande och inspirerande fördjupningskurs i Modern C++.

Snabbfakta

Namn
C++ för minnesbegränsade system
Ämne
C++ och C
URI
cxx/cxx-memory-constrained-systems
Längd
3 dagar
Nivå
Advanced
Målgrupp
Rutinerade C++ programmerare
Förkunskaper
Kunna programmera i C++
Programvara & Verktyg
  • GNU C++ Compiler, version 10 or later
  • JetBrains CLion
  • Ubuntu Linux

Kursdatum

Här ser du vilka kursdatum som är tillgängliga. Klicka på en av datumknapparna för att anmäla dig till ett kurstillfälle. På kursen pratar läraren svenska, medan vårt kursmaterial alltid är författat på engelska.

Missa inte vår samfaktureringsrabatt! Är ni fler personer från samma företag/organisation som går på samma kurs, rabatteras tillkommande personer med 50% . Ni anmäler er till kursen en och en, men uppger samma företag, så ordnar vi resten. Samtliga deltagare från samma företag ingår på samma faktura, den första till fullt pris och resterande till rabatterat pris.

Kurs i Klassrum

Du sitter bekvämt i ett av våra klassrum, vilka finns centralt placerade i Stockholms innerstad.

I priset ingår tryckt kursmaterial (och som PDF), samt kaffe/te med smörgås på förmiddagen och kaffe/te med bulle på eftermiddagen.

Pris: 20 000 kr + moms

Kurs via Zoom

Du sitter bekvämt framför datorn och deltar i kursen via internet. Vi använder programvaran Zoom för alla våra fjärrkurser.

I priset ingår kursmaterial som PDF.

Pris: 15 000 kr + moms

Kurs hos Er

Om ni är tre eller fler personer från samma företag eller organisation, kan ni beställa en företagsanpassad kurs. Då håller vi kursen på ett datum som passar er. Antingen på plats i era lokaler eller som en fjärrkurs. Vi kan också hålla den muntliga framställningen på engelska. Klicka på knappen nedan för att be om en offert.

Detta får du lära dig

Här är ett sammandrag i punktform av vad du får lära dig på kursen. Eftersom kursmaterialet är författat på engelska, så återger vi sammandraget också på engelska.

  • Be able to use and implement smart pointers
  • Be able to catch a zero pointing error and continue the execution
  • Be able to generate a stack trace in a C / C ++ program
  • Know how to allocate dynamic memory on the stack
  • Be able to implement own memory allocation based on a block pool
  • Be able to implement programs with memory management outside the heap
  • Be able to use PMR (Polymorphic Memory Resource) which was introduced in C ++ 17
  • Be able to implement multi-threaded systems, where each thread has its own private heap
  • Be able to implement a program that loads a file into memory with mmap
  • Be able to implement systems with shared memory

Kursinnehåll

Eftersom kursmaterialet är författat på engelska, så återger vi innehållet också på engelska.

Brief about Modern C++

Just a quick recap of some topics from newer C++ which are essential for this course.

Understanding RAII

Discussion of the idiom Resource Acquisition Is Initialization and how important it is for memory management.

Usage of new & delete

Discussion of usage of new & delete, to lay the groundwork for the rest of the course.

Smart Pointers

Understand how to implement smart pointers and what is supported in Modern C++.

Address Space Organization

Understand where various data blocks get allocated in *NIX like systems.

Understanding Alignment

Brief discussion of byte alignment and its support in C++.

Understanding the System Heap

Discussion of the system heap.

Usage of Exceptions

Deep-dive discussion of exceptions in C++.

Understanding RTTI

Deep-dive into RTTI, demangling and how to generate stack-traces in C++.

Dealing with Text Strings

Short recap of the string support in Modern C++.

Memory Behaviour of STL Containers

Understanding of happens behind the curtains of STL containers.

Stack Allocated Memory

The heap is not the only place to allocate data, here we discuss how to use the stack dynamic memory allocation.

User-Defined Memory Allocation

The moment you start to use areas outside the system heap, you need to implement your allocation and de-allocation library, in this chapter we show you how.

Polymorphic Memory Resources

In this chapter we discuss the allocation support added in C++17 and available since GCC version 9.

Multi-Threaded Applications

Brief discussion of the threading support in Modern C++, to serve as the basis for next chapter.

Memory Allocation in Multi-Threaded Systems

Discussion of how to in practice implement thread private heaps using PMR.

Shared Memory

Discussion of memory-mapped file and how to create a shared memory segment.

Memory Allocation in Multi-Process Systems

Discussion of memory allocation and synchronization in shared memory between two processes.

-->