
Vergelijkingstabel
Basis voor vergelijking | multiprocessing | multithreading |
---|---|---|
basis- | Multiprocessing voegt CPU's toe om de rekenkracht te vergroten. | Multithreading creëert meerdere threads van een enkel proces om de rekenkracht te vergroten. |
Uitvoering | Meerdere processen worden gelijktijdig uitgevoerd. | Meerdere threads van een enkel proces worden gelijktijdig uitgevoerd. |
schepping | Het maken van een proces is tijdrovend en arbeidsintensief. | Het maken van een thread is economisch in zowel sense time als resource. |
Classificatie | Multiprocessing kan symmetrisch of asymmetrisch zijn. | Multithreading is niet geclassificeerd. |
Definitie van multiprocessing
Een multiprocessingsysteem is er een met meer dan twee processoren. De CPU's worden aan het systeem toegevoegd om de rekensnelheid van het systeem te verhogen. Elke CPU heeft zijn eigen set registers en hoofdgeheugen. Alleen omdat CPU's gescheiden zijn, kan het gebeuren dat één CPU niets hoeft te verwerken en mogelijk niet gebruikt wordt en de andere mogelijk overbelast raakt met de processen. In dergelijke gevallen worden de processen en de bronnen dynamisch gedeeld tussen de processors.

Multiprocessing kan worden geclassificeerd als symmetrische multiprocessing en asymmetrische multiprocessing . Bij symmetrische multiprocessing zijn alle processors vrij om elk proces in een systeem uit te voeren. Bij asymmetrische multiprocessing is er een master-slave-relatie tussen de processors. De hoofdprocessor is verantwoordelijk voor het toewijzen van het proces aan slaafprocessors.
Als de processor een geheugencontroller heeft geïntegreerd, verhoogt het toevoegen van de processor de hoeveelheid adresseerbaar geheugen in het systeem. Multiprocessing kan het geheugentoegangsmodel veranderen van uniforme geheugentoegang tot niet-uniforme geheugentoegang . De uniforme geheugentoegang bedraagt dezelfde tijd voor toegang tot RAM vanaf elke processor. Aan de andere kant, niet-uniforme geheugentoegang betekent een langere tijd om toegang te krijgen tot een deel van het geheugen dan de andere delen.
Definitie van Multithreading
Multithreading is de uitvoering van meerdere threads van een enkel proces gelijktijdig binnen de context van dat proces. Laten we nu eerst bespreken wat een rode draad is? Een thread van een proces betekent een codesegment van een proces, dat zijn eigen thread-ID, programmateller, registers en stack heeft en onafhankelijk kan uitvoeren. Maar threads die bij hetzelfde proces horen, moeten de bezittingen van dat proces delen, zoals code, gegevens en systeembronnen. Het creëren van afzonderlijke processen voor elk serviceverzoek kost tijd en verbruikt bronnen van het uitlaatsysteem. In plaats van deze overhead te maken, is het efficiënter om threads van een proces te maken.


Het maken van een thread is economisch omdat het de code en gegevens deelt van het proces waartoe ze behoren. Het systeem hoeft dus niet voor elke thread afzonderlijk bronnen toe te wijzen. Multithreading kan worden verhoogd op multiprocessing-besturingssysteem. Aangezien multithreading op meerdere CPU's parallellisme verhoogt.
Belangrijkste verschillen tussen multiprocessing en multithreading
- Het belangrijkste verschil tussen multiprocessing en multithreading is dat multiprocessing een systeem toestaat om meer dan twee CPU's aan het systeem toe te voegen, terwijl multithreading een proces meerdere threads laat genereren om de rekensnelheid van een systeem te verhogen.
- Multiprocessing-systeem voert meerdere processen tegelijkertijd uit, terwijl het multithreading-systeem meerdere threads van een proces tegelijkertijd kan uitvoeren.
- Het creëren van een proces kan tijd kosten en zelfs de systeembronnen uitputten . Het maken van discussielijnen is echter economisch omdat threads die bij hetzelfde proces horen, de bezittingen van dat proces delen.
- Multiprocessing kan worden ingedeeld in symmetrische multiprocessing en asymmetrische multiprocessing, terwijl multithreading niet verder wordt geclassificeerd.
Conclusie:
De voordelen van multithreading kunnen geleidelijk worden verhoogd in multiprocessing-omgevingen, omdat multithreading op een multiprocessingsysteem het parallellisme verhoogt.