подсистемы памяти и хранения данных

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

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

  • внутренняя память — электронная (полупроводниковая) память, устанавливаемая на системной плате или на платах расширения;

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

Для процессора непосредственно доступной является внутренняя память, доступ к которой осуществляется по адресу, заданному программой. Для внутренней памяти характерен одномерный (линейный) адрес, который представляет собой одно двоичное число определенной разрядности. Внутренняя память подразделяется на оперативную, информация в которой может изменяться процессором в любой момент времени, и постоянную, информацию которой процессор может только считывать. Обращение к ячейкам оперативной памяти может происходить в любом порядке, причем как по чтению, так и по записи, поэтому оперативную память называют памятью с произвольным доступом — Random Access Memory (RAM) — в отличие от постоянной памяти (Read Only Memory, ROM).

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

Ниже перечислены наиболее важные параметры подсистемы памяти.

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

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

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

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

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

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

Однако реальная жизнь многообразнее этой упрощенной схемы, и на практике дисковая и оперативная память переплетаются сложным образом. Главный недостаток дисковой памяти — большое время доступа и низкая скорость обмена — устраняется с помощью виртуального диска, представляющего собой своеобразно используемую область оперативной памяти. В этой области хранятся файлы, и с точки зрения операционной системы (и, тем более, прикладной программы) она выглядит как обычный, но очень быстрый диск. Конечно же, его объем ограничен, и этот объем вычитается из объема физически установленной памяти, доступной процессору в качестве обычной оперативной. Кроме того, виртуальный диск в отличие от реального не является энергонезависимым. Более того, информация на нем не переживет даже перезагрузки операционной системы. Однако, несмотря на эти ограничения, виртуальный диск во многих случаях может повысить эффективность работы компьютера при интенсивном дисковом обмене. В операционной системе виртуальный диск реализуется загрузкой программного драйвера, как правило, с именем RAMDRIVE.SYS (в некоторых версиях — VDISK.SYS). Другим способом решения проблем быстродействия дисковой памяти за счет оперативной является -кэширование дисков — хранение образов последних из использованных блоков дисковой памяти в оперативной в надежде на то, что к ним вскоре будет следующий запрос, который удастся удовлетворить из памяти. В Windows 9x/NT кэширование возложено на операционную систему, в MS-DOS кэшированием дисков занимается загружаемый драйвер SMARTDRV.EXE, но даже и без этого драйвера «неглубокое» кэширование выполняет операционная система (ОС), и этим процессом можно управлять с помощью строки BUFFERS«xxx файла CONFIG.SYS. Если затребованный блок с диска уже находится в одном из буферов, ОС не будет «беспокоить» диск, а удовлетворит запрос из буфера. Чем больше параметр ххх, тем больше блоков может держать ОС в оперативной памяти, но область памяти для буферов, естественно, уменьшает объем памяти, доступной программам.

Основной недостаток оперативной памяти заключается в том, что конструктивно достижимый ее объем во много раз меньше, чем дисковой (пока что это было справедливо на всех ступенях технического прогресса). Решить проблему увеличения объема оперативной памяти за счет дисковой позволяет виртуальная память, которую можно считать кэшированием оперативной памяти на диске. Суть ее заключается в том, что программам предоставляется виртуальное пространство оперативной памяти, по размерам превышающее объем физически установленной оперативной памяти. Это виртуальное пространство разбито на страницы фиксированного размера, а в физической оперативной памяти в каждый момент времени присутствует только часть из них. Остальные страницы хранятся на диске, откуда операционная система может их «подкачать» в физическую память на место предварительно выгруженных на диск страниц. Процесс замещения страниц называется свопингом (swaping), а области дисковой памяти, выделяемые для этих целей, — файлами подкачки или своп-файлами (swap file). Для прикладной программы этот процесс прозрачен (если только она не критична ко времени обращения к памяти). Для пользователя этот процесс заметен по работе диска в те моменты, когда не требуется обращение к файлам. Расплатой за почти безмерное увеличение объема доступной оперативной памяти является снижение средней производительности памяти и некоторый расход дисковой памяти на файл подкачки. Естественно, размер виртуальной памяти не может превышать суммы размеров ОЗУ и дисковой памяти. Виртуальная память реализуется операционными системами (и оболочками) защищенного режима (например, OS/2, MS Windows) на основе аппаратных средств процессоров класса не ниже 286, а наиболее эффективно — 32-разрядных процессоров 386 и выше.

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

 
   



Rambler's Top100 Яндекс цитирования Рассылка 'Новости сайта Yanakayevs.Narod.Ru'

Hosted by uCoz