Sammenligningstabel
Grundlag for sammenligning | multiprocessing | multithreading |
---|---|---|
Grundlæggende | Multiprocessing tilføjer CPU'er for at øge datakraften. | Multithreading opretter flere tråde af en enkelt proces for at øge computerkraften. |
Udførelse | Flere processer udføres samtidigt. | Flere tråde af en enkelt proces udføres samtidigt. |
Skabelse | Oprettelse af en proces er tidskrævende og ressourceintensiv. | Oprettelse af en tråd er økonomisk i både tid og ressource. |
Klassifikation | Multiprocessing kan være symmetrisk eller asymmetrisk. | Multithreading er ikke klassificeret. |
Definition af Multiprocessing
Et multiprocessorsystem er en, der har mere end to processorer. CPU'erne tilføjes til systemet for at øge systemets hastighed. Hver CPU har sit eget sæt registre og hovedhukommelse. Bare fordi CPU'er er adskilte, kan det ske, at en CPU ikke må have noget at behandle og kan sidde tomgang og den anden kan overbelastes med processerne. I sådanne tilfælde deles processerne og ressourcerne dynamisk blandt processorerne.
Multiprocessing kan klassificeres som symmetrisk multiprocessing og asymmetrisk multiprocessing . Ved symmetrisk multiprocessing er alle processorer fri til at køre enhver proces i et system. I asymmetrisk multiprocessing er der et master-slave forhold blandt processorerne. Mesterprocessoren er ansvarlig for allotering af processen til slaveprocessorer.
Hvis processoren har integreret hukommelsescontroller, vil tilsætningen øge mængden af adresserbar hukommelse i systemet. Multiprocessing kan ændre hukommelsesadgangsmodellen fra ensartet hukommelsesadgang til uensartet hukommelsesadgang . Den ensartede hukommelsesadgang er den samme tid for adgang til noget RAM fra enhver Processor. På den anden side beløber ikke-ensartet hukommelsesadgang længere tid til at få adgang til en del af hukommelsen end de andre dele.
Definition af multithreading
Multithreading er udførelsen af flere tråde af en enkelt proces samtidigt inden for rammerne af den proces. Lad os først diskutere, hvad der er en tråd? En procesproces betyder et kodesegment af en proces, som har sit eget tråd-id, programtæller, registre og stak og kan udføres uafhængigt. Men tråde, der tilhører den samme proces, skal dele ejendele af denne proces som kode, data og systemressourcer. Oprettelse af separate processer for hver serviceanmodning bruger tid og udstødningssystemressourcer. I stedet for at pådrage denne overhead er det mere effektivt at skabe tråde i en proces.
Oprettelse af en tråd er økonomisk, da den deler koden og dataene i processen, som de tilhører. Så systemet behøver ikke at allokere ressourcer separat for hver tråd. Multithreadning kan øges på multiprocessing operativsystem. Som multithreading på flere CPU'er øger parallelisme .
Nøgleforskelle mellem multiprocessing og multithreading
- Nøgleforskellen mellem multiprocessing og multithreading er, at multiprocessing gør det muligt for et system at have mere end to CPU'er tilføjet til systemet, mens multithreading gør det muligt for en proces at generere flere tråde for at øge systemets hastighed.
- Multiprocessing system udfører flere processer samtidigt, mens multithreadingssystemet udfører flere tråde af en proces samtidigt.
- Oprettelse af en proces kan forbruge tid og endda udstøde systemressourcerne. Men at skabe tråde er økonomisk, da tråde, der tilhører den samme proces, deler de tilhørende processer.
- Multiprocessing kan klassificeres i symmetrisk multiprocessing og asymmetrisk multiprocessering, mens multithreadning ikke klassificeres yderligere.
Konklusion:
Fordelene ved multithreading kan gradvist øges i multiprocessing miljø, da multithreading på et multiprocessing system øger parallelisme.