Svaki put kad pokrenete neki program, očekujete da će izračunati točan rezultat i da neće iznenada prestati raditi. U stvarnosti se često susrećemo s neočekivanim greškama koje mogu nastati iz raznih razloga – od fizičkih nedostataka hardvera do složenosti samog koda. Ovaj članak će na jednostavan način objasniti najčešće uzroke grešaka u programima i pokazati kako se one mogu pojaviti iako se čini da je sve pravilno napisano.
Sadržaj...
Fizički uzroci grešaka
Računalo nije samo skup matematičkih operacija; ono je i fizički uređaj sastavljen od procesora, memorije, diskova i drugih komponenti. Svaka od tih komponenti može podlijegati promjenama koje utječu na rad programa.
- Temperatura i napajanje – Kada se procesor pregrije, njegov radni takt se može smanjiti, što mijenja redoslijed izvršavanja instrukcija i može dovesti do nepredvidivih rezultata.
- Električni šum – Kratkotrajni impulsi u memoriji mogu promijeniti pohranjenu vrijednost, pa program dobije pogrešan ulaz.
- Mehanički kvarovi – Diskovi s pokretnim dijelovima mogu imati greške pri čitanju podataka, što uzrokuje neispravne informacije u programu.
Zbog ovih fizičkih čimbenika, dva pokretanja istog programa mogu se razlikovati po vremenu izvršavanja i po redoslijedu pristupa podacima.
Utjecaj operativnog sustava i raspoređivanja zadataka
Operativni sustav upravlja svim aktivnostima na računalu i odlučuje koji će se zadatak izvršavati u kojem trenutku. Taj proces raspoređivanja nije fiksan – ovisi o opterećenju sustava, prioritetima i dostupnim resursima.
Kada dva dijela programa istovremeno traže isti resurs, poput memorije ili datoteke, redoslijed kojim im se pristupa može varirati od pokretanja do pokretanja. To može uzrokovati situacije u kojima se jedna varijabla ažurira prije druge, a ponekad i obrnuto, što dovodi do neočekivanih grešaka.
Problemi uzrokovani paralelnim izvođenjem
Modern




