Igår, 15:08
  #1
Medlem
Mondhers avatar
Om två personer fyller på sina mobilkontantkort exakt samtidigt och båda trycker på "Bekräfta" i samma ögonblick, varför kan inte bådas saldon uppdateras i exakt samma millisekund? (Om dom använder samma kod alltså)

Är det ett rent tekniskt problem, där systemet helt enkelt måste behandla en begäran i taget, hur snabbt det än går? Eller handlar det om något mer grundläggande, att två separata händelser faktiskt aldrig kan inträffa 100 % samtidigt, utan att den ena alltid, om så bara med en miljarddels sekund, sker före den andra?

Med andra ord: finns det egentligen någon verklig samtidighet i digitala system, eller är "samtidigt" bara en illusion eftersom allt sker så ofattbart snabbt?
__________________
Senast redigerad av Mondher Igår kl. 15:16.
Citera
Igår, 15:17
  #2
Medlem
Citat:
Ursprungligen postat av Mondher
Om två personer fyller på sina mobilkontantkort exakt samtidigt och båda trycker på "Bekräfta" i samma ögonblick, varför kan inte bådas saldon uppdateras i exakt samma millisekund?
Olika latens,
Inom internet används latens som ett uttryck för hur lång tid det tar att skicka ett datapaket från ett ställe till ett annat.
https://sv.wikipedia.org/wiki/Latens
Citera
Igår, 15:17
  #3
Medlem
Citat:
Ursprungligen postat av Mondher
Om två personer fyller på sina mobilkontantkort exakt samtidigt och båda trycker på "Bekräfta" i samma ögonblick, varför kan inte bådas saldon uppdateras i exakt samma millisekund?

Är det ett rent tekniskt problem, där systemet helt enkelt måste behandla en begäran i taget, hur snabbt det än går? Eller handlar det om något mer grundläggande, att två separata händelser faktiskt aldrig kan inträffa 100 % samtidigt, utan att den ena alltid, om så bara med en miljarddels sekund, sker före den andra?

Med andra ord: finns det egentligen någon verklig samtidighet i digitala system, eller är "samtidigt" bara en illusion eftersom allt sker så ofattbart snabbt?
Det finns ju ingen universaltid (vilket Einstein visade med sina relativitetsteorier) - avstånd i rum är avstånd i tid. Därmed existerar ingen samtidighet, eller kanske rättare sagt: det beror på vem du frågar och hur de förhåller sig till varandra.

Datorer arbetar dock med diskreta "tidstick", så möjligheten finns säkert att två saker kan ske exakt samtidigt. De brukar väl dock ha en buffert av data att behandla (som en kö), så förmodligen är det inget problem där.
Citera
Igår, 15:29
  #4
Medlem
Smekarn87s avatar
Ingen vet skulle jag säga. Innan herr Max plank så är svaret självklart nej för man kan alltid mäta lite noggrannare. Fast Max Plank visade att det troligen finns en minsta möjliga av allt möjligt i naturen. Finns det en minsta möjliga tidslängd I ett system I vila så kan man absolut peka på att saker skett samtidigt. Men då behöver du träffa samma kmtidpinkt med minst 41 decimalers sekund.
Citera
Igår, 19:31
  #5
Medlem
Citat:
Ursprungligen postat av ladicius
Det finns ju ingen universaltid (vilket Einstein visade med sina relativitetsteorier) - avstånd i rum är avstånd i tid. Därmed existerar ingen samtidighet, eller kanske rättare sagt: det beror på vem du frågar och hur de förhåller sig till varandra.

Datorer arbetar dock med diskreta "tidstick", så möjligheten finns säkert att två saker kan ske exakt samtidigt. De brukar väl dock ha en buffert av data att behandla (som en kö), så förmodligen är det inget problem där.

Å andra sidan skulle man kunna tänka sig att begäran sammanstrålar i samma punkt någon gång och då blir ju samtidighet något oberoende av observatör.

Det hela kokar snarare ner till något likt det du beskriver i andra stycket. Det behöver dock inte vara just i datorn det sker, eller du kanske tänker inkluderande inbyggda system, men kanske inte hjälper. Du har ju att data serialiseras i kommunikationen på sina ställen och det kan även ske i de hisnande hastigheter de kan ha i fibernät (där det går så snabbt att man inte har någon egentlig dator utan bara elektronik som tidsmultiplexar det hela).
Citera
Igår, 20:06
  #6
Medlem
Citat:
Ursprungligen postat av prostetnic
Å andra sidan skulle man kunna tänka sig att begäran sammanstrålar i samma punkt någon gång och då blir ju samtidighet något oberoende av observatör.

