Srovnávací graf
Základ pro porovnání | Multiprocessing | Multithreading |
---|---|---|
Základní | Multiprocesování zvyšuje výkon procesoru. | Multithreading vytváří více podprocesů jednoho procesu ke zvýšení výpočetního výkonu. |
Provedení | Více procesů se provádí souběžně. | Více podprocesů jednoho procesu se provádí souběžně. |
Tvorba | Vytvoření procesu je časově náročné a náročné na zdroje. | Tvorba nitě je ekonomická jak ve smyslu smyslu, tak i zdroje. |
Klasifikace | Multiprocesování může být symetrické nebo asymetrické. | Multithreading není klasifikován. |
Definice multiprocesního zpracování
Multiprocesní systém je systém, který má více než dva procesory. CPU jsou přidávány do systému, aby se zvýšila výpočetní rychlost systému. Každý procesor má vlastní sadu registrů a hlavní paměť. Jen proto, že CPU jsou oddělené, může se stát, že jeden procesor nesmí mít nic na zpracování a může sedět nečinně a druhý může být přetížen procesy. V takových případech jsou procesy a zdroje dynamicky sdíleny mezi procesory.
Multiprocessing může být klasifikován jako symetrické multiprocessing a asymetrické multiprocessing . V symetrickém vícenásobném zpracování mohou všechny procesory spustit libovolný proces v systému. V Asymmetric multiprocessing, tam je master-slave vztah mezi procesory. Hlavní procesor je zodpovědný za přidělení procesu podřízeným procesorům.
Pokud má procesor integrovaný řadič paměti, přidání procesoru by zvýšilo množství adresovatelné paměti v systému. Vícenásobné zpracování může změnit model přístupu z paměti z jednotného přístupu k paměti na neuniformní přístup k paměti . Jednotný přístup do paměti je stejný čas pro přístup k jakékoli RAM z jakéhokoliv procesoru. Na druhou stranu, ne-jednotný přístup k paměti činí delší dobu pro přístup k některé části paměti než ostatní části.
Definice multithreadingu
Multithreading je provádění více podprocesů jednoho procesu souběžně v kontextu tohoto procesu. Pojďme se nejprve probrat, co je vlákno? Podprocesem procesu se rozumí kódový segment procesu, který má vlastní ID vlákna, čítač programu, registry a zásobník a může provádět nezávisle. Vlákna, která patří do stejného procesu, však musí sdílet věci tohoto procesu, jako je kód, data a systémové prostředky. Vytvoření samostatných procesů pro každý požadavek na službu spotřebovává časové a systémové zdroje. Namísto této režie je efektivnější vytvářet podprocesy procesu.
Vytvoření vlákna je ekonomické, protože sdílí kód a data procesu, ke kterému patří. Systém tedy nemusí přidělit zdroje pro každý podproces zvlášť. Vícevláknové zpracování lze zvýšit na víceprocesovém operačním systému. Protože multithreading na více CPU zvyšuje paralelismus .
Klíčové rozdíly mezi vícenásobným zpracováním a vícevláknovým zpracováním
- Klíčovým rozdílem mezi multiprocessingem a multithreadingem je to, že multiprocesování umožňuje systému mít více než dva CPU přidané do systému, zatímco multithreading umožňuje procesu generovat více vláken pro zvýšení výpočetní rychlosti systému.
- Multiprocesní systém provádí více procesů současně, zatímco vícevláknový systém umožňuje provádět více podprocesů procesu současně.
- Vytvoření procesu může spotřebovat čas a dokonce i vyčerpání systémových prostředků. Vytváření vláken je však ekonomické, protože vlákna, která patří do stejného procesu, sdílejí věci tohoto procesu.
- Multiprocessing lze klasifikovat do symetrického multiprocesního a asymetrického vícenásobného zpracování, zatímco multithreading není dále klasifikován.
Závěr:
Výhody vícevláknového zpracování lze v multiprocesním prostředí postupně zvyšovat, protože vícevláknové zpracování víceprocesového systému zvyšuje paralelismus.