Skip to content

Operační systémy do hloubky #63

@zapotocnylubos

Description

@zapotocnylubos

Scheduler a správa procesů

Jak OS rozhoduje kdo a kdy běží.

  • Algoritmy plánování – Round Robin, Priority, CFS (Linux)
  • Context switch – co přesně se děje při přepnutí procesů
  • Stavy procesu – running, sleeping, zombie
  • Forking, exec – jak procesy vznikají

Signály a IPC

Jak procesy komunikují a reagují na události.

  • Signály – SIGKILL, SIGTERM, SIGSEGV, vlastní handlery
  • IPC mechanismy – pipes, message queues, shared memory
  • Unix sockety

Virtuální paměť a stránkování

Proč každý proces vidí "vlastní" adresní prostor.

  • Virtuální vs fyzická paměť
  • Stránkování – page tables, TLB
  • Page fault – co se děje když proces přistoupí na nenamapovanou stránku
  • mmap – přímé mapování souborů do paměti

Swap a správa paměti

Co se děje když fyzická paměť nestačí.

  • Swap – kdy a jak OS odkládá stránky
  • OOM killer – jak Linux rozhoduje co zabít
  • Memory overcommit

Syscalls a kernel/userspace

Jak userspace komunikuje s kernelem.

  • User space vs kernel space – proč to oddělení existuje
  • Syscall mechanismus – co se stane při read(), write(), open()
  • Interrupts a traps – hardwarové přerušení vs softwarové

Souborový systém internals

Jak jsou data skutečně uložena na disku.

  • Inodes a bloky – struktura ext4
  • Hard linky vs symlinky
  • VFS – abstrakce nad různými filesystémy
  • Journaling – proč filesystem přežije výpadek proudu

Synchronizace a souběžnost

Jak OS a programy řeší přístup ke sdíleným zdrojům.

  • Race conditions – proč vznikají
  • Mutex, semafory, spinlock
  • Deadlock – detekce a prevence
  • Futex – jak jsou mutexy implementovány v Linuxu

cgroups a namespaces

Jak funguje izolace procesů – základ kontejnerů.

  • Namespaces – PID, network, mount, user
  • cgroups – limitace CPU, paměti, I/O
  • Jak Docker používá namespaces a cgroups

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions