www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

C kviz
Pojdi na stran 1, 2  Naslednja
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> ARM arhitektura
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
.
Član
Član



Pridružen-a: Pon 23 Avg 2004 16:16
Prispevkov: 16777190
Aktiv.: 70801.66

PrispevekObjavljeno: Tor Maj 30, 2006 8:56 am    Naslov sporočila:  C kviz Odgovori s citatom

Brisana vsebina odstranjenega uporabnika.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Glitch
Član
Član



Pridružen-a: Pet 07 Apr 2006 11:40
Prispevkov: 1477
Aktiv.: 6.32

PrispevekObjavljeno: Tor Maj 30, 2006 9:47 am    Naslov sporočila:   Odgovori s citatom

Pri velikih vrednostih *p pride do preliva.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
.
Član
Član



Pridružen-a: Pon 23 Avg 2004 16:16
Prispevkov: 16777190
Aktiv.: 70801.66

PrispevekObjavljeno: Tor Jun 06, 2006 7:44 am    Naslov sporočila:   Odgovori s citatom

Brisana vsebina odstranjenega uporabnika.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
jur
Član
Član



Pridružen-a: Pet 02 Dec 2005 14:45
Prispevkov: 5142
Aktiv.: 21.70
Kraj: [color=zelena]Ljubljana[/color]

PrispevekObjavljeno: Tor Jun 06, 2006 10:35 am    Naslov sporočila:   Odgovori s citatom

Ali ni bolj enostavno, če je na začetku p določen kot int *p namesto volatile *p?

Jur
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Glitch
Član
Član



Pridružen-a: Pet 07 Apr 2006 11:40
Prispevkov: 1477
Aktiv.: 6.32

PrispevekObjavljeno: Tor Jun 06, 2006 1:30 pm    Naslov sporočila:   Odgovori s citatom

Tip long je koliko bitov? Shame on you

jur, to je samo za demo primere. Lokalna kopija potem ni potrebna (je pa definitino odvisno od arhitekture procesorja in prevajalnika).
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.57

PrispevekObjavljeno: Tor Jun 06, 2006 4:19 pm    Naslov sporočila:   Odgovori s citatom

Eh, enak problem je z vsemi tipi spremenljivk, katerih velikost se razlikuje od arhitekture do arhitekture.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
.
Član
Član



Pridružen-a: Pon 23 Avg 2004 16:16
Prispevkov: 16777190
Aktiv.: 70801.66

PrispevekObjavljeno: Tor Jun 06, 2006 9:34 pm    Naslov sporočila:   Odgovori s citatom

Brisana vsebina odstranjenega uporabnika.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
jur
Član
Član



Pridružen-a: Pet 02 Dec 2005 14:45
Prispevkov: 5142
Aktiv.: 21.70
Kraj: [color=zelena]Ljubljana[/color]

PrispevekObjavljeno: Sre Jun 07, 2006 2:15 pm    Naslov sporočila:   Odgovori s citatom

Arhitektura procesorja ima lahko negativne vplive. Enkrat sem popravljal program, ki je lepo deloval čez 10 let. Po tem pa so prešli na nov sistem. Program so prevedli in je lepo deloval. Vsakih nekaj dni pa je fatalno crknil.

Pokazalo se je, da je program napisala ena ženska, ki ni obvladala programiranja. Ko je bilo potrebno ugotoviti ali je ima kakšen podatek od osmih vrednost nič, je vse skupaj zmnožila in pogledala, ali je produkt nič, namesto da bi uporabljala logični test za posamezne vrednosti (if a=0 then ...). Problem je bil v tem, da je program 10 let tekel na 36 bitni machini. Po tem pa so prešli na 32 bitno arhitekturo. Pri nekaj milijonih množenj na dan se je na nekaj dni slučajno pojavil produkt, ki je presegel zmogljivost nove arhitekture in compilerja. :bonk:

Jur
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
mujo
Član
Član



Pridružen-a: Ned 02 Jan 2005 19:24
Prispevkov: 746
Aktiv.: 3.15
Kraj: MB

PrispevekObjavljeno: Sre Jun 07, 2006 2:35 pm    Naslov sporočila:   Odgovori s citatom

jur je napisal/a:
....Pokazalo se je, da je program napisala ena ženska, ki ni obvladala programiranja. Ko je bilo potrebno ugotoviti ali je ima kakšen podatek od osmih vrednost nič, je vse skupaj zmnožila in pogledala, ali je produkt nič, namesto da bi uporabljala logični test za posamezne vrednosti (if a=0 then ...)....

Zakaj praviš da ni obvladala programiranja? Če je program dobro tekel 10 let, na tisti arhitekturi kot je bilo predvideno, potem je verjetno vedela kaj je delala.
Sicer se mi pa zdi ta rešitev z množenjem kar fajna/elegantna.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Glitch
Član
Član



Pridružen-a: Pet 07 Apr 2006 11:40
Prispevkov: 1477
Aktiv.: 6.32

PrispevekObjavljeno: Sre Jun 07, 2006 2:45 pm    Naslov sporočila:   Odgovori s citatom

Mare, arhitektura ima lahko zelo neposreden vpliv, pa se tega sploh ne zavedaš.

Določene arhitekture omogočajo izvajanje različnih operacij med pomnilniškimi lokacijami kar neposredno. To pomeni, da bi lahko atomična operacija, kot je množenje, za argumente vzela tisti dve vrednosti kamor kaže kazalec, ju zmnožila in vrnila rezultat brez problemov.

No, v tem primeru smo v forumu, ki je namenjen ARM arhitekturi, in to kar si napisal kot rešitev drzi oz. volatile ne sodi zraven. Torej, kdaj lahko pričakujemo novo vprašanje (preden zadidemo mimo s temi posti)?

