Организация памяти в ЭВМ

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    266,35 Кб
  • Опубликовано:
    2013-05-31
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Организация памяти в ЭВМ

Содержание

 

Введение

.        Общесистемная часть

.1      Организация памяти в ЭВМ.

.2      Организация доступа к ресурсу ОП.

.3      Физическая память.

.4      Стратегии размещения информации в памяти.

.5      Страничная организация памяти

.6      Алгоритмы распределения адресного пространства ОП.

.        Специальная часть.

.1      Постановка целей и задач.

.2      Использование методов имитационного моделирования для решения поставленной задачи

.3      Описание характеристик модели и ее поведения

.3.1   Описание адресного пространства ОП.

.3.2   Описание страницы.

.3.3   Описание модели системы.

.4      Описание классов и элементов

.4.1   Описание класса страницы

.4.2   Описание адресного пространства ОП

.4.3   Описание модели системы

.5      Внешний вид разработанного приложения и описание работы с программой.

Заключение

Список источников

Приложение 1. Листинг исходного кода программы.

 


Введение


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

1.      Общесистемная часть

 

1.1    Организация памяти в ЭВМ


Компактные микроэлектронные запоминающие устройства, так называемая «память», широко применяются в современной аппаратуре самого различного назначения. Но, тем не менее, разговор о классификации памяти, её видах следует начать с определения места и роли, отведённой памяти в ЭВМ. Память является одной из самых главных функциональных частей машины, предназначенной для записи, хранения и выдачи команд и обрабатываемых данных. Следует сказать, что команды и данные поступают в ЭВМ через устройство ввода, на выходе которого они получают форму кодовых комбинаций 1 и 0. Основная память, как правило, состоит из запоминающих устройств двух видов - оперативного (ОЗУ) и постоянного (ПЗУ).

ОЗУ предназначено для хранения переменной информации; оно допускает изменение своего содержимого в ходе выполнения вычислительного процесса. Таким образом, процессор берёт из ОЗУ код команды и, после обработки каких-либо данных, результат обратно помещается в ОЗУ. Причем возможно размещение в ОЗУ новых данных на месте прежних, которые при этом перестают существовать. В ячейках происходит стирание старой информации и запись туда новой. Из этого видно, что ОЗУ является очень гибкой структурой и обладает возможностью перезаписывать информацию в свои ячейки неограниченное количество раз по ходу выполнения программы.

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

1.2    Организация доступа к ресурсу ОП


Ресурсом называется средство вычислительной системы, которое может быть выделено процессу на определенный интервал времени. Все ресурсы вычислительной системы (ВС) можно разделить на физические и виртуальные. Физические ресурсы - реально существующие ресурсы, обладающие всеми физическими свойствами при распределении между процессами. Виртуальный ресурс является некоторой моделью физического и не существует реально в том виде, в котором предоставляется процессу. Примерами виртуальных ресурсов могут служить виртуальная память, виртуальные регистры, виртуальные CD-ROM приводы и пр.

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

Основная (оперативная) память всегда была и остается до сих пор наиболее критическим ресурсом компьютеров. Если учесть, что большинство современных компьютеров обеспечивает 32-разрядную адресацию в пользовательских программах, и все большую силу набирает новое поколение 64-разрядных компьютеров, то становится понятным, что практически безнадежно рассчитывать, что когда-нибудь удастся оснастить компьютеры основной памятью такого объема, чтобы ее хватило для выполнения произвольной пользовательской программы, не говоря уже об обеспечении мультипрограммного режима, когда в основной памяти, вообще говоря, могут одновременно содержаться несколько пользовательских программ.

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

1.3    Физическая память


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

Организация памяти - это способ представления и использования основной памяти. Распространенными способами организации памяти для системы с физической памятью являются:

·        однопрограммные (одно абонентские) системы;

·        мультипрограммные системы с фиксированными разделами, с трансляцией и загрузкой модулей в абсолютных адресах;

·        мультипрограммные системы с фиксированными разделами, с трансляцией и загрузкой перемещаемых модулей;

·        мультипрограммные системы с переменными разделами;

·        системы со свопингом.

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

·        стратегии выборки;

·        стратегии размещения;

·        стратегии замещения.

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

