Soneran amatöörit tekivät alkeellisen virheen ohjelmoinnissa, kun he tekivät kahteen varajärjestelmäänkin saman mokan kuin varsinaiseen järjestelmään. Eilinen Soneran viestiliikenne jumittui sen vuoksi kun pankeissa maksuliikenne oli sekaisin ja ihmiset alkoivat yhtä aikaan soitella pankkeihin kun palkkarahoja yms. rahoja ei ollutkaan tullut tileillä
Yleensä matkapuhelinliikenteen ohjelmoinnissa käytetään C-kieltä ja nimenomaan ns. pino-ohjelmointia. Pinon käsittelyssä tarvitaan kahta osoitinta; toinen osoittaa pinon alkukohtaa, pohjaa ja toinen pinon huippua. Ohjelmassa käytetään kolmea staattista osoitinta top, bottom ja max_stack. Osoittimista ensimmäinen osoittaa pinon huippua, toinen pinon pohjaa ja kolmas paikkaa, jonka yli pino ei saa kasvaa. Lisäksi ohjelmassa on määritelty kaksi vakiota OUTSTACK ja STACKSIZE. Vakiota OUTSTACK käytetään osoittamaan, että on tapahtunut pinon yli- tai alivuoto, ja STACKSIZE, jolla määritellään pinon maksimikoko. Funktio push palauttaa arvonaan pinoon pistetyn kokonaisluvun tai arvon OUTSTACK, jos on tapahtunut pinon ylivuoto. Funktio pop palauttaa arvonaan alkion pinosta tai pinon alivuototilanteessa vakion OUTSTACK.
Pääohjelmassa varataan tila pinolle standardifunktiolla malloc. Paluuosoitin muunnetaan osoittimeksi kokonaislukuun muunnoksella (int*). Pääohjelmassa luetaan kokonaislukuja, jotka pinotaan pinoon ja tulostetaan pinon kokonaisluvut huipulta pohjaan. Soneran amatööriohjemoijat varasivat liian vähän tilaa pinolle, jossa on soitetut puhelut ja nettiliikenne odottavat saavansa yhteyden vastaanottajaan, max_stack = bottom STACKSIZE; elikkä allaolevassa esimerkkiohjelmassa pinossa olevien "puhelujen" määrä max_stack ylitti 100000 puhelun määrän (STACKSIZE=100000), jos STACKSIZE ylitetään ohjelma menee jumiin ja puhelut ei yhdisty. Soneran amatöörit eivät osaanneet varautua siihen että joskus puhelujen määrä voi olla yhtään aikaa esim. tämä kuviteltu 100000...ja he tekivät saman virheen myös varajärjestelmissä. Ja kuulemma Sonera ei vieläkään tiedä missä on vika, vaikka tälläinen tavallinen persu pystyy kahvipöydässä istumalla ja pullaa syodessä päättelemään missä oli vika.
Esimerkki ohjelma:
#include
#include
#define OUTSTACK 2147483647
#define STACKSIZE 1000000
int *top, *bottom, *max_stack;
int push( int item )
{
if (top < max_stac)
return *top = item;
else
{
printf(”Pinon ylivuoto\n”);
return OUSTACK;
}
}
int pop( void )
{
if (top > bottom)
return *--top;
else
{
printf(”Pinon alivuoto\n”);
return OUTSTACK;
}
}
int main(void)
{
int luku, ok;
bottom = top = (int *) malloc(STACKSIZE*sizeof(int));
max_stack = bottom STACKSIZE;
while ( scanf(”%d”,&luku)==1 )
{
ok = push(luku);
if ( ok==OUTSTACK ) break;
}
while (top > bottom)
printf(”%d \n”, pop());
return 0;
}
Yleensä matkapuhelinliikenteen ohjelmoinnissa käytetään C-kieltä ja nimenomaan ns. pino-ohjelmointia. Pinon käsittelyssä tarvitaan kahta osoitinta; toinen osoittaa pinon alkukohtaa, pohjaa ja toinen pinon huippua. Ohjelmassa käytetään kolmea staattista osoitinta top, bottom ja max_stack. Osoittimista ensimmäinen osoittaa pinon huippua, toinen pinon pohjaa ja kolmas paikkaa, jonka yli pino ei saa kasvaa. Lisäksi ohjelmassa on määritelty kaksi vakiota OUTSTACK ja STACKSIZE. Vakiota OUTSTACK käytetään osoittamaan, että on tapahtunut pinon yli- tai alivuoto, ja STACKSIZE, jolla määritellään pinon maksimikoko. Funktio push palauttaa arvonaan pinoon pistetyn kokonaisluvun tai arvon OUTSTACK, jos on tapahtunut pinon ylivuoto. Funktio pop palauttaa arvonaan alkion pinosta tai pinon alivuototilanteessa vakion OUTSTACK.
Pääohjelmassa varataan tila pinolle standardifunktiolla malloc. Paluuosoitin muunnetaan osoittimeksi kokonaislukuun muunnoksella (int*). Pääohjelmassa luetaan kokonaislukuja, jotka pinotaan pinoon ja tulostetaan pinon kokonaisluvut huipulta pohjaan. Soneran amatööriohjemoijat varasivat liian vähän tilaa pinolle, jossa on soitetut puhelut ja nettiliikenne odottavat saavansa yhteyden vastaanottajaan, max_stack = bottom STACKSIZE; elikkä allaolevassa esimerkkiohjelmassa pinossa olevien "puhelujen" määrä max_stack ylitti 100000 puhelun määrän (STACKSIZE=100000), jos STACKSIZE ylitetään ohjelma menee jumiin ja puhelut ei yhdisty. Soneran amatöörit eivät osaanneet varautua siihen että joskus puhelujen määrä voi olla yhtään aikaa esim. tämä kuviteltu 100000...ja he tekivät saman virheen myös varajärjestelmissä. Ja kuulemma Sonera ei vieläkään tiedä missä on vika, vaikka tälläinen tavallinen persu pystyy kahvipöydässä istumalla ja pullaa syodessä päättelemään missä oli vika.
Esimerkki ohjelma:
#include
#include
#define OUTSTACK 2147483647
#define STACKSIZE 1000000
int *top, *bottom, *max_stack;
int push( int item )
{
if (top < max_stac)
return *top = item;
else
{
printf(”Pinon ylivuoto\n”);
return OUSTACK;
}
}
int pop( void )
{
if (top > bottom)
return *--top;
else
{
printf(”Pinon alivuoto\n”);
return OUTSTACK;
}
}
int main(void)
{
int luku, ok;
bottom = top = (int *) malloc(STACKSIZE*sizeof(int));
max_stack = bottom STACKSIZE;
while ( scanf(”%d”,&luku)==1 )
{
ok = push(luku);
if ( ok==OUTSTACK ) break;
}
while (top > bottom)
printf(”%d \n”, pop());
return 0;
}
Vastaukset 17
Vanhimmat
Niinniin-ainoastaan erittäin poikkeavassa VIKAtilanteessa systeemin signaalien määrä kumuloituu yli rajaarvojen. Pakkosyöttämällä vikatiloja ei muokkaa ohjelmaa, sumean logiikan systeemi muokkaantuu mutta samalla signaalien arvot muuntuu ja systeemistä tulee käyttökelvottomaksi. Perustilan signaalit vääristyvät ja signaalien osoitteet ei löydy
Niitä tunareita löytyy paikassa jos toinenkin
Aloituksesta päätellen täällä ei ole aivokapasiteetistä pulaa, joten:
https://www.youtube.com/watch?v=Opm-k_LrYQY
Niinniin-ainoastaan erittäin poikkeavassa VIKAtilanteessa systeemin signaalien määrä kumuloituu yli rajaarvojen. Pakkosyöttämällä vikatiloja ei muokkaa ohjelmaa, sumean logiikan systeemi muokkaantuu mutta samalla signaalien arvot muuntuu ja systeemistä tulee käyttökelvottomaksi. Perustilan signaalit vääristyvät ja signaalien osoitteet ei löydy
Niitä tunareita löytyy paikassa jos toinenkin
suuressa massassa nykykonfiguraatio tietokoneiden välisessä yhteyksissä aiheuttaa vikatilan osoittelu toiselle käyttöyksikölle vaikka informaatioliikenteen tarjoaja aiheuttaa poikkeama virtaan.
Tämä on käytännöllistä jos palvelutarjoaja tarvitsee omien häiriöiden poistamista verkossa olevan yksikön kautta ylläpitäkseen vääristynyttä informaatiovirtaa.
1001) 001000! 000!!! 111000
Ihme fscebookin CHF mpeg HTC Mbps
5 numeroa
Sonera pyysi anteeksi: Ohjelmistovirhe mykisti puhelimet
http://www.uusisuomi.fi/kotimaa/75693-sonera-pyysi-anteeksi-ohjelmistovirhe-mykisti-puhelimet
Sanoivat mitä niiden käskettiin sanoa ja uskoo ken uskoo. Vuosikymmenet digitaaliset verkot toimi hyvin ja nyt ne on lyhyen ajan sisään kaatuneet elisalahdella, dnalla ja soneralla.
Supo ja operaattorit tiputtivat vihollisten ja rikollisten valetukiasemia.
Supo: Muut valtiot salakuunnelleet matkapuhelimia Suomessa:
http://yle.fi/uutiset/supo_muut_valtiot_salakuunnelleet_matkapuhelimia_suomessa/7699031
Jos Soneralla on samanlainen diili NSA:n kanssa kuin Microsoftillakin?
http://www.digitoday.fi/tietoturva/2004/02/17/sonera-pahoitteli-echelon-nimivalintaa/20047633/66
On ollut jo ainakin viimeiset kymmenen vuotta, mutta ei se ole tämän ongelman syy. Luulen että nämä viimeaikaiset ongelmat on olleet jonkun (heh) vihulaisen harjoitteluja vain. Sitten kun aamulla herätessä kaikki kännykkäverkot on nurin, radio ei kuulu eikä tv näy ynnä edes nettiin emme pääse, voimmekin todeta että "poijjat, nythän me vastha kusessa olemmekin!"
Ja enkö minä ole kieltänyt että pinon päältä ei oteta.
http://www.digitoday.fi/data/2014/12/19/soneran-selitys-verkon-mykistymiselle-kylla-se-viela-testissa-toimi/201417454/66
Kyllä pinon päältä voi ottaa kun ei kurota liikaa. Niin on ennenkin tehty. Ja sitäpaitsi kyllä se eilen toimi ihan hyvin. Turvallistakin on. Ton johdon kun yhdzzzzzz
Joo...kyllä Sonera löysi helposti vian tietokoneohjelmastaan kun persu oli ensin antanut vihjeen että mikä oli ohjelmoinnissa vialla.
http://www.iltalehti.fi/uutiset/2014121918942172_uu.shtml
Noi vanhat kököt liukulukuihin, pinoihin ym. assembler-kamaan perustuvat typerät C-kieliset sössöt pitäisi kaikki kirjoittaa uusiksi.
Ne saisi kertaluokkaa luotettavammaksi siirtymällä nykyaikaiseen Delphi -ohjelmakehitysympäristöön.
Toimii niin Linux kuin Windows raudassakin. Eikä tarvii pinoista tai poneista huolehtia kenenkään, kun järjestelmä itse huolehtii.