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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions