2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки





Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 Re: Парадокс потребления памяти виртуальной машиной
Сообщение15.05.2017, 16:16 
Аватара пользователя


11/06/12
6828
Минск
Нет и не должна. Но это нелогично: использовать только малую часть выделенной оперативной памяти хоста, а для остального использовать жёсткий диск хоста. Это должно сильно замедлять работу (чего я не замечаю) вплоть до заметного «шур-шур-шур» HDD, чего тоже не замечаю.

 Профиль  
                  
 
 Re: Парадокс потребления памяти виртуальной машиной
Сообщение16.05.2017, 12:54 
Аватара пользователя


07/02/12
992
Питер
В современных ОС с точностью до коэфициентов приоритизации, других мелочей и используемого API, на уровне приложений нет различия между работой с файлами и выделенной памятью.

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

Более того, само выделение памяти - это всего лишь обозначивание намерения ее использовать. Как и создание файла или загрузка exe/dll, впрочем.

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

 Профиль  
                  
 
 Re: Парадокс потребления памяти виртуальной машиной
Сообщение17.05.2017, 23:38 
Аватара пользователя


11/06/12
6828
Минск
Я более-менее понимаю все эти абстракции, но говорил совершенно не об этом, а о разнице в скорости работы между случаями, когда используется физическая RAM и физический HDD.

 Профиль  
                  
 
 Re: Парадокс потребления памяти виртуальной машиной
Сообщение18.05.2017, 01:28 
Аватара пользователя


07/02/12
992
Питер
Aritaborian в сообщении #1217044 писал(а):
Я более-менее понимаю все эти абстракции
Учитывая вышесказанное и вообще существование данной темы, думаю, все-таки скорее менее, чем более.

 Профиль  
                  
 
 Re: Парадокс потребления памяти виртуальной машиной
Сообщение18.05.2017, 12:01 
Аватара пользователя


11/06/12
6828
Минск
Пусть так; готов признать, что скорее Осло, чем Копенгаген. Учитывая существование данной темы ;-) Но и вы, plz, не юродствуйте, а ответьте, в чём именно я неправ.

 Профиль  
                  
 
 Re: Парадокс потребления памяти виртуальной машиной
Сообщение18.05.2017, 19:39 
Аватара пользователя


07/02/12
992
Питер
На мой взгляд, тут изложен ответ на первое сообщение данной темы. Затем вы ушли не туда, вот это, в частности, заблуждение.

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

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

 Профиль  
                  
 
 Re: Парадокс потребления памяти виртуальной машиной
Сообщение19.05.2017, 11:32 
Аватара пользователя


11/06/12
6828
Минск
Мне казалось, что я уже неоднократно всё сформулировал и переформулировывал ;-( Что ж, попробую снова.
Априори считаем, что оперативная память в разы, а то и на порядки быстрее жёсткого диска, и использовать нужно в первую очередь её, пока есть такая возможность. А виртуальная машина под управлением Oracle VM VirtualBox не желает, как мне кажется, использовать всю выделенную ей оперативку хоста (но при запуске резервирует: i. e., не запускается, если в момент запуска нет свободного объёма RAM, большего или равного чем тот, что выделен ей в настройках). Или всё же использует, но это по непонятным причинам не отражается адекватно в диспетчере задач хоста. Вопрос: что за фигня?

 Профиль  
                  
 
 Re: Парадокс потребления памяти виртуальной машиной
Сообщение19.05.2017, 13:13 
Аватара пользователя


07/02/12
992
Питер
Что ж, попробую еще раз. Если упрощенно, то так:
1) Виртуальная машина создает файл-образ, соответвующий объему "физической" памяти эмулируемой машины.
2) Виртуальная машина использует File Map для отображения этого файла-образа в свое адресное пространство.
3) Виртуальная машина не контролирует, какая часть этого образа находится в физической памяти машины-хоста, а какая лишь зарезервирована (или уже сброшена) на диске в файле-образе. Этим занимается операционная система машины-хоста на свое усмотрение.
4) При запуске виртуальная машина лишь делает проверку на соответствие объему свободной памяти машины-хоста объему "физической" памяти эмулируемой машины, во избежание возможных диких тормозов. Что такое эта свободная память на самом деле - отдельный разговор.

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

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

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

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

 Профиль  
                  
 
 Re: Парадокс потребления памяти виртуальной машиной
Сообщение19.05.2017, 13:24 
Аватара пользователя


11/06/12
6828
Минск
Спасибо.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу Пред.  1, 2

Модераторы: Toucan, maxal, Karan, PAV, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group