Поделена меморија

Од Википедија — слободната енциклопедија
Прејди на: содржини, барај

Поделена Меморија[уреди]

Поделената меморија е меморија која што може истовремено да биде пристапена од страна на повеќе програми, со цел да обезбеди комуникација меѓу нив или да ги избегне непотребни копии. Во зависност од контекстот, програмите можат да работат на еден процесор или на повеќе одвоени процесори. Користењето меморија внатре во секој програм, како на пример помеѓу своите делови, генерално не се смета како поделена меморија.

Во Хардвер[уреди]

Во хардверот на компјутерот, поделена меморија се однесува на обичен голем блок на меморија со случаен пристап која може да се пристапува од неколку различни централно процеситачки единици, во повеќе-процесорски компјутерски системи. Поделен мемориски систем е релативно лесно да се испрогрмира се додека секој од процесорите делат иста листа на податоци и комуникацијата помеѓу процесорите може да биде брза исто како меморискиот пристап на иста локација.

Прашањето за поделените мемориски системи е тоа што повеќето процесори имаат потреба од брз пристап до мемроијата и затоа постои ќеш меморијата, која има две компликации:

• Процесор-Меморија врската станува тесно грло. Компјутерите со Поделена меморија не можат да подредуваат многу добро. Повеќето од нив имаат десет или неколку процесори. • Кеш кохерентност: Кога и еден ќеш да биде надграден со информација што ќе се користи од друг процесор, промената мора да се пренесе и на останатите процесори, инаку процесорите ќе работат со некохерентни податоци. Таквите кохерентни протоколи можат, кога работат добро, да обезбедат екстремно високи перформанси на пристап, за делење информации помеѓу процесорите. Од друга страна, некогаш и тие се преоптоваруваат и стануваат тесно грло на перформансите. Алтернативите на поделена меморија се дистрибуирана меморија и дистрибуирана поделена меморија, секоја од нив има сличен сет на проблеми.

Во Софтверот[уреди]

• Начин на интер-процесес комуникација (IPC), односно начинот на размена на податоци помеѓу програми кои работат во исто време. Едни процеси ќе креираат место во RAM –от до кое другите можат да пристапат, или • Начин на конзервирање на мемориски простор со директен пристап во кој обично ќе се наоѓаат копии на дел од податоците на еден пример, со помош на виртуелно мемориско мапирање или со експлицитна подршка на програмата за која што станува збор. Ова најчесто се користи за поделени библиотеки и за XIP.

Откако два процеси можат да пристапат до поделена меморија како до регулатна работна меморија, ова е многу брз начин на комуникација. Од друга страна, е помалку моќно, како на пример, процесите кои комуницираат мораат да работат на иста машина, и мора да се превземе нешто за да се избегне проблемот на процесите кои работат на различни CPU и основната архитектура не им е ќеш кохерентна

IPC од поделената меморија се користи на пример за пренос на слики помеѓу апликацијата и X сервер на Unix систем, или внатре во IStream вратен од CoMarshallnterThreadInterfaceLnStream во COM библиотеките на Windows.

POSIX нуди стандардизирана APL за користење на поделена меморија, POSIX Поделена Меморија. Оваа функција ја користи shm_open од sys / nman.h. Unix 5 системот обезбедува APL за поделена меморија исто така. Оваа користи shmget од sys/shm.h.

BSD ситемите овозможуваат “анонимна мапирана меморија” која може да се користи од неколку процеси.

Последните 2.6 Linux јадра почнаа да нудат /dev/shm како поделена меморија во форма на RAM диск, поточно како светски запишуван директориум кој е зачуван во мемроија. /dev/shm подршката е незадолжителна во јадрената конфигурациска датотека. Вклучен е задолжително во Fedora и Ubuntu дистрибуциите.

Надворешни Линкови[уреди]