Co je to proces?
Proces je provedení programu, které vám umožní provádět příslušné akce uvedené v programu. Lze jej definovat jako vykonávací jednotku, kde běží program. OS vám pomůže vytvořit, naplánovat a ukončit procesy, které používá CPU. Ostatní procesy vytvořené hlavním procesem se nazývají podřízený proces.
Procesní operace lze snadno ovládat pomocí PCB (Process Control Block). Můžete to považovat za mozek procesu, který obsahuje všechny důležité informace související se zpracováním, jako je ID procesu, priorita, stav a obsah CPU, atd.
V tomto kurzu Process vs Thread se naučíte:
- Co je to proces?
- Co je vlákno?
- Vlastnosti procesu
- Vlastnosti vlákna
- Rozdíl mezi procesem a vláknem
- Co je to multithreading?
Co je vlákno?
Vlákno je prováděcí jednotka, která je součástí procesu. Proces může mít více podprocesů, všechna se provádějí současně. Je to jednotka provádění při souběžném programování. Vlákno je lehké a lze ho spravovat nezávisle plánovačem. Pomůže vám zlepšit výkon aplikace pomocí paralelismu.
Více vláken sdílí informace, jako jsou data, kód, soubory atd. Vlákna můžeme implementovat třemi různými způsoby:
- Vlákna na úrovni jádra
- Vlákna na úrovni uživatele
- Hybridní vlákna
KLÍČOVÝ ROZDÍL
- Proces znamená, že program je v provádění, zatímco vlákno znamená část procesu.
- Proces není lehký, zatímco vlákna jsou lehká.
- Proces trvá déle, než se ukončí, a ukončení vlákna trvá kratší dobu.
- Proces trvá déle, než vytvoření, zatímco Thread trvá méně času.
- Proces přepínání kontextu pravděpodobně zabere více času, zatímco přepínání kontextu trvá méně času.
- Proces je většinou izolovaný, zatímco vlákna sdílejí paměť.
- Proces nesdílí data a vlákna sdílejí data navzájem.
Vlastnosti procesu
Zde jsou důležité vlastnosti procesu:
- Vytvoření každého procesu vyžaduje samostatná systémová volání pro každý proces.
- Jedná se o izolovanou spouštěcí entitu a nesdílí data a informace.
- Procesy používají pro komunikaci mechanismus IPC (Inter-Process Communication), který významně zvyšuje počet systémových volání.
- Správa procesů vyžaduje více systémových volání.
- Proces má svůj zásobník, haldy paměti s pamětí a datovou mapu.
Vlastnosti vlákna
Zde jsou důležité vlastnosti vlákna:
- Jedno systémové volání může vytvořit více než jedno vlákno
- Vlákna sdílejí data a informace.
- Vlákna sdílejí instrukční, globální a haldy oblasti. Má však svůj registr a zásobník.
- Správa vláken spotřebovává jen velmi málo nebo žádná systémová volání kvůli komunikaci mezi vlákny, které lze dosáhnout pomocí sdílené paměti.
Rozdíl mezi procesem a vláknem
Zde jsou důležité rozdíly mezi procesem a vláknem
Parametr | Proces | Vlákno |
---|---|---|
Definice | Proces znamená, že program je v provádění. | Vlákno znamená část procesu. |
Lehká váha | Tento proces není lehký. | Vlákna jsou lehká. |
Čas ukončení | Ukončení procesu trvá déle. | Ukončení vlákna trvá kratší dobu. |
Čas vytvoření | Tvorba trvá déle. | Tvorba trvá méně času. |
Sdělení | Komunikace mezi procesy vyžaduje více času ve srovnání s vlákny. | Komunikace mezi vlákny vyžaduje ve srovnání s procesy méně času. |
Čas přepínání kontextu | Přepínání kontextu trvá déle. | Přepínání kontextu trvá méně času. |
Zdroj | Proces spotřebovává více zdrojů. | Vlákno spotřebovává méně zdrojů. |
Léčba OS | Různé procesy jsou běhounem samostatně podle OS. | Operační systém se všemi podprocesy úrovně srovnává jako jeden úkol. |
Paměť | Proces je většinou izolovaný. | Vlákna sdílejí paměť. |
Sdílení | Nesdílí data | Vlákna navzájem sdílejí data. |
Co je to multithreading?
Multithreading označuje více podprocesů provádění v operačním systému. Jednoduše řečeno, dvě nebo více vláken stejného procesu se provádí současně.