Фрагментация.Сап анон. Изучаю виртуальную память, как она работает и так далее и есть проблема, я не могу вшарить в понятие - фрагментация. Не кидайтесь википедиями, я там конечно уже был, но я все равно не могу визуализировать этот да процесс, ибо там написано мне непонятным техничным языком, которым я сам далеко не владею, или не владею всей информацией, чтоб визуализировать.Можете мне простым языком объяснить это действия? Может быть картиночками?Иными словами, вот вам вопрос.Говорят, что основная проблема реализации виртуальной памяти - это фрагментация и мне интересно, а почему?
Мне еще интересная, какая разница между внутренней и внешней фрагментацией и как это влияет на работу?
1
2
>>140979228 (OP)Файлы хранятся на диске маленькими кусочками. Если файл хранится в 1000 мест на диске, то происходит жесткое дрочево механизма диска туда-сюда, за счет чего теряется производительность. У SDD и виртуальных дисков в памяти такой проблемы нет. Теперь представь, что у тебя есть 100 приложений, и каждое что-то сука пишет в свободные виртуальные ячейки - ясен пень, что приложение 1 может положить свои данные рядом с приложением 2, 3, 4 - тогда они будут вынуждены класть данные хуй пойми как и куда.
>>140979658и будет дрочево жесткого диска, что снижает производительность.
>>140979658Я думаю, что ОП имеет в виду фрагментацию физической (ram) памяти, хотя я хуй простой.
>>140979785>и будет дрочевоЧто ты именно под этим подразумеваешь?
А это правда, что при дефрагментации диска файлы могут пропадать из папок?
>>140979896я имею в виду механику, головы диска будут бегать взад-вперед по нему>>140979801Может быть, я по картинке ориентировался
>>140979914только если диск битый, а его система контроля ошибок проебала сбойный сектор
>>140980064Можно ли диагностировать это не дефрагментируя диск?
>>140980035>Может быть, я по картинке ориентировался>Изучаю виртуальную памятьЯ думаю, что фрагментация диска не имеет отношения к проблемам виртуальной памяти. А вот это, например, имеет http://ru.stackoverflow.com/questions/180995/%D0%A4%D1%80%D0%B0%D0%B3%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%86%D0%B8%D1%8F-%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D0%B8/180999
(картинка, если что - левая из сети была)
если оп не зелёный, то фрагментация виртуальной памяти не должна быть проблемой, так как скорость доступа при этом не снижается и физическое место в памяти от этого больше не занимается. почти как на ssd. так что это либо не та фрагментация что на hdd либо оп зелёный
ээ блэт если это вопрос про принцип работы компиляторов то оп долбоёб
Виртуальная память это пул где в одной ячейке может храниться только один лист памяти. Когда первая программа забирает память, то она берёт в начале пула. Потом вторая и третья берут последовательно страницы. Одна за другой. И всё удобно. Вся опериративка почти занята. Потом вторая завершается и её память освобождается. Потом запускается четвёртая. Ей надо больше памяти чем второй поэтому она заберает все страницы между первой и третей программой и ещё немного после третяй. Так У четрвертой программы память порвалась на два фрагмента и компьютеру неудобно работать сразу с двумя. Или ещё пример. Первая программа заняла память в начале пула. После ней память заняла вторая программа. Но первой понадобилось ещё память и она берёт немного после второй програмы. Но вторая тоже захотела память и она берёт ещё кусок после того маленького куска первой программы. Так продолжается долго и вся физическая память занята как шахматная доска. Неудобно брать несколько страниц памяти подрят и кэшировать в процессоре. Это понижает скорость обращения к памяти. А если одна из этих программ завершится, то третяя тоже будет разделена на много фрагментов т.к. свободны только маленькие кусочки. Так ясно?