- •Методические рекомендации по выполнению практических работ
- •Оп.04 «Операционные системы»
- •Практическая работа №1 Обзор аппаратного обеспечения компьютера: процессоры
- •Практическая работа №2 Обзор аппаратного обеспечения компьютера: память
- •Практическая работа №3 Обзор аппаратного обеспечения компьютера: устройства ввода-вывода
- •Практическая работа №4 Обзор аппаратного и программного обеспечения компьютерных сетей
- •Практическая работа №5 Обслуживание ввода-вывода
- •Практическая работа №6 Принцип уровней абстракции и его использование при разработке операционных систем
- •Практическая работа №7
- •Практическая работа №8 Оценка производительности системы
- •Практическая работа №9
- •Практическая работа №10
- •Практическая работа №11 Обзор многопоточности в unix
- •Практическая работа №12
- •Практическая работа №13 Обзор многопоточности в .Net
- •Практическая работа №14 Обзор многопоточности в Java
- •Практическая работа №15 Методы управления памятью в операционных системах
- •Практическая работа №16 Методы адресации в компьютерных системах
- •Практическая работа №17 Этапы обработки программы от исходного кода к исполняемому в операционных системах
- •Практическая работа №18
- •Практическая работа №19 Организация оверлейной структуры программ
- •Практическая работа №20 Реализация смежного распределения памяти
- •Методы распределения памяти без использования дискового пространства Распределение памяти фиксированными разделами
- •Распределение памяти разделами переменной величины
- •Перемещаемые разделы
- •Методы распределения памяти с использованием дискового пространства Страничное распределение
- •Сегментное распределение
- •Странично-сегментное распределение
- •Свопинг
- •Практическая работа №21
- •Практическая работа №22 Реализация хешированных таблиц страниц
- •Практическая работа №23 Создание резервных копий
- •Практическая работа №24 Восстановление данных
- •Практическая работа №25 Работа с антивирусными программами
- •Практическая работа №26 Основные правила и требования к парольной защите
- •Практическая работа №28 Осуществление мероприятий по защите персональных данных
- •Практическая работа №29
- •Приложение а
- •Практическая работа №30 Обеспечение работы системы регистрации и авторизации пользователей сети
- •Практическая работа №31 Осуществление системного администрирования локальных сетей
- •Практическая работа №32 Типы и решения сетевых проблем
- •Сети имеют сложную структуру
- •Средство устранения неполадок сети поможет решить проблему
- •Практическая работа №33 Установка контроллера домена и dns–сервера
- •Установка контроллера домена в существующий домен с использованием интерфейса Windows
- •Практическая работа №34 Добавление роли dhcp-сервера и его настройка
Свопинг
Разновидностью виртуальной памяти является свопинг.
Анализ загрузки процессора в зависимости от числа одновременно выполняемых процессов показал, что для загрузки процессора на 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. Составить алгоритм распределения памяти для последующего преобразования его в язык программирования.
Содержание отчета
Отчет по практической работе должен содержать следующие пункты:
- название практической работы;
- цель работы;
- краткие теоретические сведения;
- индивидуальное задание для выполнения работы;
- краткое описание хода выполнения работы;
- результаты выполнения работы;
- выводы.