1.4    Стратегии размещения информации в памяти


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

1 размещение с выбором первого подходящего (стратегия “первый подходящий”):

2 размещение с выбором наиболее подходящего (стратегия “самый подходящий”);

3 алгоритм с выбором наименее подходящего (стратегия “самый неподходящий”).

Стратегия “первый подходящий” состоит в выполнении следующих шагов:

4 упорядочить таблицу свободных областей в порядке возрастания адресов;

5 поместить информацию в первый встретившийся участок основной памяти размером не менее требуемого.

Стратегия “самый подходящий” реализует следующую последовательность действий:

6 упорядочить таблицу свободных областей в порядке возрастания размеров свободных областей:

7 поместить информацию в первый встретившийся участок свободной памяти размером не менее требуемого.

Стратегия “самый неподходящий” выполняет следующие действия:

8 упорядочить таблицу свободных областей в порядке убывания размеров областей;

9 поместить информацию в первый встретившийся участок свободной памяти размером не менее требуемого.

Строгих доказательств преимуществ той или иной стратегии перед остальными не существует, так что их применение в операционных системах основано на интуитивных аргументах разработчиков ОС.

1.5    Страничная организация памяти


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

Различаются два класса схем структуризации:

·        схемы страничной структуризации;

·        схемы сегментной структуризации.

Страничная организация памяти состоит в разбиении программы на части фиксированной длины, называемые страницами; длина страницы обычно определяется особенностями аппаратных средств и другими системными факторами. Фирма IBM, например, использует в своих системах страничной организации памяти страницы двух размеров: в 2К и в 4К. Из нашего обсуждения механизма защиты памяти в операционной системе OS/MFT фирмы IBM вы, вероятно, помните, что память в этой системе распределяется между программами порциями емкостью в два К; отсюда - 2К - байтовые страницы. Программирующие на языке ассемблера конечна не могут не осознавать значения числа 4К - оно определяет максимальный адрес, сопоставляемый одному регистру базы. При столь коротких страницах и хорошо согласованном спектре длин сегментов с используемой системой распределения памяти вероятность возникновения неиспользованных областей памяти значительно снижается.

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

Рис. 1. Загрузка программы в системе

Рис. 2. Адресация в системе со страничной организацией памяти

Рис. 3. Динамическое преобразование адресов в системе со страничной -организацией памяти

В системе страничной организации памяти несколько легче прослеживается распределение памяти; память просто делится на ряд страниц фиксированной длины (рис. 4), при этом в таблице описания страниц (рис. 5) состояние каждой страницы (свободна или занята) задается одноразрядным флажком.

Рис. 4. Память, разделенная на страницы.

Рис. 5. Таблица содержания страниц

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

Как мы уже видели, некоторая потеря памяти неизбежна при любой схеме ее распределения; страничная организация памяти даже при фиксированных размерах модулей сталкивается с той же проблемой, хотя и в несколько ином плане. Проблема страничной организации памяти, если сформулировать ее как можно проще, состоит в том, что любой фиксированный размер страницы неизбежно оказывается не подходящим. Эта формулировка, вероятно, требует небольшого пояснения. Программисты не пишут своих программ частями фиксированной длины; почти; в любой программе найдется, по крайней мере, одна страница, используемая не полностью. Даже если в среднем это составляет 1К на программу, то в системе мультипрограммирования, работающей с 10 программами, суммарная потеря памяти составит целых 10К[1]!

1.6    Алгоритмы распределения адресного пространства ОП


Алгоритм распределения адресного пространства оперативной памяти отличен от алгоритма распределения адресного пространства виртуальной памяти.

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

Вместе с тем сравнительно небольшой объем адресного пространства оперативной памяти и структурирование его страницами фиксированного размера могут существенно облегчить построение алгоритма. Разовый запрос от каждого из процессов на выделение памяти согласно рассматриваемой схеме функционирования виртуальной памяти может быть только на одну страницу. В ответ на запрос указывается номер некой «свободной» страницы из набора номеров свободных страниц в текущий момент времени. Причем не накладываются никакие требования на «соседей» выделяемой страницы. Это могут быть либо свободные, либо распределенные страницы.

