Procesy a vlákna

Proces

  • Instance spuštěného programu nebo aplikace

  • Entita, ve které jsou alokované prostředky (paměť, vlákna, sockety, ...)

  • Jádro OS si pro každý proces udržuje různé datové struktury (kernel structures)

    • PID - číslo procesu
    • Identita procesu - USER, RUSER
    • Správu paměti (překlad virtuálních adres - page table)
    • Správu FS - tabulka deskriptorů souborů
  • Při vzniku nového je část datových struktur zděděna od rodiče

S jedním vláknem

../Attachments/Pasted image 20230301144455.png

S více vlákny

../Attachments/Pasted image 20230301144524.png

Vlákno

  • Proud instrukcí, kterému je přidělováno jádro CPU
  • Historicky "light-weight process" (lwp)
  • Vlákna vytvořena v rámci procesu sdílí většinu prostředků alokovaných v tomto prostředku
    • tj. 2 vlákna stejného procesu využívají stejný adresní prostor
    • 2 procesy mají 2 různé adresní prostory
  • Jádro OS si ukládá
    • TID - číslo vlákna
    • zásobník - lokální proměnné
  • Každé vlákno musí mít svůj vlastní stack
  • Jedno vlákno vidí data jiného vlákna

Vytvořeno: 7. 8. 2024, 13:25
Poslední aktualizace: 7. 8. 2024, 13:25