Kezdőoldal » Számítástechnika » Programozás » [Elméleti kérdés] 2 processzor...

[Elméleti kérdés] 2 processzorral meglehetne ezt valósítani?

Figyelt kérdés
Meglehetne valósítani 2 processzorral azt, hogy egy változót az egyik processzor kezelné, míg a másik változót a másik processzor és egyszerre cserélnének értéket, segéd változó nélkül? Nagyobb struktúráknál szerintem elég hasznos lenne, hogyha meglehetne valósítani. Mit gondoltok?
2016. febr. 19. 13:29
 1/8 anonim ***** válasza:
90%
Ennek mi értelme lenne?
2016. febr. 19. 13:54
Hasznos számodra ez a válasz?
 2/8 anonim ***** válasza:
Ennek nem sok értelmét látom. Csak gondold végig a működési elvet...
2016. febr. 19. 13:57
Hasznos számodra ez a válasz?
 3/8 anonim ***** válasza:
Miért gondolod ezt jó ötletnek? Egyébként bizonyos típusoknál tudsz értéket cserélni segédváltozó nélkül is.
2016. febr. 19. 14:31
Hasznos számodra ez a válasz?
 4/8 A kérdező kommentje:
#3-as, tudom. De mondjuk mi van akkor, hogyha nekem van egy struktúrám, amiben több int típusú tömb is van, nagy értékekkel, 2^31-1 -et megközelítő értékekkel és én a struktúrákon belüli nagy mennyiségű adatot akarom megcserélni?:D Ha segédváltozót használnék, akkor jóval nagyobb lenne a csere memóriaigénye. Ezért tartanám jó ötletnek. De hogyha ismertek valamit, ami erre a célra megfelelő, akkor szívesen meghallgatom :D Csak szimplán kíváncsi vagyok.
2016. febr. 19. 14:34
 5/8 anonim ***** válasza:

Ezért találták ki a mutatókat (aka. pointereket). Egyszerűen csak azt cserélik meg, hogy melyik információ hol található a memóriában.


Amúgy meg a mai memóriák cseszett gyorsak, hogy egy ilyen kiakassza.

2016. febr. 19. 14:47
Hasznos számodra ez a válasz?
 6/8 anonim ***** válasza:

Mi köze a memóriaigénynek a processzorok számához?

Kicsit kezdő vagy még ehhez a kérdéshez.

2016. febr. 19. 14:47
Hasznos számodra ez a válasz?
 7/8 anonim ***** válasza:

Hmm nos először is egy "int" mindig ugyanannyit foglal a memóriában.


Tehát pl

int a = 1

int b = 1000000000


Akkor a pontosan annyi helyet foglal a memóriában, mint b (16 bitet).


Amúgy nem kell segédváltozó, hogy 2 intet felcserélj:

a = a ^ b; b = a ^ b; a = a ^ b;

2016. febr. 19. 15:25
Hasznos számodra ez a válasz?
 8/8 anonim ***** válasza:

Már megint ez a XOR megoldás... Jó pofa de lassabb mint a sima segédváltozós. Egyrészt a segédváltozós megoldást a fordító kioptimalizálja egy swap operátorra, másrészt nincs olyan XOR operátor x86 CPU-kon aminek a két operandusa memória cím lenne. Érthető is mert a CPU sín fél duplex, egyszerre csak vagy írni vagy olvasni tud, de nem mind a kettőt.


Ha fel akarsz cserélni memória blokkokat akkor felcseréled a pointereket és a probléma meg van oldva. Ha nem lehet így megoldani, akkor sem eszik meg a csere sok memóriát mert egyenként cseréled az adatokat. Nincs a sima segédváltozós megoldásnál gyorsabb megoldás, ha trükközöl, azzal csak átvered az optimizert!

2016. febr. 19. 16:49
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!