Для выполнения распределения ведут учет свободных и распределенных страниц. Наиболее простой метод учета основан на использовании двоичного вектора. Число двоичных разрядов вектора равно числу страниц адресного пространства оперативной памяти. Двоичные разряды нумеруются в том же порядке, что и страницы. Тогда значение двоичного разряда с номером i будет однозначно определять текущее состояние страницы с номером i. Страница свободна, если значение равно 0, и распределена, если значение равно 1. Для выделения свободной страницы достаточно найти в двоичном векторе нулевой разряд, номер которого и будет равен номеру распределяемой страницы. После распределения нулевой разряд устанавливается в 1.

При данном способе структуризации возможно и используется перераспределение страниц. Если в некоторый момент обнаруживается, что свободных страниц нет, то ищется «кандидат» на перераспределение из числа уже распределенных страниц. Информацию, соответствующую странице-кандидату, переносят на уровень внешней памяти (в архивную среду). Затем освобожденную таким «насильственным» образом страницу закрепляют за процессом, выдавшим требование на выделение страницы. Выбор страницы-кандидата, а также перенос информации в архив осуществляются механизмами, реализующими решение задач замещения и перемещения.

2.      Специальная часть

 

2.1    Постановка целей и задач


Задание: Разработка модели задачи размещения информации в адресном пространстве ОП при структуризации фиксированными страницами.

Постановка задачи:

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

2.2    Использование методов имитационного моделирования для решения поставленной задачи


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

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

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

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

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

·        Нет законченной постановки задачи и идет процесс познания объекта моделирования;

·        Аналитические методы имеются, но позволяют оценить очень грубо свойства сложной системы;

·        Желательно получить характеристики всех входных координат, компонент, составляющих сложную систему;

·        Необходимо произвести моделирование в ускоренном или замедленном масштабе времени.

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

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

Каждая модель представляет собой комбинацию таких составляющих, как

·        Компонент - составные части, которые при объединении образуют систему.

·        Переменные - описывают входы и выходы компоненты. В тех случаях, когда переменные изменяют состояние компоненты, их называют переменные состояния.

·        Параметры - значения характеризующие состояние компоненты.

·        Функциональные зависимости - определяют поведение переменных в пределах компоненты.

·        Ограничения - представляют собой устанавливаемые пределы изменения переменных.

·        Целевые функции - характеризируют динамические свойства или иные свойства системы.

Моделирование с помощью ЭВМ, т.е. имитационное моделирование, является в настоящее время одним из наиболее эффективных средств исследования сложных систем (СС).

2.3    Описание характеристик модели и ее поведения


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

Для реализации всего механизма размещения в адресном пространстве ОП при структуризации фиксированными страницами создаются: модель адресного пространства ОП, модель страницы, модель системы.

.3.1   Описание адресного пространства ОП

Параметры:

·        размер адресного пространства

·        размер страницы

Функции:

·        графическое отображение адресного пространства ОП

·        изменение размера адресного пространства

·        изменение размера страниц

.3.2   Описание страницы

Параметры:

·        признак занятости страницы

·        размер страницы

·        адрес страницы

·        имя (идентификатор) страницы

Функции:

·        графическое отображение страницы

·        вывод информации о странице

.3.3   Описание модели системы

Параметры:

·        двоичный вектор (информация о занятых страницах)

·        список адресов размещенных страниц

·        поля для ввода данных

·        кнопки для регистрации ввода

Функции:

·        установление значений параметров, введенных пользователем

·        поиск свободных страниц, имитация занятости страницы

·        очистка адресного пространства

·        замещение страниц при переполнении адресного пространства

·        освобождение занятых страниц

2.4    Описание классов и элементов


Программная реализация была выполнена в среде Visual Studio на языке высокого уровня C#.

2.4.1 Описание класса страницы

Страница реализуется при помощи создания пользовательского типаclass Page , который представляет собой класс страницы:

·        string name - имя (идентификатор) страницы

·        int size - размер страницы

·        int adress - адрес страницы

·        bool busy - логическая переменная, определяющая занятость страницы

·        Rectangle rect - графические размеры страницы

·        public Page - конструктор для инициализации экземпляра класса страницы

·        public int Size - открытое свойство для изменения размера страницы

·        public int Adress - открытое свойство для изменения адреса страницы

