Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Demkin_otvety_New.doc
Скачиваний:
13
Добавлен:
17.04.2019
Размер:
3.22 Mб
Скачать
  1. Что такое фрагментация? Какие виды фрагментации бывают? Какие виды фрагментации проявляются в 3 основных схемах размещения файлов?

Фрагмента́ция — процесс дробления чего-либо на множество мелких разрозненных фрагментов. В основном используется как компьютерный термин.

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

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

Фрагментация памяти

Основной принцип

"Фрагментированная память" обозначает всю непригодную свободную память системы. Фрагментация памяти обычно происходит, когда память ассигнована динамически (использующий звонки как malloc). Вообще, распределение памяти, выполненное во время времени выполнения, не находится в форме стеков. Лицо, ведающее распределением памяти тратит впустую память следующими способами:

1. Наверху

2. Внутренняя Фрагментация

3. Внешняя Фрагментация.

Наверху

Распределитель памяти должен хранить всю информацию, связанную со всеми распределениями памяти. Эта информация включает местоположение, размер и собственность любых свободных блоков, так же как другие внутренние детали статуса. Наверху включает все дополнительные системные ресурсы, которых требует программный алгоритм. Динамический распределитель памяти как правило хранит эту верхнюю информацию в памяти, которой она управляет. Это приводит к убытку памяти. Следовательно, это рассматривают как часть фрагментации памяти.

Внутренняя фрагментация

Когда ассигнованная память больше чем необходимый, остальное потрачено впустую. Некоторые причины лишнего распределения:

1. Политика распределителя - вовлекает архитектурные ограничения,

2. Клиент просит больше памяти, чем требуется.

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

Внешняя фрагментация

Внешняя фрагментация - неспособность использовать свободную память, поскольку свободная память разделена на маленькие блоки памяти, и эти блоки вкраплены ассигнованной памятью. Это - слабость определенных алгоритмов распределения хранения, происходя, когда заявление ассигнует и освобождает ("освобождает") области хранения переменных размеров, и алгоритм распределения отвечает, покидая ассигнованные и освобожденные вкрапленные области. Результат состоит в том, что, хотя свободное хранение доступно, это эффективно непригодно, потому что это разделено на части, которые являются слишком маленькими, чтобы удовлетворить требования заявления. Термин "внешний" относится к факту, что непригодное хранение вне ассигнованных областей.

  1. Какой максимальный адресуемый объем памяти для программы на 32-разрядной архитектуре? Почему объем доступной виртуальной памяти меньше максимального (куда девается разница)? На какие основные части делится виртуальная память работающей программы? Как это соотносится с форматами исполняемых файлов? Максимум 2^32 байт. Реально доступно меньше Такое поведение является закономерным результатом влияния определенных аппаратных и программных факторов. Различным устройствам типичного компьютера требуется доступ через отображаемую память. Этот механизм называется MMIO. Чтобы пространство MMIO было доступно 32-разрядным операционным системам, оно должно располагаться в первых 4 ГБ адресного пространства.

Например, при наличии видеоадаптера с 256 МБ собственной памяти эта память должна отображаться в первые 4 ГБ адресного пространства. Если на компьютере уже установлено 4 ГБ системной памяти, часть адресного пространства должна быть зарезервирована для отображения памяти видеоадаптера. Для отображения памяти видеоадаптера используется часть системной памяти. В результате общий объем системной памяти, доступной операционной системе, сокращается.

То, насколько сократится объем доступной системной памяти, зависит от установленных на компьютере устройств. Если на компьютере установлено много устройств, объем доступной памяти может составить 3 ГБ или меньше. Однако максимально возможный объем доступной памяти в 32-разрядных версиях Windows Vista обычно составляет 3,12 ГБ.

Сопоставленный памятью ввод / вывод (MMIO) и ввод / вывод порта (также названный сопоставленным портом вводом / выводом (PMIO) или изолированным вводом / выводом) являются двумя дополнительными методами выполнения входа/продукции между центральным процессором и периферийными устройствами в компьютере. Другой метод, не обсужденный в этом артикле, использует посвященные процессоры ввода / вывода — обычно известный как каналы на основных компьютерах — которые выполняют их собственные инструкции.

Сопоставленный памятью ввод / вывод (чтобы не быть перепутанным с сопоставленным памятью вводом / выводом файла) использует ту же самую адресную шину, чтобы обратиться и к памяти и к устройствам ввода / вывода, и инструкции по центральному процессору, используемые, чтобы получить доступ к памяти, также используются для того, чтобы получить доступ к устройствам. Чтобы приспособить устройства ввода / вывода, области адресуемого пространства центрального процессора должны быть сохранены для ввода / вывода. Резервирование могло бы быть временным — Коммодор 64 мог окружить валом выключатель между его устройствами ввода / вывода и правильной памятью — или постоянный. Каждое устройство ввода / вывода контролирует адресную шину центрального процессора и отвечает на любой доступ центрального процессора адресного пространства, назначенного на то устройство, соединяя шину данных с регистром аппаратных средств желательного устройства.

На какие части делится память работающей программы

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

  • Статическая память — это область памяти, выделяемая при запуске программы до вызова функции main из свободной оперативной памяти для размещения глобальных и статических объектов, а также объектов, определённых в пространствах имён. Объект называют глобальным, если он определён вне функции, класса или пространства имён. Объект, определённый с использованием ключевого слова static, называют статическим. Глобальные объекты, а также объекты, определённые в пространствах имён или статически в классах, размещаются в памяти (конструируются) до вызова функции main, а разрушаются после завершения работы этой функции. Пространства имён — это способ разделения программы на логические составляющие; механизм ограничения области видимости имён.

  • Автоматическая память — это специальный регион памяти, резервируемый при запуске программы до вызова функции main из свободной оперативной памяти и используемый в дальнейшем для размещения локальных объектов: объектов, определяемых в теле функций и получаемых функциями через параметры в момент вызова. Автоматическую память часто называют стеком.

  • Динамическая память — это совокупность блоков памяти, выделяемых из доступной свободной оперативной памяти непосредственно во время выполнения программы под размещение конкретных объектов.

На 32-х разрядной архитектуре максимальный адресуемый объём виртуальной памяти – 4 Гб. (2^32)

Файл подкачки - файл на жестком диске, используемый Windows для хранения данных, которые не помещаются в оперативной памяти.

Виртуальная память - это оперативная память вместе с файлом подкачки.

Объём виртуальной памяти складывается из объёма оперативной памяти и области подкачки (swap-а) именно поэтому объем доступной виртуальной памяти меньше максимального.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]