Страничная организация виртуальной памяти.

10.04.2019

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

· сегментная;

· сегментно-страничная.

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

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

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

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

Логический адрес - упорядоченная пара v=(s,d), номер сегмента и смещение внутри сегмента.

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



Рис. 11.2 Преобразование логического адреса при сегментной организации памяти.

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

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

Рис. 11.3 Формирование физического адреса при сегментно-страничной организации памяти.

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

Ассоциативная память.

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



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

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

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

Отображение виртуальных страниц, хранимых в ассоциативной памяти, осуществляется быстро, однако кэш память является дорогостоящей и имеет ограниченный размер. Число записей в TLB от 8 до 2048.

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

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

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

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

Например, предположим, что для доступа к таблице страниц необходимо 100 нс, а для доступа к ассоциативной памяти 20 нс. С 90% hit ratio среднее время доступа - 0.9*20+0.1*100 = 28 нс.

Вполне приемлемая производительность современных ОС доказывает эффективность использования ассоциативной памяти. Высокое значение вероятности нахождения данных в ассоциативной памяти связано с наличием у данных объективных свойств: пространственной и временной локальности.

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

Иерархия памяти.

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

Рассмотренная нами схема трехуровневой памяти (ассоциативная, основная, вторичная) является частным случаем многоуровневой памяти. На пример, как показано на рис. 11.5, разновидности памяти могут быть организованы в иерархию по убыванию скорости доступа и возрастанию цены.

.

Рис. 11.5 Иерархия памяти компьютера

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

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

Дизайнеры ОС для существующих машин редко имеют возможность влиять на размер страницы. Однако для вновь создаваемых компьютеров решение относительно оптимального размера страницы является актуальным. Как и можно было ожидать нет одного наилучшего размера. Скорее есть набор факторов, влияющих на размер. Обычно размер страницы это степень двойки от 2**9 до 2**14 байт.

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

Как следует выбирать размер страницы? Во-первых, нужно учитывать размер таблицы страниц, здесь желателен большой размер страницы (страниц меньше, соответственно и таблица страниц меньше). С другой стороны память лучше утилизируется с маленьким размером страницы. В среднем половина последней страницы процесса пропадает. Необходимо также учитывать объем ввода-вывода для взаимодействия с внешней памятью и другие факторы. Проблема не имеет хорошего ответа. Историческая тенденция состоит в увеличении размера страницы. Как правило, размер страниц задается аппаратно, например, на Intel - это 4096 байт (или 4 Кбайт), на DEC PDP-11 - 8 Кбайт, на DEC VAX - 512 байт, на других архитектурах, таких как Motorola 68030, размер страниц может быть задан программно.

Итак, рассмотрены аппаратные особенности поддержки виртуальной памяти. Перейдем к ее программной поддержке.

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

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

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

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

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

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

Конец работы -

Эта тема принадлежит разделу:

Принципы функционирования ЭВМ. Учебное пособие по курсам «технология программирования» и «операционные системы»

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

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ:

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Принципы фон неймана
Большинство современных ЭВМ строятся на базе принципов, сформулированных американским ученым, одним из “отцов” кибернетики Дж. фон Нейманом. Впервые эти принципы были опубликованы фон Нейманом в 19

Состав и функционирование минимальной ЭВМ с шинной организацией
Шинная организация является простейшей формой организации ЭВМ. Подобная ЭВМ имеет в своем составе следующие функциональные блоки (см. рис. 1). Устройство управления (УУ) -

Команды ЭВМ
В данном разделе пособия кратко рассмотрим набор команд, используемых в типичных ЭВМ и действия, реализуемые этими командами.


Первая из команд (сравнение) производит, как отмечалось выше, вычитание значения операнда B из операнда A. Если A>B, то результат будет положителен и, соответственно, флаг знака во флаговом реги

Системные интерфейсы с изолированной и общей системой шин
В предыдущих разделах при описании обобщенного алгоритма работы центрального процессора мы намеренно опустили из рассмотрения вопрос о том, как процессор “отличает” порты внешних устройств от ячеек

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

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

Обмен по прерываниям
Чтобы понять, что такое прерывание, обратимся к следующему примеру. Некоторый человек сидит в кресле и читает книгу. В это время на кухонной плите что-то готовится, и, кроме того, его прия

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

