Конспект лекций доцента и. А. Волковой по курсу «системы программирования»




НазваниеКонспект лекций доцента и. А. Волковой по курсу «системы программирования»
страница16/20
Дата публикации28.06.2013
Размер0.69 Mb.
ТипКонспект
lit-yaz.ru > Информатика > Конспект
1   ...   12   13   14   15   16   17   18   19   20
^

Лекция 12. 30/04/2004.




Распределение памяти.



Всю память, выделяемую для лексем, можно поделить на локальную и глобальную, статическую и динамическую.

Память



-локальная -статическая

-глобальная -динамическая
^ Локальная память – область, которая выделяется в начале выполнения какого-либо фрагмента программы, после выхода из фрагмента она может быть освобождена.

Доступ к локальной области памяти запрещён за пределами этого блока.
^ Глобальная память – выделяется один раз и используется на протяжении всей программы. Доступ, как правило, может быть осуществлён из любого места программы.

(Пример исключения – спецификатор static – он скрывает доступ от других кусков программы, доступ ограничен файлами.)
^ Статическая память – размер известен ещё до компиляции. С ней связан некоторый относительный адрес.
Динамическая память – размер становится известен на выполнении результирующей программы. => Компилятор использует специальные фрагменты кода.

Динамическая память может выделяться пользователем (new, malloc) или компилятором, когда это необходимо.
Динамическая и статическая памяти могут быть как локальными, так и глобальными.



код



статические

данные



стек - квазистатические данные







- свободная динамическая память






куча (heap)



^

Явное выделение блоков



Явное выделение блоков фиксированного размера – вся свободная память делится на блоки одинакового размера. При запросе выделяется нужное количество блоков.

__________________

| | | | | | … … ….
Если память занимает блок, свободным становится следующий.

__________________

|///| |///|///| | … … ….

----->-->-------- - список занятых блоков

--------->------ - список свободных блоков
В процессе работы что-то выделяется, что-то освобождается. Свободные и занятые блоки объединяются в 2 разных списка.

Достоинства: простота.

Недостатки: какая-то часть памяти используется неэффективно в случае, если по размеру требуется меньше, чем размер блока.
^ Явное выделение блоков памяти переменного размера - другой метод.

_________________

| |///| |//////| |//| … ….
Может возникнуть проблема – не найдётся блока памяти требуемого размера.

Память ищется следующим образом: компилятор просматривает свободные блоки и выбирает первый блок памяти с размером >= требуемого. При этом блок делится на 2 части: занятую и свободную.

Если не находится подходящий блок, то происходит реорганизация кучи, чтобы впоследствии получить блок нужного размера.

Достоинства: эффективное использование памяти, место не тратится попусту.

Недостатки: дольше работает программа.

^

Неявное выделение блоков.



В программе нет явных запросов на память. Блоки могут быть и фиксированного, и переменного размера.
Структура блока:

  • Размер блока (если фиксированный, то этот пункт отсутствует).

  • Счётчик ссылок || (или) пометки.

  • Счётчик ссылок – некоторая переменная, подсчитывающая количество указателей в программе, ссылающихся на данную область памяти.



Пример:

p q











p:=q счётчик (1) ++

счётчик (2) - -

p q









Если счётчик = 0, то данная область свободна, если <>0, занята.







- появляется такая проблема, т.к. память может казаться занятой, если она свободна.


  • Использование пометок.

Пример “Сборщик мусора”.

Все блоки памяти помечаются как свободные. Выбирается указатель, который ссылается на тот или иной фрагмент памяти и определяет, занят ли он.
Отличия счётчика ссылок от пометок:

счётчики ссылок используются постоянно, пометки – запускаются через некоторое время или при обращении к поиску памяти.


  • Указатели на блоки.

  • Полезная память (занимаемая данными).


1   ...   12   13   14   15   16   17   18   19   20

Похожие:

Конспект лекций доцента и. А. Волковой по курсу «системы программирования» iconКонспект лекций по курсу «Объектно-ориентированное программирование»
Б. Страуструп. Язык программирования C++, 3-е изд./Пер с англ. – Спб.; М.: «Невский диалект» – «Издательство бином», 1999 г. – 991...

Конспект лекций доцента и. А. Волковой по курсу «системы программирования» iconКонспект лекций «Логистика. Конспект лекций»
Конспект лекций соответствует требованиям Государственного образовательного стандарта высшего профессионального образования

Конспект лекций доцента и. А. Волковой по курсу «системы программирования» iconВ. Г. Баула Введение в архитектуру ЭВМ и системы программирования
Мгу им. М. В. Ломоносова. По данному курсу существует достаточно обширная литература, посвящённая программированию на Ассемблере,...

Конспект лекций доцента и. А. Волковой по курсу «системы программирования» iconРабочая программа по курсу «основы программирования на с++»
Программа предназначена для обучения программирования на языке С++ учреждений начального профессионального образования для овладения...

Конспект лекций доцента и. А. Волковой по курсу «системы программирования» iconМетодические указания к курсовой работе по дисциплине " системы программирования " Киев -2002
Целью курсовой работы по дисциплине "Системы программирования" является закрепление теоретического материала и приобретение практических...

Конспект лекций доцента и. А. Волковой по курсу «системы программирования» iconРабочая программа по курсу «основы Программирования на языке ассемблер»
Программа предназначена для обучения основам программирования на языке низкого уровня Ассемблере учащихся средних школ, учреждений...

Конспект лекций доцента и. А. Волковой по курсу «системы программирования» iconСистемы сбора информации на железнодорожном транспорте хабаровск
Конспект лекций предназначен для студентов дневной формы обучения специальности 0719 ²Информационные системы на ж д транспорте²,...

Конспект лекций доцента и. А. Волковой по курсу «системы программирования» iconУчебная программа курса или дисциплины «Основы программирования»
В частности, в курсе рассматриваются основные конструкции языков программирования, анализируются основные типы и структуры данных,...

Конспект лекций доцента и. А. Волковой по курсу «системы программирования» iconКонспект лекций по дисциплине вгипу, 2009 Конспект лекций по дисциплине «Управление персоналом»
Крупица В. В., Яшкова Е. В., Егоров Е. Е. Управление персоналом: Конспект лекций по дисциплине – вгипу, 2009

Конспект лекций доцента и. А. Волковой по курсу «системы программирования» iconКонспект лекций. (Электронный учебник) Минск: бгэу, 2010. Тема 1...
Короленок Г. А. Менеджмент в торговле. Конспект лекций. (Электронный учебник) Минск: бгэу, 2010



Образовательный материал



При копировании материала укажите ссылку © 2013
контакты
lit-yaz.ru
главная страница