KLASS
Moderator | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Переехали отсюда Цитата: TwoOceans ошибка страницы => чтение из исходника Так может произойти только если страница целиком неизменна по отношению к исходнику. Фактически же размер страницы в памяти 4 Мб, а 32 разрядные бинарники выровнены по 512 байт (кроме, возможно, последнего сегмента, но в последнем чаще всего иконки и так далее, которые можно пометить незагружаемыми в оперативную память). Из-за этого 4 мегабайтному отрезку бинарника после загрузки в память может соответствовать несколько страниц памяти содержащих "по кусочку" отрезка. И эти страницы будут считаться как измененные - у них нет полного однозначного отображения байт страницы в байт исходника, только частичное. Про загрузку по другому адресу я уже выше писал - изменяются в том числе и ссылки на сегмент собственных данных, жестко прописанные в сегменте кода. То есть страница с такой ссылкой будет также считаться измененной, даже если из 4 Мб изменились всего 4 байта - побайтового соответствия уже нет. И так как изменил их загрузчик системы, а не сама библиотека, то никакого противоречия, что библиотеке сегмент кода доступен только для чтения. Цитата: Все загружается с диска. Ага, особенно введенные пользователем данные, динамически вычисленные при загрузке адреса, данные страниц Интернета и так далее. По сути, общем объеме памяти процесса (браузера, например) исполняемый код занимает не так много - остальное данные введенные пользователем (для выбранного примера - адрес сайта и логин) и данные загруженные извне (из интернета). Вот похоже Вы привыкли к UWF, а документы как в случае чего сохраняете? В сетевую папку/облако? Если ограничиться одним компьютером - это будет не "на диск". Если глобально - то конечно на некий диск. Еще есть подход который говорит что все есть файлы. Кстати, если зашла речь об этом, некоторые операционки и оперативную память форматируют и вместо страниц работают с ней как с файлами. Увы, Windows к этому никак не придет. Цитата: никаких проблем не вижу. Их и нет, просто очень мало сферических в вакууме страниц всем доступных только для чтения. Цитата: Попробуйте отключить файл подкачки, а после задать создание малого дампа (256КБ) при отказах системы. Система с вами не согласна: Так я про то и говорю - хотя формально отключение есть, но фактически ряд функций системы не будет работать, если файл подкачки отключить совсем. В худшем случае система вообще не загрузится, либо создаст файл подкачки не смотря ни на какие настройки. Опять же я это говорю не потому что "где-то прочитал", а потому что реально пару раз так системы накрывались (кажется это XP были, надцать лет назад). Ну точнее как - доходили до окна приветствия/ввода пароля (в том числе в безопасном режиме) - а при загрузке профиля говорили, что вход невозможен из-за слишком малого/отсутствующего файла подкачки и выкидывали снова на приветствие (либо сообщали, что взамен ненайденного создан новый файл подкачки на другом разделе, то есть чистота в том разделе реестра не доказательство). Естественно сейчас я бы загрузился с диска и исправил в реестре, но тогда мое мастерство до этого не дотягивало, да и дисков с PE еще не было - пришлось переустанавливать. В любом случае, состояние без файла подкачки полностью работоспособным не назовешь. Уверен, что с тех пор XP не стала стабильнее и доказать несложно, "уронив" виртуальную машину. Ронять семерку воздержусь - рабочую пока жалко, а на виртуальную семерку в семерке моих 4 Гб оперативки не хватит. Скриншот о том же. Как вы думаете если для дампа нужен файл подкачки, то подкачка не используется? Сами против своей теории нашли и заскринили пруф. Точно также бывают проблемы при гибернации, если файл подкачки даже на пару мегабайт меньше объема оперативной памяти. Еще бы знать почему - по любому переписать из файла подкачки в файл гибернации не быстрее чем из памяти). Кажется, это даже цитировали с сайта Майкрософт, что они признали такой дефект в XP и семерке и рекомендовали поставить подкачку на пару мегабайт больше оперативки, но навскидку поисковик ссылки не нашел. В приведенной цитате не указывается версия Windows и по сути говорится об этом же: "может работать" (с этим не спорю - теоретически может как-то работать, но фактически, собака, полноценно не работает). Цитата: А выкидывание в своп не считается Смеяться полезно, ага. Опять же, тут дело в терминологии - фактически своп тоже называется "виртуальная" память, и диск тоже, если на то пошло - память. Говорят же "массив дисковой памяти". Если опустить слово "оперативная" и написать просто "память" смысл многократно расширяется. В контексте разговора диск, конечно, отдельно и памятью как бы не считаем, но своп все же входит в понятие память- так как программа не знает где страница в памяти или в свопе и для нее все входит в "виртуальную" память - и оперативка и своп. Далее. Выкинуть - я понимаю это вообще убрать страницу и нигде не сохранить ничего, даже в управляющих структурах в ядре стереть строчки (остается только исходник на диске), вытеснить - убедится, что где-то есть побайтовая копия (в свопе, например, или просто использовать исходник) и оставить строчки в управляющих структурах, обозначающие, где искать страницу, когда понадобится. В таком понимании в своп страница не выкидывается, а вытесняется. Иначе получается - в одном месте называем своими именами (что не файл подкачки, а файл на диске), а в другом игнорируем, что не только файл на диске, но и "память" бывает разной. | TwoOceans Цитата: Так может произойти только если страница целиком неизменна по отношению к исходнику | Вы же были согласны, что есть страницы для чтения, а есть для записи, так какая разница каких она (dll) размеров в памяти, если страницы ее неизменяемые и предназначены только для чтения? Если изменяемая, летит в своп, если нет, то вытесняется. Цитата: Про загрузку по другому адресу я уже выше писал - изменяются в том числе и ссылки на сегмент собственных данных, жестко прописанные в сегменте кода. То есть страница с такой ссылкой будет также считаться измененной | Другая версия, при загрузке в память dll, страницы помечены как для чтения и не суть по какому адресу загружены. Ссылки меняются не в страницах, которые для чтения. Цитата: Вот похоже Вы привыкли к UWF, а документы как в случае чего сохраняете? | При чем тут UWF... сохраняю туда, куда сохраняется. Цитата: просто очень мало сферических в вакууме страниц всем доступных только для чтения | Process Hacker или Process Explorer с вами не согласны... запускайте и смотрите, сколько измененных страниц предназначены для записи, стало-быть, не так уж и мало страниц для чтения. Цитата: Так я про то и говорю - хотя формально отключение есть, но фактически ряд функций системы не будет работать | О чем вообще говорите? Вот тут про UWF уместно вспомнить т.к. отключается подкачка при его включении. Несколько лет сижу с UWF и не вижу ограничений. Сколько на том куске железа было памяти, если оно у вас не загружалось без подкачки? Цитата: Ронять семерку воздержусь - рабочую пока жалко, а на виртуальную семерку в семерке моих 4 Гб оперативки не хватит. | Работают виртуалки и с 4 Гб оперативки, медленно но работают. Ничего вы не уроните, не несите чушь в эфире. Цитата: Как вы думаете если для дампа нужен файл подкачки, то подкачка не используется? | Перечитайте мой пост и вникните для чего я вам пикчу показал. Цитата: Выкинуть - я понимаю это вообще убрать страницу и нигде не сохранить ничего, даже в управляющих структурах в ядре стереть строчки (остается только исходник на диске), вытеснить | Пусть будет вытеснить, суть не в этом. При вытеснении страницы, разумеется, об этом делается пометка. Вы же сами сказали, что все есть память и диск с отображаемыми на память файлами и оперативка, и файл подкачки... только весело мне стало по причине того, что вытеснение из оперативки оно и в Африке вытеснение, а куда вытесняется это уже не суть... нету в оперативке тех страниц, нету. Чем по вашему отличается своп от отображаемого на память файла в нашем случае? Да ни чем, только в него скидываются измененные страницы, а в отображаемый файл (dll, exe) нет. | Всего записей: 11445 | Зарегистр. 12-10-2001 | Отправлено: 10:24 08-04-2017 | Исправлено: KLASS, 13:44 08-04-2017 |
|