Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава 4, Модели оперативной памяти.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
78.85 Кб
Скачать

Операции над объектами в оперативной памяти

Это:

чтение;

запись;

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

Выводы

Оперативная память состоит из N одинаковых ячеек размером 1 байт. Каждая ячейка адресуется числом от 0 до N – 1.

Размер N = 2n определяется числом разрядов целочисленных регистров общего назначения (РОН). Максимальный размер адресуемой оперативной памяти составляет: при n = 32 - 4Г байт, при n = 64 - 264 байт.

В байте самый первый (0-й) разряд старший, 7-й разряд – младший.

Составные единицы данных могут быть 2-х, 4-х, 8-ми, 16-ти и т.д. байтными (2i байтными, где i = 1, 2, 3, 4, 5, 6..).

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

Байты составной единицы данных могут располагаться в оперативной памяти двояким образом, начиная с младшего байта (8 младших разрядов данных) или со старшего байта (0-й – 7-й разряды данных).

В архитектуре процессоров фирм Intel, AMD и их развитии принят первый порядок расположения байтов – первым идет младший байт.

Операции, выполняемые с оперативной памятью:

чтение содержимого одной ячейки памяти (чтение байта);

чтение содержимого последовательности ячеек памяти (2,4,8,16,32, 64 ячейки) – чтение последовательности байтов:

запись содержимого в одну ячейку памяти (запись байта);

запись содержимого в последовательность ячеек памяти (2,4,8,16,32, 64 ячейки) – запись последовательности байтов.

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

Модель оперативной памяти с точки зрения операционной системы

Основные функции операционной системы:

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

эффективно распоряжаться ресурсами компьютера.

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

Для программиста оперативная память это хранилище объектов размером 2i байтов (i=1, 2, 3, 4, 5 и т.д.). В варианте (все объекты хранения размером в 1 байт) и объеме оперативной памяти N=232 объектов в распоряжении операционной системы находится N=232 объектов. Каждый объект находится на учете.

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

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

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

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

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

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

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

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

Сегодня при объемах оперативной памяти в 4Г (и более) байт для многих компьютеров в операционных системах также используется размер блока (страницы) 4К байт. При оперативной памяти в 4Г байт в распоряжении операционной системы находится 1 миллион страниц. Величина достаточно большая.

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

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

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

Имеются возможности распределять оперативную память страницами, например, 16М байт. В аппаратуре универсальных процессоров с архитектурой IA-32/64 такие возможности реализованы. Используются они или нет – это зависит от конкретной операционной системы.

Итак, операционная система видит оперативную память как хранилище объектов, каждый из которых имеет размер 4iК байт (где i=1,2 или значительно большее целое число).

Операционная система распределяет оперативную память страницами. Часто размер страницы равен 4 Кбайт.

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