|
|
|
|
|
для: Mookapek
(23.12.2007 в 23:24)
| | RAM (+ файл подкачки) | |
|
|
|
|
|
|
|
для: Unkind
(23.12.2007 в 23:46)
| | а что такое файл подкачки? | |
|
|
|
|
|
|
|
для: Mookapek
(24.12.2007 в 00:06)
| | Физически это зарезервированный участок на винчестере - файл pagefile.sys. Если для работы приложения не хватает оперативной памяти, то система будет организовывать такую память на винчестере, в выше названном файле, записывая и считывая ее блоками. Например, если открыто несколько приложений, и на данный момент времени активным является одно из них, то участки памяти RAM занятые неактивными приложениями будут "сброшены" в виртуальную память, а реальная память будет отдана активному приложению.
Файл подкачки расположен в корне системного диска, но так как он интенсивно используется системой, то лучше его держать на другом физическом (худший вариант - логическом) диске в самом его начале. Если в системе установлено достаточно оперативной памяти, то файл подкачки лучше вообще отключить.
Если на компьютере установлено несколько операционных систем: win 98, win XP, Vista, например, то можно указать этим системам использовать один файл подкачки. | |
|
|
|
|
|
|
|
для: Unkind
(23.12.2007 в 23:46)
| | RAM не входит в виртуальную память, это как раз реальная.) | |
|
|
|
|
|
|
|
для: sim5
(24.12.2007 в 05:30)
| | ошибаетесь.
Виртуальной памятью (виртуальным адресным пространством) называют всё пространство, которое виднно процессу, еще до деления его на страницы. | |
|
|
|
|
|
|
|
для: Trianon
(24.12.2007 в 09:44)
| | Нет, это вы ошибаетесь.) RAM - это физическая память, своп - виртуальная. Не надо путать понятия памяти занятой процессом и вообще памятью, приложению может вообще потребоваться минимум памяти и при этом хватит мизерной доли от RAM. Например, у меня достаточно памяти RAM установленной в системе, чтобы отключать вообще свопинг, включаю его только тогда, когда системе не хватает ресурсов памяти RAM.
Вы просто говорите о понятии адресного пространства в системе, которое в Windows может быть огромного размера (вроде 4ТГбайт, если помню точно) за счет виртуальной памяти, но это ведь совсем другое понятие.
Вот вам пример - 8-разрядный микроконтроллер. Для простоты считаем, что его адресная шина также имеет 8 разрядов, и он может адресовать 256 ячеек памяти плоского адресного пространства. Причем, в микроконтроллерах память разделяется на два типа - память программ и память данных. В первом случае это ПЗУ, во втором ОЗУ. Тем не менее, я могу подключить еще дополнительные ПЗУ и ОЗУ к микроконтроллеру, и организовать доступ к этой дополнительной памяти постранично. В пределах каждой страницы это будет плоское представление памяти, а в целом же всю память нельзя представить как плоскую, контороллер будет работать с виртуальной памятью. Все это достигается чисто программно-аппаратным способом. В данном случае понятия реальности и виртуальности явно не одно и то же. | |
|
|
|
|
|
|
|
для: sim5
(24.12.2007 в 11:22)
| | /*Задумчиво листая Рихтера*/ Что-то я больше к мнению Trianon склоняюсь...
Понятие виртуальной памяти насколько я считал до этого момента - всё-таки программная вещь, а не железная и реализуется она программно. | |
|
|
|
|
|
|
|
для: cheops
(24.12.2007 в 12:23)
| | А я работаю без своп файла вообще, какая у меня тогда память? И чему она равна? | |
|
|
|
|
|
|
|
для: sim5
(24.12.2007 в 12:34)
| | Хм... а в диспетчере задач колонка виртуальной памяти тоже вся по нулям? | |
|
|
|
|
|
|
|
для: cheops
(24.12.2007 в 13:00)
| | У меня нет в системе виртуальной памяти вообще, я работаю с отключенным своп файлом, и весь объем памяти в системе, это реально существующая память - 4 ГБайта с двойным доступом.
Я не понимаю, как можно понятия виртуальности применять к реальности. Если, например, 32-разрядная шина может обеспечить не более 4 ГБ памяти, то сколько бы мы не говорили о виртуальности, больше от этого памяти не станет, пока мы не обеспечим эту самую виртуальность. Но мы обеспечиваем не память как таковую, а временное хранение данных реальной памяти в виртуальной.
Да, в системе может быть запущеного много процессов, много приложений, и система каждому приложению будет квотировать свои системные ресурсы, устройства ввода/вывода, устройства хранения данных, и конечно память. При этом каждое приложение работает в виртуальной области, и каждому приложениею кажется, что оно одно любимое в системе, и только оно владеет всем. Но система предоставляет приложению память, которую оно запрашивает, а не приложение ею владеет, и если этой реальной памяти не хвататет, то и будет задействована виртуальная, в Widows это винчестер. Сам винчестер назвать ОЗУ можно только с очень-очень большой натяжкой, потому, надо еще загрузить эту виртуальную память в реальную, а только потом отдать приложению. "Громыхающая" работа такой виртуальной памяти очень хорошо наблюдалась на старых машинах. | |
|
|
|
|
|
|
|
для: sim5
(24.12.2007 в 13:23)
| | sim5, извините, что прерываю Вашу дискуссию с Трианоном и Хеопсом...
>Файл подкачки расположен в корне системного диска, но так как он интенсивно используется системой, то лучше его держать на другом физическом (худший вариант - логическом) диске в самом его начале.
Я не понял, если файл подкачки на другом логическом диске, то это еще хуже чем, если он находится на системном диске? | |
|
|
|
|
|
|
|
для: ddhvvn
(24.12.2007 в 14:31)
| | Нет, я этого не говорил. Просто, если у вас один физический диск разбит на два раздела, то это не значит, что у винчестера появился "лишний блок головок". Выигрыш в этом случае в том, что у второго раздела (лог. диска) будет своя FAT таблица, и если своп файл на этом диске расположен в начале, то доступ к нему будет быстрее, а обращение к системному диску и своп файлу можно сказать (с натяжкой) разделены. Совсем иная картина, если вы расположите своп файл на другом физическом диске, здесь выигрыш действительно будет, и понятно почему. | |
|
|
|
|
|
|
|
для: sim5
(24.12.2007 в 14:51)
| | Все ясно.. спасибо! | |
|
|
|
|
|
|
|
для: sim5
(24.12.2007 в 13:23)
| | Да, собственно против этого никто не возражает, насколько я понял, весь сыр-бор вокруг следующего положения: считать виртуальной памятью только swap-память или swap-память плюс оперативную память.
PS Если честно, но мне всё равно, так как памятью операционная система распоряжается, а самостоятельно управлять ей желаение ни разу не возникало (хотя Windows API предоставляет широкие средства для этого). | |
|
|
|
|
|
|
|
для: cheops
(24.12.2007 в 20:29)
| | >...самостоятельно управлять ей желаение ни разу не возникало (хотя Windows API предоставляет широкие средства для этого).
Ссори за нескромный вопрос: а для чего? Ну хоть Вы и не пользовались этой возможностью, но навреняка знаете, что можно сделать? Увеличить/уменьшить размер? Или по-совему усмотрению кидать файлы туда-сюда? | |
|
|
|
|
|
|
|
для: ddhvvn
(24.12.2007 в 20:33)
| | Нет, там всё гораздо сложнее - это Linux начинает скидывать страницы, когда заканчивается оперативная память, Windows задействует виртуальную память гораздо раньше, позволяя отображать динамические библиотеки в виртуальную память, назначать конкретные блоки программы для размещения на диске или в оперативной памяти... Если интересно, можно почитать в книге Дж. Рихтера Windows для профессионалов, которая является библией системных программистов под Windows. | |
|
|
|
|
|
|
|
для: sim5
(24.12.2007 в 13:23)
| | http://ru.wikipedia.org/wiki/Виртуальная_память
Собственно, это не в качестве аргумента в споре... предмета не вижу. | |
|
|
|
|
|
|
|
для: Trianon
(24.12.2007 в 20:47)
| | Так я и не говорю, что вы Дон Кихот, а я пустая мельница. :)
Память на компьютере ведь, это не только OЗУ как таковое, это адресное пространство, которым физически может управлять процессор, и в котором часть адресов отдана под устройства ввода/вывода, часть под ПЗУ, часть под ОЗУ и т.д.. Физическую память подключаемых устройств также можно рассматривать как продолжение этого адресного пространства, так как мы можем иметь к этой памяти доступ, к таковым естественно можно отнести и винчестер. Вот от куда и растут ноги идеи виртуальности.
Каждое приложение имеет право на все это адресное пространство, и оно получает это право, но "вроде бы как", так как рядом с любым приложением, работает другое, точно также претендующее на все пространство адресов. Но все это обман по большому счету, все они работают в одном реальном адресном пространстве, причем не все одновременно, а по временным квотам, которые дает система каждому приложению - каждому Nn процессорного времени. И получается, что одновременно виртуально существует множество одинаковых адресных пространств, в которых работает множество процессов.
Первые дамашние компьютеры на 8-разрядных i8080 не имели операционных систем, и в них нельзя было запустить несколько приложений, да и программист должен был указывать сам область адресов этих приложений, следить за этим, так как о программах с перемещаемыми адресами и речи не было. Хотя это можно было сделать, вот только управлять этим было некому. Но ведь и тогда уже программы хранили свои данные на дискете, по мере их надобности считывали их - и чем это отличается от виртуальности по принципу?
С появлением Windows 95 появились понятия вытесняющей многозадачности, виртуального пространства адресов, а ведь зачатки всего этого были еще в Windows 3.11, но как-то об этом не говорилось, просто подход к этому у этих ОС очень разителен.
Вероятно на 100%, вы заметили, что если у вас в системе запущенных приложений мизер, да и они сами по себе "не прожорливые", даже в этом случае Windows работает со свопингом. Если у вас достаточно реальной памяти в системе, отключите своп, и вы заметите, что ваш компьтер будет шевелиться быстрее, и можно забыть о виртуальной памяти в части RAM, но уж виртуальные процессы в виртуально-реальных адресных простанствах так и будут работать.
Виртуальность это миф и химера, наваждения и галлюцинации. :)) | |
|
|
|
|
|
|
|
для: sim5
(25.12.2007 в 03:03)
| | Пурга. | |
|
|
|
|