И еще о прерываниях
Описанный выше механизм прерываний, или аппаратные прерывания, является эффективным способом организации взаимодействия процессора с медленными внешними устройствами и начал

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

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

Кэш-память
Как уже говорилось выше, назначение кэш-памяти – временное хранение данных и команд, часто используемых процессором. Основной структурной единицей кэш-памяти является так называемая строка кэша (ca

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

Процесс переадресации виртуальной памяти
Процесс переадресацииопишем на примере микропроцессора 80386 фирмы Intel. Процесс переадресации показан на рис. 19 и 20.Перед исполнением загрузочные модели помещаются в оперативну

Форматы данных
Основными типами данных, которые встречаются при обработке информации в ЭВМ, являются числа, представленные в двоичной системе счисления, а также алфавитно-цифровые символы. Некоторые ЭВМ также осу

Информационная модель ЭВМ
Обработка чисел, символьной информации, логическая обработка, обработка сигналов - это все частные случаи общего понятия над названием «обработка информации». Для ЭВМ характерен признак: информация

Простейший конвейер, производительность конвейера
Существует достаточно простое общеизвестное правило – чтобы выполнить некоторую работу быстрее, необходимо разделить ее между несколькими исполнителями и заставить их действовать од­новременно. Раз

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

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

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

ЭВМ с канальной организацией
В основе этого типа организации ЭВМ лежит множественность каналов связи между устройствами и функциональная специализация узлов. Упрощенная схема организации ЭВМ с каналами приведена на ри

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

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

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

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

Сегментация памяти



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

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


СПЕЦИАЛЬНАЯ ЧАСТЬ

Назначение и функции программной системы

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

Основные объекты:

1) пациенты;

2.2. Системные требования

Для работы базы данных необходимы следующие ресурсы:

· процессор Pentium 133 или выше;

· минимальный объем оперативной памяти - 32 Мбайт;

· жесткий диск с объемом свободного пространства не менее 100 Мбайт;

· CD-ROM, клавиатура, мышь.

Для запуска данной базы данных требуется Visual Fox Fox Pro 6 и операционную систему: Windows 98/ME/NT 4.0/2000/XP.

Основные объекты данной информационной системы:

· «Сведения о врачах» - содержит данные о врачах;

· «Сведения о пациенте» - содержит личные данные пациента;

· «Учет поступления, выписок» - содержит информацию о диагнозе и времени пребывания пациентов в больнице.

Связывание таблиц

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

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

Гораздо чаще встречается связь «один ко многим», при которой для каждой записи в одной таблице существует одна, несколько или ни одной записи в другой таблице.

Нередко приходится иметь дело также со связью «многие ко многим», при которой отсутствуют ограничения на множества пар записей, принадлежащих связи. Такая связь в Access не используется. Ее необходимо представить в виде двух связей «один ко многим».

С базе данных «Поликлиника» таблицы связаны друг с другом двумя связями «один ко многим».


Запросы

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

Таблица 3 «Функции и выполняемые операции»

Перечень запросов, применявшихся в данной базе данных приведен ниже.

Запрос «Врачи и их пациенты»

Запрос «Врачи и их пациенты» позволяет вывести фамилии врачей, работающих по данной медицинской специальности.

Запрос «Время пребывания в больнице»

Запрос «Время пребывания в больнице» позволяет узнать продолжительность нахождения пациента на стационарном лечении.

Запрос «Пациенты-женщины»

Запрос «Пациенты-женщины» отображает пациентов женского пола

Запрос «Пациенты, лежавшие неоднократно»

Запрос «Пациенты, лежавшие неоднократно» выводит пациентов, которые лежали в больнице более одного раза.

Запрос «Пациенты-пенсионеры»

Запрос «Пациенты-пенсионеры» отображает всех пациентов, достигших пенсионного возраста.

Запрос «Подбор специальности врача по диагнозу»

Запрос «Подбор специальности врача по диагнозу» позволяет, путем ввода диагноза при запуске запроса определить специализирующегося на данной болезни врача.

Формы

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

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

Любая форма строится на основе Access-таблицы или запроса. Имена полей извлекаются из спецификации таблицы, а поля в форме можно расположить по своему усмотрению. На основе одной таблицы можно построить несколько форм.

В Access 2007 существует несколько способов создания форм:

Таблица 4 Способы создания форм

Существует несколько разновидностей автоформ:

Форма - создание формы для ввода данных по одной записи за раз

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

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

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