Moj point je samo v tem, da čeprav nekdo piše v Cju, še ne pomeni da na arhitekturo lahko malce pozabimo (sizeof in pa big/little-endian anyone?).
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
jur
Član
Član



Pridružen-a: Pet 02 Dec 2005 14:45
Prispevkov: 5142
Aktiv.: 21.70
Kraj: [color=zelena]Ljubljana[/color]

PrispevekObjavljeno: Sre Jun 07, 2006 2:53 pm    Naslov sporočila:   Odgovori s citatom

mujo je napisal/a:
Zakaj praviš da ni obvladala programiranja? Če je program dobro tekel 10 let, na tisti arhitekturi kot je bilo predvideno, potem je verjetno vedela kaj je delala.
Sicer se mi pa zdi ta rešitev z množenjem kar fajna/elegantna.


Za ugotavljanje ničle je množenje slaba metoda. Porabi bistveno preveč procesorja, še posebej če so ničle med podatki redke. Ker je bil prej omenjeni 36 bitni sistem večuporabniški, je množenje zaviralo vse uporabnike. V programu je bilo tudi cel kup drugih hudih napak, tako da se ga je napisalo na novo. Dal sem ga samo za primer, kako lahko arhitektura nategne človeka.

Videl sem tudi en program (baza podatkov), ki je iskal lastnosti objekta po bazi, ki je imela okoli 250000 objektov. Ko je programer pri iskanju v bazi našel iskano stvar, jo je iskal še naprej do konca. In to za vsak slučaj ponovil še 250000 krat. Iskanje je tako trajalo okoli 24 ur. Ko smo na hitro popravili program je naredilo obdelavo prej kot v 10 minutah. To sicer z arhitekturo nima zveze, je pa lep primer do it yourself programiranja.

Jur


Nazadnje urejal/a jur Sre Jun 07, 2006 3:10 pm; skupaj popravljeno 1 krat
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
.
Član
Član



Pridružen-a: Pon 23 Avg 2004 16:16
Prispevkov: 16777190
Aktiv.: 70801.66

PrispevekObjavljeno: Sre Jun 07, 2006 3:02 pm    Naslov sporočila:   Odgovori s citatom

Brisana vsebina odstranjenega uporabnika.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.57

PrispevekObjavljeno: Sre Jun 07, 2006 3:15 pm    Naslov sporočila:   Odgovori s citatom

mujo je napisal/a:
Zakaj praviš da ni obvladala programiranja? Če je program dobro tekel 10 let, na tisti arhitekturi kot je bilo predvideno, potem je verjetno vedela kaj je delala.
Sicer se mi pa zdi ta rešitev z množenjem kar fajna/elegantna.


Najbrz zato, ker - tako kot omenjena zenska - nisi nikoli od blizu videl primerjave casa izvajanja sedmih mnozenj (upam si trditi, da doticno racunalo ni imelo vektorskega procesorja, pa tudi ce bi ga imel, bi se lazje in hitreje izvedel primerjavo dveh vektorjev [ena operacija], kot pa mnozil v nekaj iteracijah [log2 stevila argumentov operacij]) v primerjavi z osmimi logicnimi operacijami. Tudi ce odmislis bounds checking, kar vcasih res ni bilo "popularno" (danes te pa posledica tovrstne brezbriznosti se vedno tepe vsakic, ko se kaksen inovativen spyware/malware vgnezdi v tvoj racunalnik), ga ni komercialnega racunalnika na svetu, ki bi izvedel omenjeno mnozenje hitreje/ucinkoviteje, kot edino pravilno operacijo v opisanem primeru.

Ce je sadila take umotvore po programu, je sploh nenavadno, da ni se kje drugje naletela na tezave (recimo ze kar pri sestevanju/odstevanju, kjer se hitro pojavi problem, ce se zanasas na velikost in obliko stevilskih tipov, potem pa program prestavis na drugo arhitekturo).
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
jur
Član
Član



Pridružen-a: Pet 02 Dec 2005 14:45
Prispevkov: 5142
Aktiv.: 21.70
Kraj: [color=zelena]Ljubljana[/color]

PrispevekObjavljeno: Sre Jun 07, 2006 3:22 pm    Naslov sporočila:   Odgovori s citatom

@MarE69: Verjetno je to to:

Although the return value of 'malloc(0)' is a valid pointer, once you cast it to a 'char *', you cannot dereference it because it does not point to a character.

@Sokrat: Ženska je sama priznala, da nima dosti pojma o programiranju. Zato je klicala naokoli na pomoč. Da je bistvo problema v bitnosti računalnika pa je spregledalo kar nekaj ljudi.

Jur
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
mujo
Član
Član



Pridružen-a: Ned 02 Jan 2005 19:24
Prispevkov: 746
Aktiv.: 3.15
Kraj: MB

PrispevekObjavljeno: Sre Jun 07, 2006 3:39 pm    Naslov sporočila:   Odgovori s citatom

jur je napisal/a:
Za ugotavljanje ničle je množenje slaba metoda. Porabi bistveno preveč procesorja, še posebej če so ničle med podatki redke. Ker je bil prej omenjeni 36 bitni sistem večuporabniški, je množenje zaviralo vse uporabnike. V programu je bilo tudi cel kup drugih hudih napak, tako da se ga je napisalo na novo. Dal sem ga samo za primer, kako lahko arhitektura nategne človeka.


To da množenje 8mih števil porabi več procesorja, kot preverjanje vsakega števila posebej, nisem vedel. Se bo treba malo poglobit v procesorske arhihekture...
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> ARM arhitektura Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran 1, 2  Naslednja
Stran 1 od 2

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 495 dni


Powered by phpBB © 2001, 2005 phpBB Group