·        public Rectangle Rect - открытое свойство для изменения графических размеров страницы

·        public string Name - открытое свойство для изменения имени страницы

·        public bool Busy - открытое свойство для изменения занятости страницы

·        public void Draw - функция реализующая графическое отображение страницы

Вид класса страницы в работе и описание составных частей:





Рис.1 «вид страницы в приложении»

.4.2   Описание адресного пространства ОП

Адресное пространство ОП реализуется при помощи стандартной компоненты Visual Studio C# - PictureBox, которая задает область графического отображения адресного пространства на форме приложения. Помимо нее используются параметры и функции:

·        int APOPsize - размер адресного пространства

·        private void Form1_Paint(object sender, PaintEventArgs e) - функция обработчик события графического отображения АП

Вид адресного пространства ОП в работе и описание составных частей:











Рис.2 «вид компоненты адресного пространства»

.4.3   Описание модели системы

Для реализации взаимодействия в модели используются следующие параметры и функции:

·        int count - переменная для задания идентификатора странице

·        int size - переменная для задания размера страниц

·        private void button1_Click(object sender, EventArgs e) - функция обработчик события размещения страницы в адресном пространстве

·        private void button2_Click(object sender, EventArgs e) - функция обработчик события освобождения страницы

·        private void pictureBox1_Paint(object sender, PaintEventArgs e) - функция обработчик события графического отображения страниц в АП

·        private void button3_Click(object sender, EventArgs e) - функция обработчик события освобождения всех занятых страниц

·        private void button4_Click(object sender, EventArgs e) - функция обработчик события задания размера страниц

·        private void button5_Click(object sender, EventArgs e) - функция обработчик события задания размера АП

Вид системы в работе и описание составных частей










Рис.3 «вид системы при работе»

2.5    Внешний вид разработанного приложения и описание работы с программой.


При запуске программы мы видим следующее окно:

Рис.4 «вид приложения №1, вид при запуске»

В названии приложения мы видим название программы. Слева располагается компонента, отображающая адресное пространство ОП. Справа находятся элементы управления. Пользователю предлагается ввести размер адресного пространства ОП и нажать кнопку «Задать».

При нажатии на кнопку «Задать» запоминается размер адресного пространства ОП, поле «Размер АП ОП» и кнопка «Задать» деактивируются, а поле «Размер страницы» и кнопка «Задать» станут активны.

Рис.5 «вид приложения №2, активация поля «Размер страницы» и кнопки «Задать»»

После ввода необходимого размера страницы при нажатии кнопки ««Задать»» запоминается размер страницы. После чего поле «Размер страницы» и кнопка «Задать» деактивируются и включается кнопка «Добавить»

Рис.6 «вид приложения №3, кнопки «Добавить»»

При нажатии на кнопку «Добавить» происходит размещение в адресном пространстве страницы информации. Активируется список «Адреса страниц» и кнопка «Удалить»

Рис.7 «вид приложения №4, размещение в адресном пространстве»

После размещения появляется возможность освободить занятые страницы

Рис.8 «вид приложения №5, освобождение страниц»

После чего при добавлении используются выше освобожденные страницы

Рис.9 «вид приложения №6, повторное заполнение»

При переполнении адресного пространства ОП происходит замещение любой случайно выбранной страницы

Рис.10 «вид приложения №7, переполнение»

Кнопка «Очистить» позволяет освободить все страницы адресного пространства ОП.

Рис.11 «вид приложения №8, очистка»

Заключение


В данном курсовой работе была поставлена задача создания модели размещения информации в адресном пространстве ОП при структуризации фиксированными страницами.

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

Список источников


1.      Г. Дейтел «Введение в операционные системы», М.: «Мир» ,1987 г.

.        Г.Н. Соловьѐв, В.Д. Никитин «Операционные системы ЭВМ», М.: «Выс-шая школа» ,1989 г.

.        И.В. Максимей «Имитационное моделирование на ЭВМ», М.: «Радио и связь», 1988 г.

.        В. Столингс «Операционные Системы», М.: «Питер», 2002 г.

.        Э. Троелсен «Язык программирования С# 2005 и платформа .NET 2.0» , М.: «Вильямс», 2007 г.

Приложение 1. Листинг исходного кода программы


