Часть дисковой памяти используемая в качестве оперативной это
Память персонального компьютера подразделяется на внутреннюю и внешнюю.
Внутренняя память предназначена для временного хранения программ и обрабатываемых в текущий момент данных (оперативная память, кэш-память), а также для долговременного хранения информации о конфигурации ПК (энергонезависимая память). Все виды запоминающих устройств, расположенные на системной плате, образуют внутреннюю память ПК, к которой относится:
постоянная память (энергонезависимая).
Физической основой внутренней памяти являются электронные схемы (ПЗУ, ОЗУ), отличающиеся высоким быстродействием, но они не позволяют хранить большие объемы данных. Кроме этого, основная внутренняя память – оперативная – является энергозависимой, т.е. при отключении ПК от электросети ее содержимое стирается. Вследствие этого возникает необходимость в средствах длительного хранения больших объемов данных. В персональных компьютерах эта функция возложена на внешнюю память, которая по своим характеристикам в противоположность внутренней памяти, является медленной, энергонезависимой и практически неограниченной.
Внешняя память – это память, реализованная в виде внешних (относительно системной платы) устройств с разными принципами хранения информации и типами носителей, предназначенных для долговременного хранения данных. Устройства внешней памяти (накопители) могут размещаться как в системном блоке компьютера, так и в отдельных корпусах.
Накопитель представляет собой совокупность носителя данных и соответствующего привода. Различают накопители со сменными и постоянными носителями.
Привод – это объединение механизма чтения-записи с соответствующими электронными схемами управления. Его конструкция определяется принципом действия и видом носителя.
Носитель – это физическая среда хранения информации. По внешнему виду носитель информации может быть дисковым, ленточным или в виде электронной схемы. По способу хранения различают магнитные, оптические, магнитооптические и электронные носители. Ленточные носители могут быть только магнитными. В дисковых носителях используют магнитные, магнитооптические и оптические методы записи/считывания информации.
- Постоянное запоминающее устройство (ПЗУ). Содержит постоянные программы начального запуска компьютера.
- Оперативное запоминающее устройство (ОЗУ). Эта память имеет достаточно высокое быстродействие, чтобы взаимодействовать непосредственно с процессором, и допускает считывание и запись в него с любой требуемой частотой.
- Кэш-память. Быстродействующая система ОЗУ, предназначенная специально для хранения информации, которая, скорее всего, будет использована процессором.
Устройства ПЗУ хранят информацию постоянно и используются для хранения программ и данных, которые остаются неизменными. Устройства ОЗУ хранят сохраненную в них информацию до тех пор, пока электроэнергия подводится к ИС.
Любое прерывание в подаче электроэнергии приводит к исчезновению содержимого памяти. Такую память называют энергозависимой. И напротив, ПЗУ является энергонезависимой памятью.
1. В зависимости от возможности записи и перезаписи данных, устройства памяти подразделяются на следующие типы:
- память (ЗУ) с записью-считыванием (read/write memory) – тип памяти, дающей возможность пользователю помимо считывания данных производить их исходную запись, стирание и/или обновление. К этому виду могут быть отнесены оперативная память, а также ППЗУ;
- постоянная память, постоянное ЗУ, ПЗУ (Read Only Memory, ROM) - типа памяти (ЗУ), предназначенный для хранения и считывания данных, которые никогда не изменяются. Запись данных на ПЗУ производится в процессе его изготовления, поэтому пользователем изменяться не может. Наиболее распространены ПЗУ, выполненные на интегральных микросхемах (БИС, СБИС) и оптических (компакт-) дисках;
- программируемая постоянная память, программируемое ПЗУ, ППЗУ (PROM, Programmable Read-Only Memory) – постоянная память или ПЗУ, в которых возможна запись или смена данных путем воздействия на носитель информации электрическими, магнитными и/или электромагнитными (в том числе ультрафиолетовыми или другими) полями под управлением специальной программы. Различают ППЗУ с однократной записью и стираемые ППЗУ (EPROM, Erasable PROM), в том числе:
- электрически программируемое ПЗУ, ЭППЗУ (EAROM, Alterable Read Only Memory);
- электрически стираемое программируемое ПЗУ, ЭСПЗУ (EEPROMб, Electrically Erasable Programmable Read-Only Memory). К стираемым ППЗУ относятся микросхемы флэш-памяти, отличающиеся высокой скоростью доступа и возможностью быстрого стирания данных.
2. Виды памяти, различаемые по признаку зависимости сохранения записи при снятии электропитания:
- энергозависимая (не разрушаемая) память (ЗУ) (non-volatile storage) – память или ЗУ, записи в которых не стираются (не разрушаются) при снятии электропитания;
- динамическая память (dynamic storage) – разновидность энергозависимой полупроводниковой памяти, в которой хранимая информация с течением времени разрушается, поэтому для сохранения записей, необходимо производить их периодическое восстановление (регенерацию), которое выполняется под управлением специальных внешних схемных элементов.
3. Различия видов памяти по виду физического носителя и способа записи данных:
- акустическая память (acoustic storage) - вид памяти (ЗУ), использующий в качестве среды для записи и хранения данных замкнутые акустические линии задержки;
- голографическая память (holographic storage) – вид памяти (ЗУ), использующий в качестве среды для записи и хранения графической объемной (пространственной) информации голограмм;
- емкостная память (capacitor storage) – вид памяти (ЗУ), использующий в качестве среды для записи и хранения данных конденсаторы;
- криогенная память (cryogenic storage) – вид памяти (ЗУ), использующий в качестве среды для записи и хранения данных материалы, обладающие сверхпроводимостью;
- лазерная память (laser storage) – вид памяти (ЗУ), в котором запись и считывание данных производятся лучом лазера;
- магнитная память (magnetic storage) – вид памяти (ЗУ), использующий в качестве среды для записи и хранения данных магнитный материал. Наиболее широко использующимися устройствами реализации магнитной памяти в современных ЭВМ являются накопители на магнитных лентах (НМЛ), магнитных (жестких и гибких) дисках (НЖМД и НГМД);
- магнитооптическая память (magneto-optic storage) – вид памяти, использующий магнитный материал, запись данных на которые возможна только при нагреве до температуры Кюри, осуществляемом в точке записи лучом лазера;
- молекулярная память (molecular storage) – вид памяти, использующей технологию «атомной туннельной микроскопии», в соответствии с которой запись и считывание данных производится на молекулярном уровне. Носителями информации являются специальные виды пленок. Головки, считывающие данные, сканируют поверхность пленок. Их чувствительность позволяет определять наличие или отсутствие в молекулах отдельных атомов, на чем и основан принцип записи/считывания данных;
- полупроводниковая память (semiconductor storage) – вид памяти (ЗУ), использующий в качестве средств записи и хранения данных микроэлектронные интегральные схемы. Преимущественное применение этот вид памяти получил в постоянных запоминающих устройствах и, в частности, в качестве оперативной памяти ЭВМ, поскольку он характеризуется высоким быстродействием;
- электростатическая память (electrostatic storage) – вид памяти (ЗУ), в котором носителями данных являются накопленные заряды статического электричества на поверхности диэлектрика.
4. По назначению, организации памяти и/или доступа к ней различают следующие виды памяти:
- автономная память, автономное ЗУ (off-line storage) – вид памяти (ЗУ), не допускающий прямого доступа к ней а также управление центрального процессора: обращение к ней, а также управление ею производится вводом в систему специальных команд и через посредство оперативной памяти;
- адресуемая память (addressed memory) – вид памяти (ЗУ), к которой может непосредственно обращаться центральный процессор;
- ассоциативная память, ассоциативное ЗУ (АЗУ) (associative memory, content-addressable memory (CAM)) – вид памяти (ЗУ), в котором адресация осуществляется на основе содержания данных, а не их местоположения, чем обеспечивается ускорение поиска необходимых записей. С указанной целью поиск в ассоциативной памяти производится на основе определения содержания в той или иной ее области (ячейке памяти) слова, словосочетания, символа и т.п., являющихся поисковым признаком.
- буферная память, буферное ЗУ (buffer storage) – вид памяти (ЗУ), предназначенный для временного хранения данных при обмене ими между различными устройствами ЭВМ;
- виртуальная память (virtual memory): 1)способ организации памяти, в соответствии с которым часть внешней памяти ЭВМ используется для расширения ее внутренней (основной) памяти; 2) область памяти, предоставляемая отдельному пользователю или группе пользователей и состоящая из основной и внешней памяти ЭВМ, между которыми организован так называемый постраничный обмен данными;
- временная память (temporary storage) – специальное запоминающее устройство или часть оперативной памяти, резервируемые для хранения промежуточных результатов обработки;
- вспомогательная память (auxiliary storage) – часть памяти ЭВМ, охватывающая внешнюю и нарощенную оперативную память;
- вторичная память (secondary storage) – вид памяти, который в отличие от основной памяти имеет большее время доступа, основывается на большем обмене, характеризуется большим объемом и служит для разгрузки основной памяти;
- гибкая память (elastic storage) – вид памяти, позволяющей хранить переменное число данных, пересылать (выдавать) их в той же последовательности, в которой принимает и варьировать скорость вывода и т.п.
Сразу оговорюсь, что мне не нужен ram-disk, а нужно сделать так, чтобы SSD считался системой как некая планка(и) памяти ОЗУ. Вопрос про скорость и латентность не ставится.
То есть, я определяю на SSD некий файл или весь диск, который в системе считается как слот памяти.
Виртуальная (swap) память не подходит, поскольку является "прозрачной" или невидимой для ПО.
Для примера: есть 4ГБ реального ОЗУ и 128ГБ SSD. Хотелось бы получить часть SSD как ОЗУ для ВМ и в целом для программ. При желаемой схеме я могу предоставить до максимума для процессора (64ГБ), а не максимум доступной ОЗУ (4ГБ)
Рассмотрю все варианты, кроме варианта "купи ОЗУ и не свопь мозги".
Благодарю всех за разъяснение теории работы ОЗУ и страничной организации памяти.
Речь про чисто программный способ "подделки" памяти, чтобы можно было выделять для программ больше памяти, чем есть на борту. Пример с ВМ наглядный: ни одна из ВМ не позволит выделить больше памяти, чем есть ОЗУ, даже при наличии своп-файла в 16 раз больше.
На уровне ядра системы такое можно сделать. На уровне драйвера такое возможно сделать немного "матюком", и довольно затратно по-времени. А SWAP - как раз то что нужно, и что значит не видно, параметр Total paging file/ free pagin file. SSD всёравно во первых будет работать медленнее чем ОЗУ, во вторых оно не поддерживает DMA именно в том смысле в котором его поддерживает физическая память. Поэтому - делайте своп.
Виртуальная память = физическая память + своп. Поэтому лучшее решение - разместить своп в SSD. ОС сама следит за страницами, и переписывает память из свопа в физическую (а с SSD по-другому не выйдет), т.е. ваша задача уже давно решена и называется это своп, либо вы не совсем понимаете что есть своп, или вас он чем-то кардинально не устраивает.
Итог: SSD невозможно прилинковать как оперативку, ввиду наличия последовательно интерфейса и блочного доступа (нельзя прочесть 1 байт, нужно читать или писать весь блок кратно 512 байт) что замедлит быстродействие. В итоге, работа такого эмулятора будет на 99% похожа на работу page file (swap), ввиду этого, всеравно рекомендуем вам использовать swap. Теоретически написание такого ПО возможно, но практически будет много трудностей, таких которые сводят написание такого чуда к нулю. Фактически нужно найти алгоритм своп-файла и чуть переделать (для линукса да, винда - нет).
Это принципиально невозможно на уровне железа. Поэтому в любом случае вам придется выделять на уровне ядра ОС реальную RAM и мапировать в нее адреса SSD. Т.о. получится еще одно пространство виртуальной памяти.
1 ответ 1
Вам нужно использовать page file или swap. Попробую подробно обьяснить почему.
Вначале - какая вообще бывает память.
Реально для ОЗУ существует физически два интерфейса поддерживающих оперативную память, один DDR(RAM) разьем, второй PCI (или PCI-express) как живой пример - память видеокарты. Есть и другие устаревшие интерфейсы AGP PCMMCI не могу все перечислить, но они уже впрошлом.
Если ваш девайс физически не вставляется не в первый интерфейс не во второй - то физически ваше устройство не может быть непосредственно источником оперативной памяти т.к. не существует другого протокола обмена между ЦП и устройством чем вышеприведенные. Поэтому гипотетически можно "спаять" переходник. Правда. как PCI память сделать доступной ПК - это отдельный вопрос, на который я не могу однозначно ответить.
Интерфейс SATA и IDE не поддерживают прямой обмен оперативной памятью, поэтому его устройства не могу быть источниками оперативной памяти. UPD почитав интернет, я нашел PCIe SSD диски, их нельзя использовать как оперативку потому что в PCIe-SSD-диск вшита программа SATA, а не программа оперативной памяти. Можно ли вшить другую программу что б PCIe виделась как оперативная (очень медленная) память - это под вопросом. Теоретически можно поспорить, на практике не встречал, и убить SSD перепрошивкой - не весело.
Итак физическая оперативная память доступна через контроллер памяти между PCI и DDR-RAM всё.
SATA IDE USB устройства поддерживают DMA, но DMA является неполноценным доступом в память, а доступом в память через "посредника", т.е. надо сначала выставить счётчик адреса в регистр DMA, потом сказать устройству что оно может использовать DMA, а потом устройство может использовать DMA а может не использовать - там сложный метод обмена, который аппаратно кардинально отличается от оперативного доступа в память. Т.е. DMA не является оперативным доступом в память, оно даже не знает сколько памяти на устройстве, хоть и упрощает работу.
Програмы под Windows и Linux работают как правило с виртуальной памятью, это означает что память может быть оперативной, может быть дисковой (и SSD тоже) а может не быть вообще. Память программы разделена на блоки (минимум 4096 байт бывают больше), и в оперативной памяти находятся лишь те блоки, которые программа непосредственно сейчас использует. Остальные блоки могут быть как на диске, так и вообще не быть. При попытке доступа к виртуальной памяти которая неоперативная при определенный условиях память подменяется оперативной, т.е. ОС смотрит дисковая эта память или нет. Если память дисковая - ОС ищет кусок оперативной памяти, считывает с диска в оперативную память кусок, и память снова из дисковой становиться оперативной. Если свободного оперативного куска нет - ОС может сбросить кусок малоиспользуемой (вычисляется) памяти на диск, таким образом свободный кусок ОС всегда найдет.
Такой механизм называется swap, page file, файл подкачки. Т.е. объем виртуальной памяти это объем физической оперативной памяти + объем файла подкачки.
Ваш предложенный алгоритм очень похож на алгоритм описанный выше, но с той разницей, что вы не хотите программам ничего сообщать о наличии дисковой памяти. Не думаю что это хорошо, поскольку если "ядро" ОС попадёт на диск - то всё будет ужасно тормозить. В ОС идет разграничение какие участки можно сделать дисковой памятью, а какие нельзя. Теоретически такую программу создать можно. К сожалению, вам её никто не поможет делать, а на реализацию у вас уйдут годы, и надеюсь вы понимаете что пользы от такой программы много не будет.
Для такой цели обычно используют файл подкачки.
Вопрос Речь про чисто программный способ "подделки" памяти, чтобы можно было выделять для программ больше памяти, чем есть на борту Ответ- это можно, но не так как обычно. Очень желательно выделать память именно через VirtualAlloc, потому что штатный мененджер памяти будет в ступоре, он вероятнее всего не расчитан на такой объем. Выделать надо кратно размеру страницы памяти (что б узнать размер нужно вызвать GetSystemInfo и взять параметр dwAllocationGranularity). А дальше ОС сама распределит где у вас будет оперативная память, а где дисковая. Надо понимать, что в х86 это сделать нельзя в рамках одного процесса (т.к. теоретически макс объем виртуальной памяти 4Gb, а где-то половина из них зарезервирована под ОС и библиотеки, линейный свободный кусок ещё меньше половины), для x86-программ прийдется создать более одного процесса, и на каждый процесс можно выделить где-то по 1Gb (условно). Т.е. если вы хотите взять 64Gb то надо создать 64 процесса. Память можно читать с помощью ReadProcessMemory например. Некоторые web-браузеры создают много процессов, думаю для этой цели. Так же можно использовать AWE окно (но на практике только через админские права или службу).
Для x64 можно, быть может с одной особенность. Думаю что нельзя выделить огромный обьем одним куском. Зато можно выделить 64 раза по 1Gb (или больше) и именно через VirtualAlloc . Под линуксом не скажу точно как, но думаю аналогично. Пробуйте, будут ещё вопросы - спрашивайте.
Вопрос ни одна из ВМ не позволит выделить больше памяти, чем есть ОЗУ - Ответ позволяют ещё и как. Может не все программы, но часть программ точно могут "съесть" больше чем ОЗУ.
P.S. Не забываем, что файл подкачки не обязательно должен быть файлом. Под линуксом можно выделить в партиции раздел под подкачку, и тогда определенная часть диска будет задействована под файл подкачки, и за счёт отсутствия файловой системы на этой части - работа будет быстрее.
UDP: RAM-Диск. Появились RAM-диски, на них можно записывать информацию, но информация с них теряется после выключения питания. Например Gigabyte i-RAM (GC-RAMDISK) в PCIe широкий разьём. Вероятно они хорошо подходят для файлов подкачки или темповых папок. Туда вставляется оперативка, но используется она как диск, т.е. наоборот чем в вопросе - память используется как диск.
Ещё замечу, PCIe v 1.0 можно сделать на микроконтроллере, v2.0 условно можно сделать на микроконтроллере.
О PCIe. Скорость 2.5GT/s до 10.0GT/s(8 линий) для PCIe1.0 возможна на частоте 250Мhz. Для 99% логики и микроконтроллеов это потолок (при условии что логика распаралеливает сигнал, еденицы МС потянут 250Мhz (D-триггеры есть на 350 МHz у TI)). Для реализации скоростей выше нужно использовать дорогие ПЛИС, которые к тому же нужно уметь программировать и паять. Извесных ПЛИС на которые есть документация - не более 10-20 штук (не учитывая разделение на серии), плюс ещё в документации что-то пишут о лицензии на PCIe. Поэтому самому "пощупать" PCIe 2.0+ не получится, и PCIe будет развиваться исключительно у компаний которые могут себе позволить изготавливать чипы самостоятельно, или хотя бы могут программировать ПЛИС, т.е. новинок PCIe от обычных белых людей можно не ждать, нам туда дорога пока что закрыта. Разве что какие-то отдельные энтузиасты могут освоить ПЛИС. Переходников или PCI-phy-layer микросхем для PCIE почему то до сих пор нету и наверно не будет т.к. даная область вероятно не востребована.
Если оперативной памяти вашего компьютера недостаточно, это повлияет как на производительность, так и на скорость. В это критическое время необходимо срочно увеличить виртуальную память. В Windows 10 вам разрешено использовать жесткий диск в качестве оперативной памяти. Итак, я покажу вам, как увеличить оперативную память с помощью жесткого диска в Windows 10.
Учебник по использованию жесткого диска в качестве ОЗУ в Windows 10
Процесс настройки виртуальной памяти в Windows 10 можно условно разделить на два этапа: определение необходимого объема виртуальной памяти и настройка виртуальной памяти.
Этап 1: определение необходимой виртуальной памяти
Нет точного ответа, какой объем виртуальной памяти является лучшим выбором. Таким образом, объем виртуальной памяти в основном зависит от ваших реальных потребностей.
- Сколько у вас оперативной памяти
- Сколько вы обычно используете
Если вы не уверены в этом, вам нужно сначала проверить.
Первый способ:
Откройте все программы и приложения, которые вы обычно используете, одновременно; если вы обнаружите, что ваша система стала медленной или нестабильной, это означает, что требуется больше виртуальной памяти.
Второй способ: как протестировать с помощью диспетчера задач.
- Откройте диспетчер задач, нажав Ctrl + Alt + Del или печатая Диспетчер задач в поиск Windows и щелкните это настольное приложение в результатах поиска.
- Перейти к Спектакль вкладка, а затем выберите объем памяти из левой панели.
- Взгляните на значение под Совершено (который является общим объемом вашей оперативной и виртуальной памяти). Число слева показывает, сколько используется, а число справа - насколько доступно максимум. Если левое число близко к правому, вам необходимо увеличить виртуальную память.
Этап 2: Настройка ОЗУ с помощью жесткого диска
12 шагов по настройке виртуальной ОЗУ в Windows 10.
- Активируйте окно поиска, щелкнув его на панели задач или нажав Win + R в клавиатуре.
- Введите панель управления в поле поиска и нажмите кнопку Панель управления настольное приложение из результата.
- Нажмите на Система и безопасность в главном окне Панели управления.
- Нажми на Система на странице 'Система и безопасность'. Теперь вы можете четко видеть, сколько у вас оперативной памяти и сколько ее можно использовать.
- Нажми на Расширенные системные настройки с левой стороны.
- Убедитесь, что вы остаетесь в Продвинутый таб.
- Теперь нажмите на Настройки в области производительности.
- Перейти к Продвинутый
- Нажми на Изменить… кнопку в правом нижнем углу.
- Теперь вы можете позволить Windows Автоматическиуправлять размером файла подкачки для всех дисков или введите точное значение в текстовые поля после Начальный размер и Максимальный размер .
- Нажми на Хорошо во всех открывающихся окнах для подтверждения.
- Нажми на Перезагрузить сейчас в окне подсказки, чтобы применить эти изменения.
Это точно говорит о том, как увеличить оперативную память с помощью жесткого диска в Windows 10.
1. Отметьте все виды памяти, в которых возможен доступ к отдельным ячейкам памяти по их адресам. (несколько вариантов ответа)
оперативная память
постоянная память
память на жестких дисках
память на флэш-дисках
память на лазерных дисках
2. Отметьте все правильные утверждения об оперативной памяти. (несколько вариантов ответа)
статическая оперативная память строится на триггерах
динамическая оперативная память работает быстрее статической
динамическая оперативная память дешевле статической
данные в динамической оперативной памяти нужно часто восстанавливать
основная часть ОЗУ — память статического типа
3. Какие программы обычно хранятся в ПЗУ современных персональных компьютеров? (несколько вариантов ответа)
для тестирования компьютера
для обмена данным со стандартными внешними устройствами
для начальной загрузки компьютера
программы пользователя
операционная система
4.Как называется регистр контроллера, к которому процессор может обратиться по номеру?
5. Отметьте все правильные утверждения о внешней памяти.
возможен доступ к любой ячейке по адресу
можно читать и записывать только целый блок ячеек
включает носитель информации и контроллер
более быстродействующая, чем внутренняя память
имеет больший объём, чем внутренняя память
6. В каких типах памяти данные организованы в виде некоторой файловой системы? (несколько вариантов ответа)
внутренняя память
внешняя память
оперативная память
постоянная память
7. Отметьте все правильные утверждения о кэш-памяти. (несколько вариантов ответа)
это статическая память
обращение к данным выполняется по адресу ячейки
целиком входит в состав процессора
управляется контроллером
существуют отдельные области для программ и данных
1. Оперативная память, постоянная память.
2. Статическая оперативная память строится на триггерах, динамическая оперативная память дешевле статической, данные в динамической оперативной памяти нужно часто восстанавливать.
3. Для тестирования компьютера, для обмена данным со стандартными внешними устройствами, для начальной загрузки компьютера.
4. Порт.
5. Можно читать и записывать только целый блок ячеек, включает носитель информации и контроллер, имеет больший объём, чем внутренняя память.
6. Внешняя память.
7. Это статическая память, управляется контроллером, существуют отдельные области для программ и данных.
Довольно забавно что вы решили ответить на этот вопрос, ещё интересно почему он задан "месяц назад", да и школу я уже закончил..
Система управления памятью должна обеспечить многопрограммный режим работы, используя аппаратные средства распределения оперативной памяти.
Существует два способа распределения памяти : статический и динамический.
При работе в многопрограммном режиме и статическом распределении оперативной памяти выделяется определенная область фиксированной памяти независимо от требований задачи.
При статическом распределении памяти используется статическая адресация, т.е. используется базовый адрес и смещение. При каждой загрузке программы ей назначается базовый адрес в области оперативной памяти.
При динамическом распределении оперативной памяти - выделяется необходимый объем памяти по запросу с учетом потребности задачи. Параллельность процессов обмена и обработки данных приводит к тому, что к оперативной памяти может обращаться несколько устройств (или программ) одновременно, потому требуется организовать очередь обслуживания и использовать концепцию виртуальной памяти. Один из компонентов ядра операционной системы - диспетчер памяти - организует трансляцию виртуальных адресов, используемых программами и другими компонентами ядра, в реальные адреса физической памяти.
Организация виртуальной памяти
Виртуальная память (Virtual Memory) представляет собой программно-аппаратное средство расширения пространства памяти, предоставляемой программе в качестве оперативной. Эта память физически реализуется в оперативной и дисковой памяти под управлением соответствующей операционной системы. Требуется так организовать работу процессора с дисковой памяти, чтобы возникала иллюзия работы только с оперативной памятью.
Виртуальное пространство памяти разбито на страницы фиксированного размера, а в физической оперативной памяти в каждый момент времени присутствует только часть из них. Остальные страницы хранятся на диске, откуда операционная система может "подкачать" их в физическую память, предварительно выгрузив на диск часть неиспользуемых в данный момент модифицированных страниц. Обращение процессора к ячейке виртуальной памяти, присутствующей в физической памяти, происходит обычным способом. Если же затребованная область в данный момент не отображена в физической памяти, процессор вырабатывает исключение (внутреннее прерывание), по которому операционная система программно организует замещение страниц, называемое свопингом (Swapping). Виртуальную память поддерживают процессоры, работающие в защищенном режиме, начиная с 80286, но реально ее широко стали использовать только в операционных системах и оболочках для 32-разрядных процессоров (80386 и далее). Максимальный объем виртуальной памяти определяется размером файла подкачки (Swap File), выделяемом на жестком диске для нужд виртуальной памяти.
Общепринятая в настоящее время концепция виртуальной памяти появилась в те далекие времена, когда вычислительные системы, научившись выполнять одну программу стали переходить на новый режим работы - работу в многозадачном (мультипрограммном) режиме. Концепция виртуальной памяти позволила решить целый ряд актуальных вопросов организации вычислений.
Встал вопрос о том, как разделить между разными задачами небольшой объем оперативной памяти, чтобы каждая задача выполнялась также, как она выполнялась бы в однопрограммном режиме и как управлять при этом распределением памяти.
К этому времени у программистов уже накопился опыт выполнения задач, программный код которых не помещался в слишком маленькую оперативную память.
Программистам пришлось делить такие программы на части и затем выполнять части программы независимо, организуя оверлейные структуры, которые загружались в основную память и выгружались из нее под управлением программы пользователя.
Система организации виртуальной памяти освободила программистов от этой работы. Она автоматически управляет обменом между двумя уровнями иерархии памяти: основной памятью и внешней (дисковой) памятью.
В многопрограммном режиме работы компьютер выполняет множество задач, каждой из которых отводится свое адресное пространство в оперативной памяти. Поэтому необходим механизм разделения небольшой физической памяти между различными задачами. Виртуальная память делит физическую память на блоки и распределяет их между различными задачами. При этом обеспечивается иллюзия того, что каждая задача и в самом деле исполняется на машине с огромным количеством реальной оперативной памяти.
Системы виртуальной памяти можно разделить на два класса: системы с фиксированным размером блоков, называемых страницами, и системы с переменным размером блоков, называемых сегментами.
Очевидно, что для реализации возможности автоматического выделения памяти каждой задаче в процессе ее выполнения (динамически), необходимо обеспечить эту возможность аппаратно. Для того, чтобы программа могла действительно воспользоваться виртуальной памятью (иллюзией очень большого количества реальной оперативной памяти) требуется еще и поддержка программного обеспечения. Задача управления виртуальной памятью возлагается на операционную систему. Различные операционные системы по разному решают вопросы управления памятью. Попробуем получить общее представление о работе виртуальной памяти.
Механизмы управления памятью решают две главные задачи:
- Трансляцию виртуального адресного пространства процесса на физическую память. Это позволяет ссылаться на конкретные адреса физической памяти потокам процесса, работающим в виртуальном адресном пространстве.
- Подкачку части содержимого памяти с диска, когда потоки пытаются задействовать больший объем физической памяти, чем тот, который имеется в наличии, и выгрузку страниц обратно по мере необходимости.
Страничный механизм является составной частью системы виртуальной памяти.
Страничное преобразование позволяет сохранить линейность адресов для прикладных программ, несмотря на то, что их работающие страницы располагаются в оперативной памяти в произвольном порядке. Программы работают со своим адресным пространством, так словно у каждой из них есть своя собственная линейно адресуемая оперативная память.
Применительно к виртуальной памяти различают три адресных пространства: логическое, линейное и физическое.
Рис.1. Отражение страниц дискового пространства
на пространство оперативной памяти.
В случае динамического распределения памяти (по запросу программы), адрес содержит номер виртуальной страницы и номер слова в странице. Для защиты памяти от записи и чтения другими процессами необходима соответствующая схема трансляции адреса, которая разрешает доступ к данной области памяти только определенной задаче.
Соответствие между физическим положением данных в памяти и адресом существует только для основной (оперативной) памяти, виртуальная память использует всю иерархическую структуру памяти как непрерывно адресуемую.
Для переадресации используется глобальная ( GDT) и локальная (LDТ) таблицы переадресации.
Причины использования жесткого диска в качестве ОЗУ в Windows 10
В Windows 10 можно позволить части жесткого диска работать так же, как ОЗУ (оперативная память). Что такое оперативная память? Он также известен как виртуальная память что имеет решающее значение для стабильности системы. Добавив оперативную память, вы сможете повысить производительность своего ПК.
Теперь вопрос - как использовать жесткий диск в качестве ОЗУ в Windows 10 . Я предлагаю вам руководство с подробными инструкциями по увеличению виртуальной памяти Windows 10, чтобы еще больше повысить производительность компьютера.
Читайте также: