Управљање меморијом — разлика између измена

Садржај обрисан Садржај додат
Нема описа измене
Нема описа измене
Ред 20:
 
====Buddy блокови====
У овом систему, меморијa се алоцира у неколико складиштења(pool) меморија уместо само једног, где сваки pool представља блокове меморије одређене величине {{math|2<sup>''n''</sup>}}. Сви блокови одређене величине се чувају у сортираној [[linked list|повезаној листи]] или [[Стабло (структура података)| стаблу]] и сви нови блокови који се формирају током алокације су додати у своје pool меморије за каснију употребу. Ако се тражи мањи број него што је на располагању, најмања доступна величина је изабрана и преполовљена. Један од насталих половина је изабранљ, и процес се понавља док се захтев не испуни. Када се блок алоцира, алокатор ће почети са најмањим довољно великим блоком да би се избегло непотребно разбијање блокова. Када је блок ослобођен, он је упоређен са својим buddy блоком. Ако су обоје слободни, они се комбинују и ставњају у следећу buddy-блок листу највећи величине.
 
==Системи са виртуелном меморијом==
[[Виртуелна меморија]] је метод раздвајања организације меморије од физичког хардвера. Апликације оперишу са меморијом преко ''виртуелних адреса''. Сваки пут кад се врши покушај приступа меморисаним подацима, виртуелна меморија наложи да се виртуелна адреса преведе у ''физичку адресу''. На овај начин додавање виртуелне меморије омогућава прецизнију контролу над меморијским системима и методама приступа.
 
===Заштита===
У системима виртуелне меморије оперативни систем ограничава како процес може да приступи меморији. Ова функција може да се користи да забрани процесу да чита или уписује у меморију која није алоцирана на њему, тиме спречавајући да се злонамерни или неисправни код у једном програму уплиће у рад другог.
 
===Дељење===
Иако је алоцирана меморија за специфичне процесе нормално изолована, процеси понекад морају да буду у стању да размењују тј. деле информације. Дељена меморија је једна од најбржих техника за [[Међупроцесна комуникација|међупроцесне комуникације]].
 
===Физичка организација===
Меморија се обично класификује по стопи приступа главној меморији и секундарној меморији. Системи за управљање меморијом управљају премештањем информација између ова два нивоа меморије.
 
==Такође погледати==
{{portal|Computer science}}
{{div col|colwidth=30em}}
* [[Automatic memory allocation]]
* [[Dynamic array]]
* [[Garbage collection (computer science)|Garbage collection]]
* [[Memory pool]]
* [[Region-based memory management]]
* [[Memory management (operating systems)]]
* [[Slab allocation]]
* [[Stack-based memory allocation]]
* [[Demand paging]]
* [[Memory management unit]] (MMU)
* [[Page table]]
* [[Paging]]
* [[Показивач (програмирање)|Показивачи]]
* [[Виртуелна меморија]]
{{div col end}}
 
==Белешке==
{{reflist}}
 
==Додатно==
* [http://www.cs.northwestern.edu/~pdinda/icsclass/doc/dsa.pdf "Dynamic Storage Allocation: A Survey and Critical Review"], Одељење за компијутерске науке [[University of Texas at Austin|Тексашки Универзитет у Аустину]]
 
==Спољашње везе==
* [http://memory-mgr.sourceforge.net/ "Generic Memory Manager" C++ library]
* [http://code.google.com/p/arena-memory-allocation/downloads/list Sample bit-mapped arena memory allocator in C]
* [http://www.gii.upv.es/tlsf/ TLSF: a constant time allocator for real-time systems]
* [https://users.cs.jmu.edu/bernstdh/web/common/lectures/slides_cpp_dynamic-memory.php Slides on Dynamic memory allocation]
* [http://www.flounder.com/inside_storage_allocation.htm Inside A Storage Allocator]
* [http://www.memorymanagement.org/ The Memory Management Reference]
:* [http://www.memorymanagement.org/articles/alloc.html The Memory Management Reference, Beginner's Guide Allocation]
* [http://linux-mm.org/ Linux Memory Management]
* [http://www.enderunix.org/docs/memory.pdf Memory Management For System Programmers]
* [http://www.puredevsoftware.com/ VMem - general malloc/free replacement. Fast thread safe C++ allocator]
 
== Референце ==