Det hela kokar snarare ner till något likt det du beskriver i andra stycket. Det behöver dock inte vara just i datorn det sker, eller du kanske tänker inkluderande inbyggda system, men kanske inte hjälper. Du har ju att data serialiseras i kommunikationen på sina ställen och det kan även ske i de hisnande hastigheter de kan ha i fibernät (där det går så snabbt att man inte har någon egentlig dator utan bara elektronik som tidsmultiplexar det hela).
Ja det har du nog rätt i. Sett från en tredje observatörs perspektiv, så kan nog två händelser ske samtidigt.
Citera
Igår, 20:34
  #7
Medlem
nerdnerds avatar
Citat:
Ursprungligen postat av Mondher
Om två personer fyller på sina mobilkontantkort exakt samtidigt och båda trycker på "Bekräfta" i samma ögonblick, varför kan inte bådas saldon uppdateras i exakt samma millisekund? (Om dom använder samma kod alltså)

Är det ett rent tekniskt problem, där systemet helt enkelt måste behandla en begäran i taget, hur snabbt det än går? Eller handlar det om något mer grundläggande, att två separata händelser faktiskt aldrig kan inträffa 100 % samtidigt, utan att den ena alltid, om så bara med en miljarddels sekund, sker före den andra?

Med andra ord: finns det egentligen någon verklig samtidighet i digitala system, eller är "samtidigt" bara en illusion eftersom allt sker så ofattbart snabbt?
Inga digitala system använder oändligt många decimaler, av uppenbara skäl, utan har t ex max 6 decimaler på sina timestamps, dvs miljondelssekunder. Vilket innebär att två olika konton KAN uppdateras exakt samtidigt med den noggrannhet som systemet kan dokumentera, även om det är lite ovanligt.
Citera
Igår, 23:23
  #8
Medlem
Queutards avatar
Om systemen är distribuerade kan de inträffa samtidigt. Annars uppstår kö senast vid databasskrivningen.
Citera
Idag, 01:26
  #9
Moderator
Neksnors avatar
Det kan hända om man hade otur när man kodade.
Se https://en.wikipedia.org/wiki/Concurrent_computing för lite förklaring.

Jämför med kylskåpet hemma. Du är sugen på kaffe latte, tittar i kylskåpet och ser att det finns mjölk. Du plockar fram bönor och samtidigt dricker din fru/man/gimp upp all mjölk, så när det är dags att börja jobba med mjölken är den slut, trots att du visste att den fanns där. En lösning på det problemet är att sätta en låsring för hånglås på kylskåpet så att den som börjar planera matlagning kan låsa kylskåpet tillfälligt för att hindra att någon annan ändrar dess tillstånd. Då blir din rutin istället kontrollera om mjölk finns, lås kylskåpet med ditt egna lås, mal bönor mm, lås upp kylskåpet och ta mjölk, ställ tillbaka eventuell kvarvarande mjölk. Den som under tiden vill dricka mjölk tvingas vänta vid kylskåpet tills du är klar.
Citera
Idag, 03:46
  #10
Medlem
Citat:
Ursprungligen postat av nerdnerd
Inga digitala system använder oändligt många decimaler, av uppenbara skäl, utan har t ex max 6 decimaler på sina timestamps, dvs miljondelssekunder. Vilket innebär att två olika konton KAN uppdateras exakt samtidigt med den noggrannhet som systemet kan dokumentera, även om det är lite ovanligt.

det händer inte dock. så det är inte ovanligt eftersom man programmerar så att det inte kan inträffa.
Citera
Idag, 05:11
  #11
Medlem
Pungsvings avatar
Nej. De kan vara inom en felmarginal som är acceptabel.
Citera
Idag, 05:40
  #12
Medlem
auto-fellatios avatar
Parallella processer på multicore cpu så borde det väl i princip kunna hända i exakt samma cykel.

Likadant om det finns flera instanser av systemet och varje tryckning träffar 2 olika system så borde det väl kunna vara samtidigt också.

Dock vill väl det här systemet ha nån slags gemensam databas och där lär det ju bli nån slags kö sakerna sker i eftersom det är en instans i slutändan. Men är det klustrat och de initiala tankingarna kan leva parallellt innan hela klustret vet om precis allt så kan det väl hela det flödet ske samtidigt i samtidiga cykler och samtidig bekräftelse. (just två tankningar kolliderar ju inte med varandra och ställer till problem)

Så tänker jag, kanske missat någon detalj, vem vet

Edit: ändrar mig nog när det gäller samma maskin även om det är parallellt och multicore
Citera
  • 1
  • 2

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in