Характеристика особенностей виртуальной памяти, основанной на страничной организации и сегментации. Анализ модифицированной версии системы двойников, которая используется для распределения памяти ядром unix. Изучение системного программного обеспечения.
Аннотация к работе
Работа посвящена управлению памятью, являющейся фундаментальным вопросом в операционных системах. Память является очень важным ресурсом, поэтому требуется эффективное управление ею. Практически во всех современных многозадачных системах эта задача предполагает использование сложной схемы, известной как виртуальная память. Виртуальная память, в свою очередь, основана на использовании одной или обеих базовых технологий - сегментов и страниц. Система двойников представляет собой разумный компромисс для преодоления недостатков схем фиксированного и динамического распределения, но в современных операционных системах ее превосходит виртуальная память, основанная на страничной организации и сегментации.Память является важнейшим ресурсом, требующим тщательного управления со стороны мультипрограммной операционной системы. Главной операцией управления памятью является размещение программы в основной памяти для ее выполнения процессором, выполнением данной функции занимается менеджер памяти, использующий определенные методы распределения.Основная память разделяется на ряд статических разделов во время генерации системы.Для преодоления сложностей, связанных с фиксированным распределением, был разработан альтернативный подход, известный как динамическое распределение.Основная память распределена на ряд кадров равного размера.Каждый процесс распределен на ряд сегментов.В системе двойников память распределяется блоками размером 2к, L <К <U , где 2L - минимальный размер выделяемого блока памяти; 2U - наибольший распределяемый блок. При запросе размером S, таким, что 2U-l <S <2U, выделяется весь блок. В противном случае блок разделяется на два эквивалентных двойника с размерами 2U-1. Если 2U-2 <S <2U-l, то по запросу выделяется один из двух двойников; в противном случае один из двойников вновь делится пополам. Первый запрос А - 70 КБ (для него требуется блок размером 128 КБ); Для этого начальный блок делится на два двойника по 512 КБ.Программа, полученная в результате этого проекта должна моделировать алгоритм распределения памяти Система двойников. Пользователю должна быть предоставлена возможность задавать параметры памяти, для этого в GUI присутствуют область для ввода параметров памяти, таких как размера памяти, минимальный размер блока, единицы измерения. виртуальный unix программный А также возможность выделить память для процесса и освободить память занятую процессом.Прецедент > заключается в возможности сохранить список процессов в файл. Прецедент > заключается в возможности выбрать процесс из списка процессов. Прецедент > заключается в возможности ввести имя файл. Описание При использовании данного варианта использования пользователь выделяет память под процесс Описание При использовании данного варианта использования пользователь освобождает выделенную память под процессПроведя анализ поставленной задачи и диаграммы прецедентов, были выявлены следующие объекты: - User - пользователь; Пользователь выполняет ввод данных о памяти, данные проверяются и отображаются, происходит настройка памяти и IVISUALZATOR визуализирует ее. Пользователь выполняет сохранить в файл, создается объект _storage:ISTORAGE, _storage управляет процессом сохранения данных, файловая система записывает данные в файл. Пользователь выполняет загрузку из файл, _storage управляет процессом загрузки данных, файловая система считывает данные из файла, GUI отображение считанные данные. Исходя из анализа поставленной задачи, выяснилось, что графический интерфейс разрабатываемого программного продукта должен содержать: область для ввода параметров памяти, область для ввода параметров процесса, область для отображения списка процессов, панель для визуализации состояния памяти, кнопки «Выделить память», «Освободить память», «Загрузить с файла» «Сохранить в файл» (рисунок 1.2).Согласно поставленной задаче, была разработана трехуровневая архитектура приложения. Она состоит из следующих уровней: GUI, Model, Storage. Исходя из анализа поставленной задачи, был выбран именно этот тип системной архитектуры. Это можно объяснить тем, что разрабатываемая программа должна реализовывать определенный алгоритм - Model, взаимодействовать непосредственно с пользователем - GUI, хранить данных - Storage. VISUALIZATIONMEMORY - Визуализация состояния памяти, реализует IVISUALIZATORДанный метод принимает аргумент процесс. При его вызове процесс размещается в свободном блоке памяти. Блок схема метода Allocate изображена на рисунке 2.7. Разбиваем блок на два одинаковых блока, один добавляем в свободные, размер другой сравниваем с размером процесса и размером минимального блока памяти. Если процесс не помещается в половину блока или его половина меньше минимального, то загружаем процесс в этот блок, в противном случаи, снова разбиваем блок, пока не получим блок нужного размера.Систему двойников можно реализовать на нескольких структурах данных, основными являются: бинарное дерево и двухсвязный список.