Изменения

Перейти к: навигация, поиск

Работа с памятью

2388 байт добавлено, 05:16, 10 июля 2011
Новая страница: «Категория:С++ 2 семестр {{В разработке}} {{TODO|t=не надо писать сюда про единицу трансляции, т…»
[[Категория:С++ 2 семестр]]
{{В разработке}}
{{TODO|t=не надо писать сюда про единицу трансляции, точку входа и вообще выполнение проги {{---}} на это будет сделана отдельная страничка }}

==Определение==
При запуске программы, процессу выделяется адресное пространство размером <tex>4GB</tex> в 32-битных системах, и <tex>2^{64}B</tex> в 64-битных. Ясно, что оно не может полностью содержаться в физической памяти, поэтому представим, что эта память просто дана каждому процессу, неважно, где она находится. Важно помнить, что у каждого процесса свое адресное пространство, которое не пересекается с адресными пространствами других программ.
{{TODO|t=привязать сюда определение физической памяти }}

==Старт процесса==
При старте процесса, в адресное пространство помещается код исполняемой программы и код используемых в программе библиотек (например, Kernel.dll). Так же, в адресном пространстве будут храниться глобальные переменные программы.
{{TODO|t=налить воды }}

==Хранение адресного пространства==
Адресное пространство разбито на ''страницы'' объемом по <tex>4kB</tex>. Для каждой страницы в хранится ее адрес в физической памяти, либо указание, что эта страница пуста (в таком случае хранить саму страницу не надо - поэтому все адресные пространства помещаются в физической памяти).
{{TODO|t=запилить картинки в первый и третий абзацы, написать про swap}}
97
правок

Навигация