Перечень форм, применявшихся в данной работе приведен ниже:

Форма «История болезни»

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

Главная кнопочная форма

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

Форма «Сведения о врачах»

Форма «Сведения о врачах» представлена в ленточном виде и показывает ФИО врача и его специальность.

Форма «Сведения о пациенте»

Форма «Сведения о пациенте» представляет собой ленточный тип формы, показывающей данные о пациенте.


Отчеты

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

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

Использование отчетов имеет следующие достоинства:

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

· отчет позволяет включать и печатать графические объекты (например, диаграммы);

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

Отчеты можно создавать двумя способами:

1) при помощи мастеров отчетов/автоотчетов;

2) «вручную».

Отчет «Врачи по специальности»

Отчет «Врачи по специальности» построен в виде макета «структура» с уровнем группировки по специальности врача и отображает всех врачей поликлиники по конкретной сепциальности.

Отчет «Пациенты-пенсионеры»

Отчет «Пациенты-пенсионеры» показывает всех пациентов пенсионного возраста.

Отчет «Учет поступления, выписок»

Отчет «Учет поступления, выписок» выполнен с уровнем группировки представления данных по ФИО пациента и позволяет просмотреть данные о диагнозах, поступлениях и выписках пациентов


Макросы

Удобно разрабатывать макросы для автоматизации несложных процессов, таких как открытие и закрытие форм и отчетов, вывод на экран или печать документов и т.д. Окно макросов включает четыре столбца: Имя макроса, Условие, Макрокоманда, Аргументы, Примечание.

При создании нового макроса по умолчанию отображается только столбцы Макрокоманда, Аргументы, Примечание. Показ остальных столбцов устанавливается посредством опций Имена макросов и Условия из меню Конструктор. В столбце Имя макроса указываются имя макроса, которое надлежит задавать, если окно содержит несколько макросов. В столбце Условие осуществляется ввод условия для выполнения только части макроса. В столбце Макрокоманда перечисляются подлежащие выполнению действия в нужной последовательности. Столбец Примечание содержит комментарий к программе и делает текст макроса понятнее.


ЗАКЛЮЧЕНИЕ

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

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


СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

1. Дейт К. Дж. Введение в системы баз данных / Пер. с англ. 6-е изд. К.:Диалектика, 1999.

2. Замулин А. В. Системы программирования баз данных и знаний. Новосибирск.: Наука. Сиб. Отд., 2002.

3. Мартин Дж. Организация баз данных в вычислительных системах. / Пер. с англ. М.: Мир, 2000.

4. Романов Б. Л., Кушниренко А. С. dBase IV. Назначение, функции, применение. М.: Радио и баз данных, 1999.

5. Ульман Дж. Основы систем баз данных. М.: Финансы и статистика, 2003.

6. Бородаев В. А., Кустов В. Н. Банки и базы данных. Уч. пособие. Л.: ВИКИ, 2000.

7. Кузнецов С. Д. Введение в СУБД: часть 4.// Системы Управления Базами Данных, №4, 1999. - С. 114-122.

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

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

Такой способ одно уровней адресации только для больших страниц 4мб используется только Ос, пользовательские приложения в такой в режиме не работают

Двухуровнивая адрессация. Для каждого приложения используется каталог страниц(Page Directory) и таблица страниц. В каталоге задаются адреса таблиц страниц. Весь адрес разделяется на 3 составляющие

А0 определяет смещения внутри страницы

А1 определяет номер строки в таблице строки(не более 1024 строк). Каждая такая строка должна содержать адрес начало страницы. Размер страниц также составляет 4кб, то есть одной странице.

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

А2 определяет номер строки в каталоге страниц,(не болие 1024) размер тоже 4кб. В памяти обезательно должен присуствовать каталог, причем ардес его управляещго храниться в регистре CR2.При объедение А0 и А2 можно получить значения смещения внутри страницы, но большего размера.

Трехуровневая страничная адресация. Адрес разделяется на 4 компонента

А3 А2 А1 А0

Размер самой таблицы остается по 4кб но размер строки увеличивается в 2 раза.

