Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Описание лабораторной работы

ТЕОРЕТИЧЕСКОЕ ОПИСАНИЕ

При многозадачной работе часто возникает необходимость производить обмен данными между взаимодействующими задачами. Один из механизмов реализации такого взаимодействия заключается в совместном использовании динамически распределяемых областей памяти (далее просто динамической памяти). Такое использование предполагает наличие средств управления этой памятью.

Стандартные средства языков программирования (С++, Delphi и др.) предусматривают возможность создания динамических переменных в области динамической памяти. С помощью этих средств возможна работа с такими структурами данных, как списки, деревья и т. п. Однако часто возникают задачи, требующие иного использования динамической памяти, например, загрузка ресурсов, обмен данными между процессами и потоками. Для решения задач такого сорта в составе современных операционных систем имеются средства управления динамической памятью.

В операционной системе Windows эти средства базируются на системе виртуальной памяти, встроенной в ядро ОС. Эта система позволяет приложениям использовать области памяти, размер которых значительно превышает объем реальной (физической) памяти, имеющейся в компьютере. Для создания виртуальной памяти в Windows используется дисковое пространство. Однако для работы приложения часто необходимо располагать сравнительно небольшим объемом динамической памяти. Поэтому в составе Windows предусмотрены функции, предназначенные для создания и управления динамической памятью. Такая память называется пулом.

Адресные пространства в Windows разделены, поэтому в этой ОС нет глобальных пулов памяти. Вместо этого каждому приложению по умолчанию выделяется один стандартный пул памяти в его адресном пространстве. При необходимости приложение может создать (только в своем адресном пространстве!!!) произвольное количество так называемых динамических пулов памяти. Причины, по которым возникает необходимость создания дополнительных динамических пулов памяти, могут быть следующими:

  • Защита компонентов;
  • Более эффективное управление памятью;
  • Локальный доступ.

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

Эффективное управление памятью заключается, например, в выделении внутри динамических пулов объектов одинакового размера. Пусть, например, имеется некоторая структура данных размером в N1 байт, и другая структура, имеющая размер N2 > N1 байт. Пусть память для объектов структур указанного типа выделяется в одном динамическом пуле, и в результате работы программы весь динамический пул будет занят. Если в дальнейшем два объекта размером N1 и N2 соответственно будут удалены, то попытка вновь создать два объекта размером N2 вызовет ошибку, хотя свободное место в динамической памяти, вообще говоря, имеется. Выход заключается в размещении объектов различного размера в различных динамических пулах.

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

Стандартный пул доступен для функций типа malloc, free, GetMem, FreeMem и пр. Для работы с дополнительными пулами памяти их использование невозможно. Изучаемые в данной лабораторной работе функции позволяют организовать работу, как со стандартным, так и с дополнительными пулами.

 

ОПИСАНИЕ ЛАБОРАТОРНОЙ РАБОТЫ



<== предыдущая лекция | следующая лекция ==>
Но прежде чем отформатировать фрагмент документа его надо ВЫДЕЛИТЬ. | Динамическое преобразование адресов
Поделиться с друзьями:


Дата добавления: 2016-12-06; Мы поможем в написании ваших работ!; просмотров: 200 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Велико ли, мало ли дело, его надо делать. © Неизвестно
==> читать все изречения...

2460 - | 2139 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.