Mai korszerű rendszerek tudnak több processzormagon-szálon futtatni programot akkor is, ha a multithread nincs beleírva a programba?
Tehát mondjuk bármilyen egyszerűen megírt algoritmus, vagy bármi ami hosszú ideig tart, a rendszer nem tudja automatikusan több szálra - vagy processzormagra osztani a feladatot semmilyen esetben, ha adott programba nincs ez beleírva?
Lehet esetleg valamely programozási nyelv esetén valamilyen fordítói direktívával bekapcsolni funkciót amelynek hatására adott operációs rendszer megpróbálná többszálúsítani a feladatot? Windows és Linux esetén érdekelne a dolog.
Van ilyen, de nagyon alacsony hatásfokú.
Előfordul, hogy a proci beszopja és kezdheti elölről a műveletsort.
#2 nyersen fogalmazott, de jól írja. Előfordulhat, hogy a párhuzamos végrehajtás során pl. adat ütközés lép fel, tehát az egyik szál olyan adatot ír, amit a másik olvasna (csak hát nem mindegy, hogy az algoritmus szerint az írás előtt vagy után kell neki), vagy olyat olvas, amit a másik írna, esetleg mindkettő írni akar. Ezt a fajta párhuzamosítást és ütközésfigyelést a proci csinálja. pl:
Az 1-es linkekben magasabb szintű megoldások vannak, ezekhez a megfelelő környezet vagy fordító szükséges.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!