А3 определяет одной из 4 таблицы каталога. При 3уровней страничной адрессаци можно использовать большие страницы 2 мб обеднив А1 А0 . наличия или отсутствие конкретной памяти отслеживает сам процесс с помощью механизма прерывания. Памятть для кодов программа, данных выделяться по страничной адрес начала страницы кратен его длине, если какой-то участок данных находиться в конце страницы создаеться новая страниц. При разработке критичных по памяти, нужно знать размер страницы и выравнивать, адрес начала страницы в том числе страницы и каталога всегда кратны размеру страницы, и по этму в любой из расмотреном варианте младший 12 бит адреса страницы свободны. В таблице используют для хранения дополнительной информации о страницы. Дополнительная информация о странице позволяет задать: признак тирпа страницы для записи или чтения, признак присутствия страницы в памяти, уровень привилегий страницы, признак были изменения в данной страницы(необходимо для анализа целостобрастности в случае ее сброса записать на диск, устанавливаеться просором при доступае тсрнице в режиме записи а сбрасывается программным анализом) признак, имел ли место доступ к данной страницы, режимы использования кеша. При использовании больших таблиц и страниц, в строке каталога указываеться что он соответствует на таблице а большой таблице. На паратном уровне процессор позволяет коретно использовать страницы трьох размеров, задавать режими доступа и уровень привелегий. Если страница осуствует в памяти процесор генерирует исключения которое обрабатывает ОС.

Действия обработчика исключений:

1) Найти свободную страницу или осводить занятую если свободных нет

2) Загрузить страницу в память

3) Записать адрес в Page Table при необходимости выполнить необходимости …

4) Обновить страницы кэш-страниц

5) Возвратиться к команде обращения памяти которая вызвала обрабатываемо исключения.

Задание страничной адресации (5 шагов+управляушие регистры)

Стратегия загрузки и выгрузки страниц

При использования регулярно надо решать такие вопрсы:

1) Определять какие именно нужно удалить из памяти

2) определить какие страницы загружены

3) определить методы загрузки выгрузки страницы

Страницы удаляться из памяти если для них не хватает объёма реальной памяти. Страницы занятые ядром ОС не выгружаются. Для решения вопрос по выгрузке страницы используеться такие подходы:

1) Оптимальный алгоритм – для выгрузки страницы выбирается страницы в которой не было не одного обращения. Недосток 6 необходими хнать историю работы с каждой таблицы.

2) Алгоритм с предварительным анализом, анализируется страницы, которые должны вызываться в очередных командах активных процессов. Страницы которые должны использоваться далее из памяти не выгружаются. Недостатки: нужен анализ процесов для определения необходимых им страниц.

3) Случайный – выгружаемая таблица определяется случайно, при этом информация для использования их или далие, но не исключено что информация может далие использоваться

4) Хронологический – выгружаются из памяти именно в том порядке в котором они были загружены. Недостакти: таблица может понадобиться.

5) Хронологический порядок с учетом использования(List R..Using)1 – выгражеться страница которая не использовалась большое времяю для определния таких страниц формируеться не очередь а список использованых таблиц. Использована записываеться в конец такого сиска, для выгрузки выбераються страницы первые в этом списке. Недостаток: может выгружена страница необходимая на следушим шаге выполнения. Он найболие часто используется в современных ОС.

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

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

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

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

1) Увеличения объема физической памяти

2) Ограничения количества активных процессов

3) Сокращения необходимого объёма памяти выделяемого для процесса

4) Специальный алгоритмы выделения страниц.

Механизмы управление памяти

Для работы с памяти используется 3 основных механизмов

1. Виртуальная память для работы с большими объемами

2. Отображения файлов на памяти(нужна быстра обработка или произвольна я обработки а также создния памяти разделяемой между процессами)

3. «Кучи» - механизм выделения небольших объемов памяти для приложения

Использования виртуальной памяти – для выделения регоина памяти(большого объема памяти) служит функция

