Описание тега virtual-memory

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

Память программ Windows и память программ Linux

Linux создает страницы виртуальной памяти для каждой используемой программы, а ОС обрабатывает сопоставление виртуальных адресов с подлинными аппаратными адресами, верно? Но как Windows это делает? Действительно ли программы Windows имеют память, ко…
10 дек '15 в 19:01
1 ответ

Таблица страниц: ошибка страницы

У меня есть несколько вопросов, касающихся таблиц страниц, особенно когда происходит сбой страницы. Я понимаю, что сбой страницы происходит, когда ЦП требует страницу, но ее нет в ОЗУ, и ее нужно извлечь из пространства подкачки. Таблица страниц исп…
20 ноя '16 в 14:23
2 ответа

Может ли JVM автоматически использовать больше пространства подкачки для предотвращения ошибок нехватки памяти

Как указано в разделе Общие сведения о распределении памяти JVM и нехватке памяти Java: пространство кучи, при выделении пространства кучи JVM не различает физическую и виртуальную память. Когда начинает выделяться память для Java-объектов и вычисле…
17 июн '16 в 20:51
1 ответ

Стратегия системного вызова Linux через страницу vsyscall

Я читаю об управлении виртуальными машинами в Linux. По-видимому, для выполнения системного вызова есть страница 0xFFFFF000 на x86. называется vsyscall page. В прошлом стратегия вызова системного вызова заключалась в использовании int 0x80. Эта стра…
21 май '14 в 14:14
1 ответ

Какой объем виртуальной памяти занимает куча 30,5 ГБ (всего 256 ГБ) для поддержки Elasticsearch?

Предположим, у меня есть машина с 256 ГБ памяти и 12 ТБ SSD. Индексированный размер документа составляет 100 ТБ. Я назначаю 30,5 ГБ к куче Elasticsearch. Остальное для Lucene и OS. У меня вопрос, сколько виртуальной памяти поддерживает Elasticsearch…
12 янв '16 в 23:33
1 ответ

kweb3 projeckktor raspberry pi утечка памяти

Я использую Kweb3 в режиме киоска с projekktor на Raspberry Pi для воспроизведения видео html5 mp4 видео. Когда я играю 5-6 файлов, он продолжает увеличивать виртуальную память и, следовательно, достигает 500 МБ, браузер начинает показывать загрузчи…
0 ответов

Неправильные указатели при попытке выделить страницы в виртуальном адресном пространстве ядра

Я работаю над драйвером Linux для x86-64 CentOS 7. У нас есть модуль ядра, который читает и записывает в файлы. Этот модуль пытается получить страницы, которые гарантированно будут смежными. Работает нормально когда пытаюсь поменьше read/write рабоч…
26 апр '17 в 04:09
1 ответ

Алгоритм рабочего набора и виртуальная память

Алгоритм рабочего набора: есть 2 процесса, каждый из которых имеет свое собственное окно рабочего набора. Согласно теории, в этом окне хранятся самые последние страницы, запрошенные процессом. Моя проблема заключается в следующем: когда страница дол…
22 авг '16 в 14:42
2 ответа

Обход всех физических страниц процесса

В модуле ядра (2.6.32-358.el6.x86_64) я хотел бы распечатать все физические адреса, которые отображаются в виртуальной памяти процесса. Дано task->mmЯ пытаюсь пройти процесс " struct pageэто следующим образом: int i, j, k, l; for (i = 0; i < P…
1 ответ

Как понимать виртуальную память?

Как понять предложение мы можем обобщить и разрешить каждому объекту данных иметь несколько независимых адресов, каждый из которых выбирается из своего разного адреса. Это основная идея виртуальной памяти (《CSAPP》) почему не объект данных имеет уник…
25 апр '13 в 16:37
3 ответа

Отображенный в память файл std::allocator при замораживании устройства WM6

У меня есть проект Visual Studio 2008 C++ для Windows Mobile 6.x, где мне нужно больше памяти, чем доступно для меня в слоте для процесса 32 МБ. Итак, я смотрю на использование файлов с отображенной памятью. Я создал стандартную реализацию распредел…
1 ответ

Разница между последовательной и случайной записью

В чем разница между последовательной и случайной записью в случае:- 1) дисковых систем 2) систем на основе SSD [флэш-устройств] Когда приложение записывает что-то и информация / данные должны быть изменены на диске, тогда как мы узнаем, является ли …
3 ответа

Состояние виртуальной памяти потока

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

Получить модуль владельца по адресу памяти

Я перебираю свою память процесса с помощью VirtualQuery, я хотел бы знать, кому принадлежит определенный диапазон памяти. Либо исполняемый файл, либо какой-нибудь другой dll, и получите его имя. Есть ли способ, которым я могу узнать?
16 июл '14 в 10:28
4 ответа

Почему 16-битный адрес с 12-битным смещением приводит к размеру страницы 4 КБ?

Я читаю книгу "Современная операционная система". И я запутался насчет "Размер страницы". В книге автор говорит: Входящий 16-битный виртуальный адрес разбивается на 4-битный номер страницы и 12-битное смещение. С 4 битами для номера страницы мы може…
1 ответ

Как системы Unix отслеживают разделяемую память, когда процессы fork()?

Процесс A создает область общей памяти и делит ее с процессом B. Затем Процесс A разветвляется и тем самым создает Процесс C. По определению, C теперь имеет доступ к тем же областям общей памяти. Если A умирает, C и B по- прежнему имеют доступ к обл…
2 ответа

Как выделить NSObject на своей странице виртуальной памяти в iOS?

Я хочу выделить NSObject на свою страницу виртуальной памяти. Это возможно? Это кажется тривиальным, если бы мы все еще могли использовать NSZoneс, но они устарели. Я пытался с помощью NSZoneFromPointer, но это всегда возвращалось nil, Согласно сове…
2 ответа

Почему текстовые секции программы Linux начинаются с 0x0804800, а вершины стека начинаются с 0xbffffff?

В соответствии с Руководством по сборке для хакеров (часть 2) Организация виртуальной памяти, программа для Linux .text разделы начинаются с 0x0804800 и вершины стека начинаются в 0xbffffff, Какое значение имеют эти цифры? Почему бы не начать .text …
10 фев '13 в 05:58
1 ответ

Компиляция с ограничением виртуальной памяти в g++ 4.7.1?

Я компилирую некоторый код, который активно использует шаблоны (он основан на фреймворке boost::msm). При компиляции с g++ 4.7.1 процесс cc1plus достигает около 2,4 ГБ объема ОЗУ, а затем завершается с ошибкой "Исчерпана виртуальная память: невозмож…
29 авг '13 в 08:55
1 ответ

LoadLibrary() завершается с ошибкой 8 (ERROR_NOT_ENOUGH_MEMORY)

Позже редактирование: после дополнительных исследований, обновления Windows и OpenGL DLL были красными сельдями. Причиной этих симптомов была LoadLibrary() сбой вызова с GetLastError() == ERROR_NOT_ENOUGH_MEMORY, Смотрите мой ответ о том, как решить…