Računarska memorija
<s>U računarstvu, memorija se odnosi na fizičke uređaje koji se koriste za skladištenje programa (nizovi instrukza informaciju u fizičkim sistemima koji rade na visokim brzinama (npr. RAM), kao razlika od sekundarne memorije, koji su fizički uređaji za skladištenje programa i podataka koji imaju sporiji pristup, ali imaju veći memorijski kapacitet.</s><s>Primarna memorija uskladištena na sekundarnoj memoriji se zove „virtuelna memorija“.</s>

<s>Termin „memorija“, sa značenjem primarna memorija je često povezana sa adresabilnom poluprovodničkom memorijom, tačnije integrisanim kolima koji se sastoje iz tranzistora na bazi silikona.</s><s>Oni se koriste kao primarna memorija, ali imaju i druge svrhe u računarima i drugim elektronskim uređajima.</s><s>Postoje dve glavne vrste poluprovodničke memorije: postojane i nepostojane.</s><s>Primeri postojane memorije su fleš memorija (nekad se koristi kao sekundarna a nekad kao primarna računarska memorija) i ROM/PROM/EPROM/EEPROM memorija (koristi se za firmver, npr. za pokretače operativnih sistema).</s><s>Primer za nepostojane memorije su primarne memorije (uglavnom DRAM), i brza CPJ keš memorija (uglavnom statički RAM odnosno SRAM, koji je brz ali koristi puno energije i ima manji memorijski kapacitet po jedinici površine od DRAM memorije.</s>

<s>Većina poluprovodničke memorije je organizovana u memorijske ćelije ili bistabilne flip-flopove, od kojih svaki sadrži jedan bit (0 ili 1).</s><s>Organizacija fleš memorije sadrži i jedan bit po memorijskoj ćeliji i više bitova po ćeliji (ova vrsta se zove ćelija na više nivoa, skraćeno MLC).</s><s>Memorijske ćelije su grupisane u reči fiksne dužine, na primer 1, 2, 4, 8, 16, 32, 64 ili 128 bita.</s><s>Svakoj reči se može pristupiti binarnim adresama od N bita, što omogućava skladištenje 2 na N reči u memoriji.</s><s>Sledi da se procesorski registri obično ne smatraju za memoriju, jer oni skladište po jednu reč i ne sadrže mehanizam adresiranja.</s><s>Termin „storidž“ se često koristi kao naziv za sekundarnu memoriju tipa traka, magnetnih diskova i optičkih diskova (CD-ROM i DVD-ROM).</s>

<s>Istorija</s>

<s>Tokom ranih 1940-ih, memorijska tehnologija je uglavnom imala kapacitet od nekoliko bajtova.</s><s>Prvi električni programabilni digitalni računar, ENIAC, je mogao da izvodi proste računice koje bi se sastajale iz 20-decimalnih cifara koji su držani u vakumskim cevima.</s><s>Sledeći bitan napredak u računarskoj memoriji je došao sa memorijom akustične linije za kašnjenje, koju je razvio J. Presper Ekert ranih 1940ih.</s><s>Kroz staklenu cev ispunjenu živom sa kvarcnim kristalom na svakom kraju, linije za kašnjenje su mogle da skladište bitove koje bi se zadržavale unutar cevi i prolazile kroz živu u vidu zvučnih talasa.</s><s>Memorija akustične linije za kašnjenje bi morala da se ograniči na nekoliko stotina hiljada bitova kako bi ostala efikasna.</s>

<s>Alternative liniji sa zakašnjenjem, Vilijamsova cev i Selekciona cev, izmišljene su 1946 i obe su koristile zrake elektrona u staklenim cevima kao način skladištenja.</s><s>Fred Vilijams je izumeo Vilijamsovu cev koja je prva RAM memorija.</s><s>Fredova cev je većeg kapaciteta od Selekcione cevi (ova je bila ograničena na 256 bita, dok je Vilijamsova mogla da uskladišti hiljade) i bila je jeftinija.</s><s>Vilijamsova cev je, doduše, bila veoma osetljiva na dešavanja u okruženju.</s>

<s>1940ih su naučnici pokušavali da pronađu postojanu memoriju.</s><s>DŽej Forester, DŽen A. Rajhmen i En Veng su razvili memoriju sa magnetnim jezgrom, koja je mogla da se pozove i nakon gubitka struje.</s><s>Memorija sa magnetnim jezgrom je bio dominantan oblik memorije do pojave tranzistorske memorije krajem 1960ih.</s>

<s>Razvoji u tehnologiji i ekonomiji omogućili su pojavu tzv. Računara sa veoma velikom memorijom (VLM).</s>

<s>Termin memorija se generalno odnosi na RAM kada se govori o računarima.</s>

<s>Nepostojana memorija 
Nepostojana memorija je ona memorija kojoj je neophodna struja da zadrži uskladištene informacije.</s><s>Većina modernih poluprovodničkih nepostojanih memorija je ili statički RAM (SRAM) ili dinamički ram (DRAM).</s><s>SRAM zadržava sadržaj sve dok ima struje i ima jednostavan interfejs, ali mu je potrebno šest tranzistora po bitu.</s><s>Dinamički RAM ima komplikovaniji interfejs i kontrole, i potrebni su mu česti ciklusi osvežavanja, kako se uskladišteni podaci ne bi izgubili.</s><s>Sa druge strane, DRAM koristi samo jedan tranzistor i kondenzator po bitu, što mu omogućava da ima mnogo veću gustinu i da, sa više bitova po čipu, bude jeftiniji.</s><s>SRAM nije pogodan za sistemsku memoriju desktop računara, gde DRAM dominira, ali se ipak koristi kao keš tih memorija.</s><s>SRAM je čest u malim, namenskim sistemima, kojima obično treba desetine kilobajta ili manje.</s><s>Nove tehnologije nepostojanih memorija bi trebalo da se takmiče ili potpuno zamene SRAM i DRAM na tržištu, a u njih spadaju Z-RAM, TTRAM, A-RAM i ETA-RAM.</s>

<s>Postojana memorija 
Postojana memorija je računarska memorija koja može da sadrži pohranjenu informaciju i nakon što ostane bez struje.</s><s>Primeri postojane memorije su ROM, fleš memorija, većina magnetnih memorija (npr. čvrsti diskovi, flopi diskovi i magnetne trake), optički diskovi, i rane metode kao što su papirna traka i bušena traka.</s><s>Nove tehnologije su FeRAM, CBRAM, PRAM, SONOS, RRAM, Racetrack memorija, NRAM, Milipede.</s>

<s>Upravljanje memorijom 
Dobro upravljanje memorijom je uslov da bi računarski sistem funkcionisao.</s><s>Moderni operativni sistemi imaju složene sisteme za ispravno upravljanje memorijom.</s><s>Ako nemaju, može doći do problema, loših performansi i u najgorem slučaju uništavanje od strane virusa i ostalih malvera.</s><s>Skoro sve što programer radi zahteva da raazmisli o kvalitetnom korišćenju memorije.</s><s>Čak i skladištenje jednog broja u memoriju zahteva od programera da specifira kako memorija treba da ga sačuva.</s>

<s>Bagovi kod upravljanja memorijom 
Nepravilno upravljanje memorijom je čest uzrok bagova.</s>

<s>U aritmetičkom prelivanju, rezltat računice bude veći nego što alocirana memorija dozvoljava.</s><s>Na primer, potpisana 8-bitni celi broj dozvoljava brojeve između -128 i +127.</s><s>Ako je vrednost te promenjiva 127, a instrukcija je da se doda 1, računar neće moći da postavi vrednost 128 na to mesto.</s><s>U tom slučaju će se za vrednost postaviti -128 umesto 128, što je nepoželjno.</s><s>Curenje memorije se dešava kada program zatraži memoriju od operativnog sistema i ne vrati je kada završi operacije nad njom.</s><s>Program sa ovom osobinom će zahtevati sve više memorije sve dok ne pukne.</s><s>Greška segmentacije se dešava kada program pokuša da pristupi memoriji kojoj nema dozvolu za pristup.</s><s>Obično će operativni sistem ugasiti ovakav program.</s><s>Prelivanje bafera znači da program piše podatke na kraj svog alociranog prostora i onda nastavlja da piše podatke u deo memorije koji pripada drugim programima.</s><s>Posledice mogu da budu nepravilno ponašanje programa, uključujući i greške pri pristupu memoriji, netačne rezultate ili kršenje sistemske bezbednosti, tako da je ovo glavni uzrok mnogih softverskih ranjivosti i mogu se iskoristiti zlonamerno.</s>

<s>Rani računarski sistemi 
U ranim računarskim sistemima, programi su davali mesto za pisanje memorije i podatke za pisanje.</s><s>Ovo mesto je bila fizička lokacija na memorijskom hardveru.</s><s>Sporo računanje tih računara nije dozvoljavalo složene sisteme za memorijsko upravljanje koji se koriste danas.</s><s>Takođe, pošto su svi takvi sistemi bili namenjeni za pojedinačne zadatke, sofisticirani sistemi nisu bili traženi.</s><s>Ovakav pristup je imao svoje zamke.</s><s>Ako specifirano mesto nije bilo tačno, onda bi program pisao podatke na neki drugi deo programa.</s><s>Rezultat ovakve greške je nepredvidiv.</s><s>U nekim slučajevima, netačni podaci mogu pisati preko memorije koju koristi operativni sistem.</s>

<s>Virtualna memorija 
Virtualna memorija je sistem gde celu fizičku memoriju kontroliše operativni sistem.</s><s>Kada je programu potrebna memorija, tada je zatraži od operativnog sistema.</s><s>Operativni sistem onda bira na koju fizičku adresu će postaviti memoriju.</s>

<s>Ovakav pristup ima više prednosti.</s><s>Programeri više ne moraju da brinu o tome gde je memorija fizički pohranjena, ili da li korisnikov računar ima dovoljno memorije.</s><s>Ovo takođe dopušta da se koristi više vrsta memorije.</s><s>Na primer, jedan deo memorije se može čuvati na RAM čipovima, a ostatak na čvrstom disku.</s><s>Ovo drastično povećava količinu memorije koja je na raspolaganju programima.</s><s>Operativni sistem će postaviti memoriju koja se aktivno koristi u RAM, koji je dosta brži od čvrstih diskova.</s><s>Kada količina RAM-a nije dovoljna da rade svi programi neometano, može se desiti da se više vremena potroši na pomeranje memorije sa RAM-a na disk i natrag nego što se potroši na izvršavanje zadataka.</s><s>Ovo se zove mlaćenje.</s>

<s>Zaštićena memorija 
Zaštićena memorija je sistem u kome je svakom programu dodeljen tačan deo memorije za korišćenje i programu nije dozvoljeno da koristi memoriju van tog dela.</s><s>Korišćenje zaštićene memorije znatno poboljšava sigurnost i pouzdanost računarskog sistema.</s>

<s>Bez zaštićene memorije, moguće je da bag u jednom programu promeni memoriju korišćenu u drugom programu.</s><s>Ovo će prouzrokovati da taj drugi program radi sa iskvarenom memorijom i sa nepredviđenim rezultatima.</s><s>Ako je memorija operativnog sistema iskvarena, možda će se ceo računarski sistem zaustaviti i ponovo započeti.</s><s>Ponekad programi namerno menjaju memoriju koju koriste drugi programi.</s><s>Ovo rade virusi i ostali malver kako bi stavio računar pod svoje.</s>

<s>Zaštićena memorija dodeljuje programima jedinstvene oblasti memorije.</s><s>Ako operativni sistem otkrije da je program pokušao da promeni memoriju koja mu ne pripada, program se gasi.</s><s>Na ovaj način, samo napadajući program se gasi, a ostali programi nisu pogođeni.</s><s>Sistemi sa zaštićenom memorijom skoro uvek takođe sadrže virtuelnu memoriju.</s>

<s>Literatura</s>

<s>Vanjske veze</s>

<s>How Computer Memory Works</s>

<s>Računarska memorija</s>