LPVOID VirtualAlloc(

LPVOID lpAdress,//начальный адрес выделяемого участка(выравнивается на границу 64кб, если памяти выравнивается то адрес должен выровнены на начало страницу, при первом выделения памяти имеет значени NULL)

DWORD lpSize,//размер выделяемого памяти в кб (регион), если первый параметр NULLто ббудет увеличин до границы страницы

DWORD flAllcocationType,//тип операции выделения(либо одиночный или комбинаций флагов) таблица бондаренко 6,1 атрибуты ехе не поддерживается

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

Сиситаема инициализировать и разервирует,при попытке доступа к таклой памяти, после завершения процеса ОС освобождает все закрепленые за ним страницы. Функция VirtualAllocможет заново связать. Физическую памяти связаную с конткретнвми страницами можно освободить с помощью функции vitualFree. Для долговреной ного хранения памяти лучше выделать в страницах адресах. В этом случае в адресе передаться NULL и устанавливается флаги MEM_RESERVE, MEM_TOP_DOWN/ для резервирования под регион рекомендубъю задавать атрибут защиты наиболее общий. Выделяя виртуальной память можно задавать все атрибуты защиты кроме тех которые предназначены связаны с физической памяти: PAGE_WRITECOPY, PAGE_EXECUTE_WRITECOPY, PAGE_GUARD, PAGE_NOCAСHE.

Можно выделить не весь участка физической памяти только часть. Если размер выделяемой памяти совппадет с размеор связаной памяти то можно не 2 раза вызывать функцию а задавать флаги MEM_COMMIT|MEM_RESERVE. ДЛЯ возвращения физической памяти используеться фугкци мшкгфдаккус параметром адрес начала памяти, размер участка и MEM_DECOMMIT, если размер указать размер 0 то освобождается вся память, если в памяти происходить обращния то происходить ошибка. Для освобождения траниц существует 3 варианта

1. Предполагает что одной записи соответствует одной страницы, удаления такой записи освобождает страницу

2. Создаться битовая карта занятых записи

3. В структуре можно добавить поле занятости в котором будет принимать истина или ложь

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

BOOL virtualProtect(

LPVOID lpAdress,//

DWORD flNewProtect,//новый атрибут защиты

DWORD lpflOldProtect//

Как правило вытеснения страниц вытесняется та которая долго не использовалась. Для блакирования траниц ыиспользуеться функция

LPVOID lpAdress,//

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

Бондаренко кучи(создании определения выделенной, полученияинобедения свобоныз блоков)

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

Возникает вопрос, где хранить страничные таблицы? Первое, что приходит на ум–в оперативной памяти. Однако, в этом случае любое обращение к ОЗУ превращается в два: первое обращение к таблице, второе–по физическому адресу за командой или данными. Производительность резко падает. Чтобы снизить потерю производительности часть страничной таблицы хранят в сверхоперативной памяти, называемой ассоциативный буфер быстрого преобразования адреса , буфер TLB (Translation Lookaside Buffer ) или адресный кэш. Обычно, это множественно-ассоциативный кэш, отличающийся от обычного тем, что информация хранится не блоками, а отдельными словами. Содержимое строки страничной таблицы называют дескриптор страницы, т.е. в строке TLB хранится один дескриптор. При поиске дескриптора страницы в ОЗУ номер виртуальной страницы используется как смещение, а при поиске в буфере TLB–в качестве тега.

Сегментно–страничная организация памяти

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

Недостатком такого подхода является то, что неодинаковый размер сегментов приводит к неэффективному использованию ОП. Так, если ОП заполнена, то при замещении одного из сегментов требуется вытеснить такой, размер которого не менее размера нового. При многократном повторе подобных действии в ОП остается множество свободных участков, недостаточных по размеру для загрузки полного сегмента. Решением проблемы служит сегментно-страничная организация памяти. В ней размер сегмента выбирается не произвольно, а задается кратным размеру страницы. Сегмент может содержать любое, но обязательно целое число страниц, даже если одна из страниц заполнена частично. Возникает определенная иерархия в организации доступа к данным, состоящая из трех ступеней: сегмент, страница, слово. Этой структуре соответствует иерархия таблиц, служащих для перевода виртуальных адресов в физические. В сегментной таблице перечисляются все сегменты данной программы с указанием начальных адресов страничных таблиц. Количество страничных таблиц равно числу сегментов и любая из них определяет расположение каждой из страниц сегмента в памяти, которые могут располагаться не подряд – часть страниц может находиться в ОП, а часть – во внешней. Структуру виртуального адреса и процесс преобразования его в физический адрес иллюстрирует рис. 14. Для получения физического адреса необходим доступ к сегментной и одной из страничных таблиц, поэтому преобразование адреса может занимать много времени. Снижают эти затраты времени применением ассоциативных буферов преобразования адресов (TLB). Поскольку количество сегментов одной программы невелико, сегментная таблица активной (выполняемой в данное время) программы целиком располагается в ассоциативном буфере, а сам буфер представляет собой полностью ассоциативную память.