Материал: 9

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Из этого материала надо вынести определения гранулярности и размера страницы.

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

Эту функцию надо освоить в обязательном порядке. И показать мне, что вы знаете, как она вызывается.

На компьютере.

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

Ну и последнее, что сегодня рассмотрим. Вторичная память, которая имитирует память за счет использования дискового пространства, располагается в страничном файле или файле подкачки (paging file). Операционная система во взаимодействии с процессором сбрасывает содержимое части оперативной памяти в страничный файл и по мере необходимости подгружает (подкачивает) его порции обратно в память.

-------------------------------------------------------------------------

Здесь надо дополнительно кое-что написать. Подкачка непредсказуема по времени выполнения. Есть масса факторов, от которых она зависит.

Например, скорость обращения к основной памяти, скорость обращения ко вторичной памяти.

Кроме того, важное значение имеет фрагментация вторичной памяти. Я вкратце опишу, что такое фрагментация.

Ну буквально на пальцах.

Итак, представим, что в коде прописано множество идентификаторов, которые должны быть размещены в памяти на момент выполнения.

Для этого множества нужно в памяти найти свободную область.

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

При дискретном распределении памяти множество распределяется на несмежным (не соседним) участкам памяти.

Ну так вот, крайне редко бывает, что размер участка в точности совпадает с объемом множества идентификаторов.

Как правило, это объем меньше размера участка и возникает свободное (незанятое) место (разность между объемом участка и объемом множества

идентификаторов), которое может быть насколько маленьким, что уже больше ни под какое другое множество не подойдет.

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

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

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

Такая в общем и целом хорошо известная беда.

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

Может быть, кого-то и миновала участь сия, но у меня жесткие диски падали не раз, не два и не три.

Это всегда неприятно и может быть чревато тяжелыми последствиями.

--------------------------------------------------------------------------------------------

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

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

Вот такая есть особенность.