using System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;System.Drawing.Drawing2D;Курсовая

{partial class Курсовая : Form

{

Page[] binaryvector; //структура данных хранящая иформацию о занятых и свободных страницахcount;//вспомогательная переменная для задания идентификатора страницамAPOPsize;//размер АП ОПsize;//размер страниц

public Курсовая()

{();= 16;= new Page[APOPsize / size];= 0;= 256;

}class Page//класс страницы

{name;//идентификаторsize;//размер

int adress;//адресbusy;//занятость страницы

Rectangle rect;Page(int adress, int size, Rectangle rect)//конструктор

{.adress = adress;.size = size;.rect = rect;

}int Size

{{ return size; }{ size = value; }

}int Adress

{{ return adress; }{ adress = value; }

}Rectangle Rect

{{ return rect; }{ rect = value; }

}string Name

{{ return name; }{ name = value; }

}bool Busy

{{ return busy; }{ busy = value; }

}void Draw(Graphics g)//отрисовка на форме

{.FillRectangle(new SolidBrush(Color.Orange), rect);.DrawRectangle(new Pen(Color.Black), rect);.DrawString(name + " Адрес " + adress + " Размер " + size,Font("Arial", 9), new SolidBrush(Color.Black),.Location);

}

}void button1_Click(object sender, EventArgs e)//размещение

страницы

{temp = false;(int i = 0; i < binaryvector.Length; i++)

{(binaryvector[i].Busy == false)

{[i].Name = "Страница " + count;[i].Busy = true;.Items.Add(binaryvector[i].Adress);= true;;

}(temp == false)

{rnd = new Random();r = rnd.Next(0, binaryvector.Length);[r].Name = "Страница " + count;

}++;.Refresh();.Enabled = true;.Enabled = true; ;

}void button2_Click(object sender, EventArgs e)//удаление

(освобождение) страницы

{(int i = 0; i < binaryvector.Length; i++)

{(Convert.ToInt32(listBox1.SelectedItem) ==.ToInt32(binaryvector[i].Adress))

{.Items.Remove(Convert.ToInt32

(binaryvector[i].Adress));[i].Busy = false;.Refresh();

}

}temp = false;(int i = 0; i < binaryvector.Length; i++)

{(binaryvector[i].Busy == true)

{= true;

}

}(temp == false)

{.Enabled = false;.Enabled = false;

}

}void Form1_Paint(object sender, PaintEventArgs e)//отображение

АП ОП

{.Graphics.DrawString("0", new Font("Arial", 9),SolidBrush(Color.Black), pictureBox1.Location.X - 10,.Location.Y - 10);.Graphics.DrawString(Convert.ToString(APOPsize), new Font("Arial",

), new SolidBrush(Color.Black), pictureBox1.Location.X - 25,.Location.Y + pictureBox1.Height);

}void pictureBox1_Paint(object sender,e)//отображение страниц

{(binaryvector.Length != 0)

{(int i = 0; i < binaryvector.Length; i++)

{(binaryvector[i].Busy == true)

{[i].Draw(e.Graphics);

}

}

}

}void button3_Click(object sender, EventArgs e)//освобождение АП

{.Enabled = false;.Enabled = false;.Enabled = false;.Enabled = true;.Enabled = true;.Enabled = false;.Enabled = false;.Items.Clear();(int i = 0; i < binaryvector.Length; i++)

{[i].Busy = false;

}= 0;.Refresh();

}void button4_Click(object sender, EventArgs e)//задание размер

страниц

{= Convert.ToInt32(comboBox2.SelectedItem);(size <= APOPsize)

{= new Page[APOPsize / size];(int i = 0; i < binaryvector.Length; i++)

{[i] = new Page(i * size, size,Rectangle(new Point(0, i * pictureBox1.Height /.Length), new Size(pictureBox1.Width,.Height / binaryvector.Length)));

}.Enabled = false;.Enabled = false;.Enabled = true;

}MessageBox.Show("Размер страницы должен быть меньше

размера адресного пространства");

}

private void button5_Click(object sender, EventArgs e)//задание размера

АП

{= Convert.ToInt32(comboBox1.SelectedItem);.Refresh();.Enabled = false;.Enabled = false;.Enabled = true;.Enabled = true;

}

}

}


Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!