Kľúčový rozdiel – Multiprocessing vs Multithreading
V počítačovom systéme beží naraz niekoľko procesov. Operačný systém alokuje zdroje procesom a je potrebné zvýšiť vyťaženie CPU. Multiprocesing a multithreading môžu ovplyvniť výkon systému. Kľúčový rozdiel medzi multiprocesingom a multithreadingom je v tom, že pri multiprocesingu beží viacero procesov súčasne s použitím dvoch alebo viacerých procesorov, zatiaľ čo v multithreadingu beží súbežne viacero vlákien v procese. Tento článok popisuje rozdiel medzi multiprocesingom a multithreadingom.
Čo je multiprocesing?
Multiprocessing je spustenie viacerých procesov pomocou dvoch alebo viacerých procesorov súčasne. Existujú rôzne typy multiprocesných mechanizmov. Sú to symetrické viacnásobné spracovanie a asymetrické viacnásobné spracovanie.
Obrázok 01: Symetrické viacnásobné spracovanie
V symetrickom multiprocesingu má každý procesor svoju vlastnú vyrovnávaciu pamäť a všetky procesory sú pripojené pomocou zdieľanej zbernice. Keďže existuje zdieľaná pamäť, všetky procesory zdieľajú rovnaký pamäťový adresný priestor. Jedným z obmedzení tejto metódy je, že keď sa zvýši počet procesorov, môže sa spomaliť prístup k hlavnej pamäti. Procesory môžu voľne spúšťať akýkoľvek proces v systéme.
Pri asymetrickom multiprocesingu fungujú procesory podľa architektúry master-slave. Hlavný procesor prideľuje procesy podriadeným procesorom.
Čo je viacvláknové spracovanie?
V počítačovom systéme beží súčasne viacero procesov. Proces je vykonávaný program. Prácu v MS Word možno považovať za proces. Pri používaní MS Word sa kontroluje gramatika a pravopis. Je to podproces alebo podúloha. Týmto spôsobom je hlavný proces rozdelený na podprocesy. Tieto podprocesy sú jednotkami procesu a sú známe ako vlákna. Preto je proces podobný úlohe a vlákno je jednotkou procesu.
Vlákno pozostáva z počítadla programu, počítadla vlákien, sady registrov, ID vlákna a zásobníka. Vytváranie procesov pre každú úlohu nie je efektívna metóda. Preto je proces rozdelený do viacerých vlákien. Tieto viaceré vlákna bežia v procese súčasne. Tento koncept je známy ako „Multi-threading“.
Obrázok 02: Viacvláknový proces
Viacvláknové spracovanie má niekoľko výhod. Každé vlákno v procese zdieľa rovnaký kód, údaje a zdroje. Nie je potrebné prideľovať zdroje každému vláknu samostatne, takže používanie vlákien je ekonomické. Ak jedno vlákno zlyhá, neovplyvní to proces. Vlákna sú ľahké a spotrebúvajú minimálne množstvo zdrojov v porovnaní s procesom.
Aké sú podobnosti medzi multiprocesingom a multithreadingom?
- Obe metódy môžu zvýšiť využitie procesora.
- Obe metódy môžu zvýšiť rýchlosť počítača.
Aký je rozdiel medzi multiprocesingom a multithreadingom?
Multiprocessing vs Multithreading |
|
Multiprocessing je spustenie viacerých procesov pomocou dvoch alebo viacerých procesov súčasne, aby sa zlepšil výkon systému. | Viacvláknové spracovanie je spustenie viacerých vlákien v procese súčasne s cieľom zlepšiť výkon systému. |
Vykonanie | |
V multiprocesingu beží viacero procesov súčasne. | V multithreadingu beží súčasne viaceré vlákna v jednom procese. |
Požiadavky na zdroje | |
Multiprocessing vyžaduje viac zdrojov. | Viacvláknové spracovanie nevyžaduje veľa zdrojov; preto je to ekonomickejšie. |
Summary – Multiprocessing vs Multithreading
Multiprocessing a multithreading môžu ovplyvniť výkon počítača. Rozdiel medzi multiprocesingom a multithreadingom je v tom, že v multiprocesingu beží viacero procesov súčasne pomocou dvoch alebo viacerých procesorov a v multithreadingu beží súbežne viacero vlákien v jednom procese. Na zvýšenie rýchlosti a využitia procesora je možné na viacerých procesoroch implementovať viacvláknové spracovanie.
Stiahnite si PDF verziu Multiprocessing vs Multithreading
Verziu tohto článku si môžete stiahnuť vo formáte PDF a použiť ju na offline účely podľa citácie. Stiahnite si PDF verziu tu Rozdiel medzi multiprocesingom a multithreadingom