04 - Procesy a vlákna
Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu PDF.
Viz [1]
Zásobník:
•
datová struktura pro dočasné ukládání dat
•
manipulace s daty typu LIFO (Last in – First Out)
•
typická aplikace: vnitřní zásobník procesoru, vkládání do zás. =operace
push, vybírání ze zás. = operace pop.
Viz 1. předn.
A7B38UOS Úvod do operačních systémů 04 - Procesy a vlákna
Výhody vláken
•
Vícevláknový proces není blokován při zablokování jednoho z vláken (např.
při čekání na událost)
•
Paměť a systémové prostředky jsou sdíleny (na rozdíl od procesů), zvyšuje
se efektivita jejich využití, zjednodušuje se přenos dat mezi vlákny (např.
použití globálních proměnných ale POZOR na kritické sekce!!! v programu)
•
Přepínání kontextu vláken je výrazně rychlejší než přepínání kontextu u
procesů
•
Efektivní provádění pomalých I/O operací (I/O operace se mohou překrývat
s výpočetními operacemi)
•
Výrazné zrychlení programu v případě multiprocesorové architektury (=
počítačový systém obsahuje několik procesorů nebo vícejádrové procesory);
vlákna běží skutečně paralelně (NE pseudoparalelně!!!)
•
Lepší strukturování programu (Ale s rozumem!!! Nepřehánět počet vláken,
zvyšuje časovou režii při přepínání kontextu)
A7B38UOS Úvod do operačních systémů 04 - Procesy a vlákna
Implementace vláken - ULT
Přepínání kontextu vláken: na úrovni uživatele (a), jádra (b) nebo (c)
kombinované.
(a) Na uživatelské úrovni (ULT User-level Thread)
Na úrovni aplikačního procesu (User Mode) musí být implementována
speciální knihovna pro správu vláken (thread library)
Výhody:
•
Nezávislost na podpoře jádra
•
Rychlejší přepínání kontextu a vytváření nových vláken
•
Plná kontrola procesu nad správou vláken ?!
Neýhody:
•
volání služby (blokujícího volání jádra) jedním vláknem blokuje všechna
vlákna procesu
•
nutnost dodatečného programování (řízení vláken programátorem)
•
Vlákna jednoho procesu nemohou běžet na více procesorech
A7B38UOS Úvod do operačních systémů 04 - Procesy a vlákna
Implementace vláken - KLT
(b) Na úrovni jádra (KLT Kernel-level Thread)
Výhody:
•
Systémová volání neblokují ostatní vlákna téhož procesu
•
Vlákna jednoho procesu mohou běžet na více procesorech
•
Programy jádra mohou být vícevláknová
Neýhody:
•
Správa vláken je nákladnější (časově náročnější) než u čistě uživatelských
vláken