Рачунарска меморија

С Википедије, слободне енциклопедије

У рачунарству, меморија се односи на физичке уређаје који се користе за складиштење програма (низови инструкција) или података (нпр. информације о стању програма) привремено или трајно за употребу у рачунару или другом дигиталном електронском уређају. Термин “примарна меморија“ се користи за информацију у физичким системима који раде на високим брзинама (нпр. RAM), као разлика од секундарне меморије, који су физички уређаји за складиштење програма и података који имају спорији приступ, али имају већи меморијски капацитет. Примарна меморија ускладиштена на секундарној меморији се зове „виртуелна меморија“.

Термин „меморија“, са значењем примарна меморија је често повезана са адресабилном полупроводничком меморијом, тачније интегрисаним колима који се састоје из транзистора на бази силикона. Они се користе као примарна меморија, али имају и друге сврхе у рачунарима и другим електронским уређајима. Постоје две главне врсте полупроводничке меморије: постојане и непостојане. Примери постојане меморије су флеш меморија (некад се користи као секундарна а некад као примарна рачунарска меморија) и РОМ/ПРОМ/ЕПРОМ/ЕЕПРОМ меморија (користи се за фирмвер, нпр. за покретаче оперативних система). Пример за непостојане меморије су примарне меморије (углавном ДРАМ), и брза кеш меморија централне процесорске јединице (углавном статички РАМ односно СРАМ, који је брз али користи пуно енергије и има мањи меморијски капацитет по јединици површине од ДРАМ меморије.

Већина полупроводничке меморије је организована у меморијске ћелије или бистабилне флип-флопове, од којих сваки садржи један бит (0 или 1). Организација флеш меморије садржи и један бит по меморијској ћелији и више битова по ћелији (ова врста се зове ћелија на више нивоа, скраћено МЛЦ). Меморијске ћелије су груписане у речи фиксне дужине, на пример 1, 2, 4, 8, 16, 32, 64 или 128 бита. Свакој речи се може приступити бинарним адресама од Н бита, што омогућава складиштење 2 на Н речи у меморији. Следи да се процесорски регистри обично не сматрају за меморију, јер они складиште по једну реч и не садрже механизам адресирања. Термин „сториџ“ се често користи као назив за секундарну меморију типа трака, магнетних дискова и оптичких дискова (ЦД-РОМ и DVD-РОМ).

Историја[уреди | уреди извор]

Позадина дела рачунара ЕНИАЦ, где се виде вакуумске цеви

Током раних 1940-их, меморијска технологија је углавном имала капацитет од неколико бајтова. Први електрични програмабилни дигитални рачунар, ЕНИАЦ, је могао да изводи просте рачунице које би се састајале из 20-децималних цифара који су држани у вакуумским цевима.

Следећи битан напредак у рачунарској меморији је дошао са меморијом акустичне линије за кашњење, коју је развио Ј. Преспер Екерт раних 1940-их. Кроз стаклену цев испуњену живом са кварцним кристалом на сваком крају, линије за кашњење су могле да складиште битове које би се задржавале унутар цеви и пролазиле кроз живу у виду звучних таласа. Меморија акустичне линије за кашњење би морала да се ограничи на неколико стотина хиљада битова како би остала ефикасна.

Алтернативе линији са закашњењем, Вилијамсова цев и Селекциона цев, измишљене су 1946 и обе су користиле зраке електрона у стакленим цевима као начин складиштења. Фред Вилијамс је изумео Вилијамсову цев која је прва РАМ меморија. Фредова цев је већег капацитета од Селекционе цеви (ова је била ограничена на 256 бита, док је Вилијамсова могла да ускладишти хиљаде) и била је јефтинија. Вилијамсова цев је, додуше, била веома осетљива на дешавања у окружењу.

1940-их су научници покушавали да пронађу постојану меморију. Џеј Форестер, Џен А. Рајхмен и Ен Венг су развили меморију са магнетним језгром, која је могла да се позове и након губитка струје. Меморија са магнетним језгром је био доминантан облик меморије до појаве транзисторске меморије крајем 1960-их.

Развоји у технологији и економији омогућили су појаву Рачунара са веома великом меморијом (ВЛМ).

Термин меморија се генерално односи на RAM када се говори о рачунарима.

Непостојана меморија[уреди | уреди извор]

Непостојана меморија је она меморија којој је неопходна струја да задржи ускладиштене информације. Већина модерних полупроводничких непостојаних меморија је или статички РАМ (СРАМ) или динамички рам (ДРАМ). СРАМ задржава садржај све док има струје и има једноставан интерфејс, али му је потребно шест транзистора по биту. Динамички РАМ има компликованији интерфејс и контроле, и потребни су му чести циклуси освежавања, како се ускладиштени подаци не би изгубили. Са друге стране, ДРАМ користи само један транзистор и кондензатор по биту, што му омогућава да има много већу густину и да, са више битова по чипу, буде јефтинији. СРАМ није погодан за системску меморију десктоп рачунара, где ДРАМ доминира, али се ипак користи као кеш тих меморија. СРАМ је чест у малим, наменским системима, којима обично треба десетине килобајта или мање. Нове технологије непостојаних меморија би требало да се такмиче или потпуно замене СРАМ и ДРАМ на тржишту, а у њих спадају З-РАМ, ТТРАМ, А-РАМ и ЕТА-РАМ.

Постојана меморија[уреди | уреди извор]

Постојана меморија је рачунарска меморија која може да садржи похрањену информацију и након што остане без струје. Примери постојане меморије су РОМ, флеш меморија, већина магнетних меморија (нпр. чврсти дискови, флопи дискови и магнетне траке), оптички дискови, и ране методе као што су папирна трака и бушена трака. Нове технологије су ФеРАМ, ЦБРАМ, ПРАМ, СОНОС, РРАМ, Рацетрацк меморија, НРАМ, Милипеде.

Управљање меморијом[уреди | уреди извор]

Добро управљање меморијом је услов да би рачунарски систем функционисао. Модерни оперативни системи имају сложене системе за исправно управљање меморијом. Ако немају, може доћи до проблема, лоших перформанси и у најгорем случају уништавање од стране вируса и осталих малвера. Скоро све што програмер ради захтева да раазмисли о квалитетном коришћењу меморије. Чак и складиштење једног броја у меморију захтева од програмера да специфира како меморија треба да га сачува.

Багови код управљања меморијом[уреди | уреди извор]

Неправилно управљање меморијом је чест узрок багова.

  • У аритметичком преливању, резлтат рачунице буде већи него што алоцирана меморија дозвољава. На пример, потписана 8-битни цели број дозвољава бројеве између -128 и +127. Ако је вредност те промењива 127, а инструкција је да се дода 1, рачунар неће моћи да постави вредност 128 на то место. У том случају ће се за вредност поставити -128 уместо 128, што је непожељно.
  • Цурење меморије се дешава када програм затражи меморију од оперативног система и не врати је када заврши операције над њом. Програм са овом особином ће захтевати све више меморије све док не пукне.
  • Грешка сегментације се дешава када програм покуша да приступи меморији којој нема дозволу за приступ. Обично ће оперативни систем угасити овакав програм.
  • Преливање бафера значи да програм пише податке на крај свог алоцираног простора и онда наставља да пише податке у део меморије који припада другим програмима. Последице могу да буду неправилно понашање програма, укључујући и грешке при приступу меморији, нетачне резултате или кршење системске безбедности, тако да је ово главни узрок многих софтверских рањивости и могу се искористити злонамерно.

Рани рачунарски системи[уреди | уреди извор]

У раним рачунарским системима, програми су давали место за писање меморије и податке за писање. Ово место је била физичка локација на меморијском хардверу. Споро рачунање тих рачунара није дозвољавало сложене системе за меморијско управљање који се користе данас. Такође, пошто су сви такви системи били намењени за појединачне задатке, софистицирани системи нису били тражени.

Овакав приступ је имао своје замке. Ако специфирано место није било тачно, онда би програм писао податке на неки други део програма. Резултат овакве грешке је непредвидив. У неким случајевима, нетачни подаци могу писати преко меморије коју користи оперативни систем.

Виртуална меморија[уреди | уреди извор]

Виртуална меморија је систем где целу физичку меморију контролише оперативни систем. Када је програму потребна меморија, тада је затражи од оперативног система. Оперативни систем онда бира на коју физичку адресу ће поставити меморију.

Овакав приступ има више предности. Програмери више не морају да брину о томе где је меморија физички похрањена, или да ли корисников рачунар има довољно меморије. Ово такође допушта да се користи више врста меморије. На пример, један део меморије се може чувати на РАМ чиповима, а остатак на чврстом диску. Ово драстично повећава количину меморије која је на располагању програмима. Оперативни систем ће поставити меморију која се активно користи у РАМ, који је доста бржи од чврстих дискова. Када количина РАМ-а није довољна да раде сви програми неометано, може се десити да се више времена потроши на померање меморије са РАМ-а на диск и натраг него што се потроши на извршавање задатака. Ово се зове млаћење.

Заштићена меморија[уреди | уреди извор]

Заштићена меморија је систем у коме је сваком програму додељен тачан део меморије за коришћење и програму није дозвољено да користи меморију ван тог дела. Коришћење заштићене меморије знатно побољшава сигурност и поузданост рачунарског система.

Без заштићене меморије, могуће је да баг у једном програму промени меморију коришћену у другом програму. Ово ће проузроковати да тај други програм ради са исквареном меморијом и са непредвиђеним резултатима. Ако је меморија оперативног система искварена, можда ће се цео рачунарски систем зауставити и поново започети. Понекад програми намерно мењају меморију коју користе други програми. Ово раде вируси и остали малвер како би ставио рачунар под своје.

Заштићена меморија додељује програмима јединствене области меморије. Ако оперативни систем открије да је програм покушао да промени меморију која му не припада, програм се гаси. На овај начин, само нападајући програм се гаси, а остали програми нису погођени.

Системи са заштићеном меморијом скоро увек такође садрже виртуелну меморију.

Литература[уреди | уреди извор]

  • Miller, Stephen W. (1977), Memory and Storage Technology, Montvale.: AFIPS Press 
  • Memory and Storage Technology, Alexandria, Virginia.: Time Life Books, 1988 

Спољашње везе[уреди | уреди извор]