Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практические ОП 04 выполнять 1-4, 5,6,10,15,16,18,23,24,26,29 за год.docx
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
4.82 Mб
Скачать

Свопинг

Разновидностью виртуальной памяти является свопинг.

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

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

Ход работы

1. Ознакомиться с методами распределения памяти.

2. Провести анализ распределения памяти, выявить достоинства и недостатки каждого метода.

3. Составить алгоритм распределения памяти.

Содержание отчета

Отчет по практической работе должен содержать следующие пункты:

- название практической работы;

- цель работы;

- краткие теоретические сведения;

- индивидуальное задание для выполнения работы;

- краткое описание хода выполнения работы;

- результаты выполнения работы;

- выводы.

Практическая работа №21

Реализация ассоциативной памяти страниц и операции над ней

Цель работы: ознакомиться с принципами реализацииассоциативной памяти страниц и операции над ней.

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

Оборудование: ПК с операционной системой Windows XP/7/8.

Теоретические сведения

Аппаратный ассоциативный массив

В отличие от обычной машинной памяти (памяти произвольного доступа, или RAM), в которой пользователь задает адрес памяти и ОЗУ возвращает слово данных, хранящееся по этому адресу, АП разработана таким образом, чтобы пользователь задавал слово данных, и АП ищет его во всей памяти, чтобы выяснить, хранится ли оно где-нибудь в нем. Если слово данных найдено, АП возвращает список одного или более адресов хранения, где слово было найдено (и в некоторых архитектурах, также возвращает само слово данных, или другие связанные части данных). Таким образом, АП — аппаратная реализация того, что в терминах программирования назвали бы ассоциативным массивом.

Адресуемая содержанием память часто используется в компьютерных сетевых устройствах. Например, когда сетевой коммутатор (switch) получает фрейм данных на один из его портов, это обновляет внутреннюю таблицу с источником MAC-адреса фрейма и порта, на который он был получен. Потом он ищет MAC-адрес назначения в таблице, чтобы определить, на какой порт фрейм должен быть отправлен, и отсылает его на этот порт. Таблица MAC- адресов обычно реализована на двоичной АП, таким образом порт назначения может быть найден очень быстро, уменьшая время ожидания коммутатора.

Определение степени ассоциативности кэш-памяти множественно-ассоциативная организация кэш-памяти

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

Например, для кэш-памяти, представленной на рис. 1, размер банка составляет 4 КБ, а степень ассоциативности равна четырем. Таким образом, если многократно выполнять обращения по пяти и более адресам, отстоящим друг от друга на расстояние, кратное 4 КБ, то мы получим эффект кэш- буксования.

Рассмотрим, как может быть организован обход памяти в соответствии с описанной идеей эксперимента. Будем выполнять обход нескольких фрагментов данных в памяти, отстоящих друг от друга на смещение, кратное размеру банка. Суммарный объем фрагментов данных возьмем равным размеру исследуемой кэш-памяти, предполагая, что для всех запрашиваемых данных в кэш-памяти должно найтись место.

Чтобы адреса отображались на одно и то же множество в кэш-памяти, необходимо, чтобы смещение между ними было кратно размеру банка кэш- памяти. Так как размер банка кэш-памяти не всегда известен, то рассмотрим, как его можно оценить. Размер кэш-памяти кратен размеру банка, поэтому, если известен размер кэш-памяти, то расстояние между началами фрагментов можно взять равным ему. Если же размер кэш-памяти неизвестен, то можно использовать тот факт, что размеры банков кэш-памяти практически всегда являются степенью двойки. Для современных процессоров подходящим смещением между фрагментами будет 224 Б = 16 МБ.

Обход фрагментов данных организуем таким образом, чтобы подряд происходили обращения к элементам разных фрагментов, отстоящим на заданное смещение. Сначала последовательно производится чтение всех первых элементов во всех фрагментах, затем всех вторых, затем – всех третьих и т.д. На рис. 2 показано размещение фрагментов данных в памяти (рис. 2а) и порядок обхода элементов (рис. 2б). Здесь Size – объем кэш- памяти, N – число фрагментов, Offset – смещение между началами соседних фрагментов.

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

Пример графика, полученного на процессоре IntelXeon X5660 (степень ассоциативности кэш-памяти 1-го и 2-го уровня: 8, степень ассоциативности кэш-памяти 3-го уровня: 16), представлен на рис. 3. На графике видно замедление после 8-ми фрагментов, что соответствует степени ассоциативности кэш-памяти 1-го и 2-го уровня, а также замедление после 16-ти фрагментов, что соответствует степени ассоциативности кэш-памяти 3- го уровня. Увеличение времени после 4-х фрагментов тоже соответствует степени ассоциативности, но уже не кэш-памяти, а буфера трансляции адресов.

Рис. 3. Среднее время чтения одного элемента массива в зависимости от числа фрагментов для процессора IntelXeon X5660.

Ход работы

1. Ознакомиться с методикой реализации ассоциативной памяти страниц.

2. Провести анализ распределения памяти, выявить достоинства.

3. Составить алгоритм распределения памяти для последующего преобразования его в язык программирования.

Содержание отчета

Отчет по практической работе должен содержать следующие пункты:

- название практической работы;

- цель работы;

- краткие теоретические сведения;

- индивидуальное задание для выполнения работы;

- краткое описание хода выполнения работы;

- результаты выполнения работы;

- выводы.