Kas yra daugiaprocesinis procesas?
Daugiaprocesinė sistema turi daugiau nei du procesorius. Procesoriai pridedami prie sistemos, kuri padeda padidinti sistemos skaičiavimo greitį. Kiekvienas procesorius turi savo registrų rinkinį ir pagrindinę atmintį.
Tačiau kadangi kiekvienas procesorius yra atskiras, gali atsitikti taip, kad vienas procesorius gali neturėti ką apdoroti. Vienas procesorius gali neveikti, o kitas gali būti perkrautas konkrečiais procesais. Tokiu atveju procesas ir ištekliai dinamiškai dalijasi tarp procesorių.
Šioje pamokoje sužinosite:
- Kas yra daugiaprocesinis procesas?
- Kas yra daugialypis sriegimas?
- Daugiaprocesorinės charakteristikos:
- Daugialypio sriegimo ypatybės
- Skirtumas tarp daugiaprocesinio ir daugiagijio
- Daugiaprocesinio proceso pranašumas
- Daugialypio sriegio pranašumas
- Daugiaprocesinio proceso trūkumas
- Daugialypio sriegimo trūkumas
Kas yra daugialypis sriegimas?
Daugialypis siūlas yra programos vykdymo technika, leidžianti vienam procesui turėti kelis kodo segmentus (pvz., Gijas). Jis taip pat vyksta tuo pačiu metu to proceso „kontekste“. Kelių sričių programos yra programos, turinčios dvi ar daugiau gijų, kurios veikia vienu metu. Todėl jis taip pat žinomas kaip lygiagretumas.
Pagrindiniai skirtumai:
- Daugiaprocesinė sistema turi daugiau nei du procesorius, tuo tarpu „Multithreading“ yra programos vykdymo technika, leidžianti vienam procesui turėti kelis kodo segmentus
- Daugiaprocesinis procesas pagerina sistemos patikimumą, tuo tarpu daugiasriegio proceso metu kiekviena gija eina lygiagrečiai viena su kita.
- Daugiaprocesinis procesas padeda padidinti skaičiavimo galią, o daugiagijis - sukurti vieno proceso skaičiavimo gijas
- Taikant daugiaprocesinį procesą, procesas yra lėtas ir priklauso nuo išteklių, tuo tarpu daugiaprogramiu atveju gijos kūrimas yra ekonomiškas laiko ir išteklių atžvilgiu.
- Daugialypis sriegis leidžia išvengti rauginimo, tuo tarpu daugiaprocesinis procesas priklauso nuo to, kad rauginami atmintyje esantys objektai, kad jie būtų siunčiami kitiems procesams.
- Daugiaprocesinė sistema užtrunka mažiau laiko, o darbo apdorojimui reikia vidutiniškai laiko.
Daugiaprocesinio proceso ypatybės
Čia pateikiamos pagrindinės daugiaprocesorinės savybės:
- Daugiaprocesinis procesas yra klasifikuojamas pagal tai, kaip organizuojama jų atmintis.
- Daugkartinis apdorojimas pagerina sistemos patikimumą
- Daugkartinis apdorojimas gali pagerinti našumą skaidant programą į lygiagrečias vykdomas užduotis.
Daugialypio sriegimo ypatybės
Čia yra svarbūs daugialypio sriegimo aspektai:
- Vykdant daugiasriegį procesą, kiekviena gija eina lygiagrečiai viena su kita.
- Gijos neleidžia atskirti atminties srities. Todėl taupoma atmintis ir siūlomas geresnis programų veikimas
Skirtumas tarp daugiaprocesinio ir daugiagijio
Čia yra svarbūs skirtumai tarp daugiaprocesinio ir daugialypio gijimo.
Parametras | Daugiaprocesinis apdorojimas | Daugialypis sriegis |
---|---|---|
Pagrindinis | Keli procesoriai padeda padidinti skaičiavimo galią. | Keli sriegiai padeda jums sukurti vieno proceso skaičiavimo gijas, kad padidintumėte skaičiavimo galią. |
Vykdymas | Tai leidžia vienu metu vykdyti kelis procesus. | Kelios vieno proceso gijos vykdomos vienu metu. |
Procesoriaus perjungimas | „Multiprocessing“ procesorius turi persijungti iš kelių programų, kad atrodytų, jog kelios programos veikia vienu metu. | Daugiagijyje procesorius turi persijungti tarp kelių gijų, kad pasirodytų, jog visos gijos veikia vienu metu. |
Kūryba | Procesas kuriamas lėtai ir priklauso nuo išteklių. | Gijos sukūrimas yra ekonomiškas laiko ir išteklių atžvilgiu. |
klasifikacija | Daugiaprocesinis apdorojimas gali būti simetriškas arba asimetriškas. | Daugialypis sriegimas nėra klasifikuojamas. |
Atmintis | Daugiaprocesinė operacija kiekvienam procesui ar programai skiria atskirą atmintį ir išteklius. | Daugiagijės gijos, priklausančios tam pačiam procesui, turi tą pačią atmintį ir išteklius, kaip ir procesas. |
Obuolių rauginimas | Daugiasriegis vengia rauginimo. | Daugiaprocesinis procesas priklauso nuo to, kad objektai yra išrenkami atmintyje ir siunčiami į kitus procesus. |
Programa | Daugiaprocesinė sistema leidžia vykdyti kelias programas ir užduotis. | Daugialypė sriegimo sistema vykdo kelias tų pačių arba skirtingų procesų gijas. |
Užtruko laikas | Darbo apdorojimui skiriama mažiau laiko. | Darbui apdoroti skiriama vidutiniškai daug laiko. |
Daugiaprocesinio proceso pranašumas
Čia yra daugelio procesų trūkumai ir trūkumai:
- Didžiausias daugiaprocesorinės sistemos privalumas yra tai, kad ji padeda jums atlikti daugiau darbų per trumpesnį laikotarpį.
- Paprastai kodas yra paprastas.
- Naudojasi keliais procesoriais ir branduoliais
- Padeda išvengti GIL apribojimų „CPython“
- Pašalinkite sinchronizavimo pradmenis, nebent naudosite bendrą atmintį.
- Vaiko procesai dažniausiai yra pertraukiami / nužudomi
- Tai padeda jums atlikti darbus per trumpesnį laiką.
- Šio tipo sistemos turėtų būti naudojamos, kai norint apdoroti didelį duomenų kiekį reikalingas labai didelis greitis.
- Daugiaprocesinės sistemos taupo pinigus, palyginti su vieno procesoriaus sistemomis, nes procesoriai gali dalytis periferiniais įrenginiais ir maitinimo šaltiniais.
Daugialypio sriegio pranašumas
Čia yra daugialypio sriegio pliusai / privalumai:
- Siūlai turi tą pačią adresų erdvę
- Siūlai yra lengvi ir turi mažai atminties
- Ryšio tarp gijų kaina yra maža.
- Lengviau pasiekti atminties būseną iš kito konteksto
- Tai leidžia lengvai kurti reaguojančias vartotojo sąsajas
- Idealus variantas į I / O jungiamoms programoms
- Užtrunka mažiau laiko, norint persijungti tarp dviejų gijų bendroje atmintyje, ir laiko nutraukti
- Siūlai paleidžiami greičiau nei procesai, taip pat greičiau perjungiant užduotis.
- Visos temos naudoja procesų atminties fondą, kuris yra labai naudingas.
- Norint sukurti naują giją esamame procese, reikia mažiau laiko nei naujam procesui
Daugiaprocesinio proceso trūkumas
Čia yra trūkumai / trūkumai naudojant „Multiprocessing“ operacinę sistemą
- IPC (Inter-Process Communication) yra gana sudėtinga ir daugiau pridėtinių išlaidų
- Turi didesnį atminties pėdsaką
Daugialypio sriegimo trūkumas
Čia yra daugialypio sriegimo sistemos trūkumai / trūkumai:
- Daugialypė gija nėra pertraukiama / nužudoma
- Jei nesilaikote komandų eilės ir pranešimų siurblio modelio, reikia rankiniu būdu naudoti sinchronizavimą, kuris tampa būtinybe
- Kodas paprastai yra sunkiau suprantamas ir padidina lenktynių sąlygų potencialą