|
|
||
Дискуссия о распределении памяти в ОС11.02.2021, 01:09. Показов 13104. Ответов 132
Метки нет (Все метки)
Нужно 2793 ГБ. У вас установлено столько в компе?
0
|
||
| 11.02.2021, 01:09 | |
|
Ответы с готовыми решениями:
132
Работа со стеком на последовательном распределении памяти Реализация стека на массиве и динамическом распределении памяти Реализовать процедуры работы со стеком на последовательном распределении памяти |
|
|
|||
| 15.02.2021, 10:19 | |||
|
Добавлено через 2 минуты
0
|
|||
|
Модератор
|
||||||||
| 15.02.2021, 10:29 | ||||||||
|
Добавлено через 4 секунды Добавлено через 6 минут
0
|
||||||||
|
|
||
| 15.02.2021, 10:35 | ||
|
До запуска см. память 2.8 : После запуска 1 экземпляра память не изменилась, не делаю скрин, поверь на слово. После запуска 100 экз см память Ну?
0
|
||
|
|
|
| 15.02.2021, 10:41 | |
|
Если запустить 100 Калькуляторов, то память скушает ещё больше - 4.1
Это если будешь мне писать, что память выросла из за открытого в Блокноте "111.txt", Калькулятором я файл не открывал
0
|
|
|
Модератор
|
|
| 15.02.2021, 10:45 | |
|
Pro_grammer, я тебе говорю про физическую память которую занимает образ, т.е то что является маппингом. Вот exe файл и библиотеки в подавляющем большинстве ссылаются на одну и ту же память. Но в приложении помимо маппинга есть ещё и другая память типа стеки, структуры окон и т.п. Если не веришь мне, почитай мсдн, если и они тебя не переубедят возьми какой-нибудь сканер памяти и посмотри сколько один блокнот съедает виртуальной памяти а затем умножь на 100.
0
|
|
|
|
||
| 15.02.2021, 10:58 | ||
![]() Это если он есть. А если нет, то Винда мило так скажет, "Закройте одно или несколько приложений, я не могу вам выделить память сама, как завещал великий Русинович!"
0
|
||
|
Кормпилятор
|
|||||||
| 15.02.2021, 10:58 | |||||||
|
кресла пока windows...". Как это реализовано, не знаю, известно только, что в ядре системы возможностей больше. Кстати выше читали, за больше чем 5 часов ничего само по себе выгружено из 2-х гигабайт не было, этот процесс вообще не трогал(не переключался на него), терпеливо ждал. собственные решения. Вот что предоожил. Меня утрированно назвали лохом и требуют доказательств. Как их дам если: 1) нет задачи 2) то что попадёт под задачу - это вычисления над якобы большим объёмом данных 100Гб, 2Тб и дальше и полюбому непросто реализуется, для чего нужны ещё и технические возможности, а про время на тестирование вообще молчу. 3) Та задача что есть от геха, он её сам не сформулирует и её тут тоже никто делать не будет, а тем более нахаляву 4) Одним циклом, который читает\пишет данные последовательно не доказать состоятельность или наоборот моих тезисов, это слишком простой сценарий софта, мало где так будет. И делать архитектуру под задачу. На деле эти задачи для дата центров и кластеров, мутузить ими обычные рядовые домашние ПК - это попросту нецелесообразно. И думать как что-то такое сделать нифига не просто. и те же результаты и я даже предложил равноценные идеальные условия - чистую систему, где ничего не мешало бы. Отличнейший тест кейз который все вопросы с HDD расставит по местам. Только в реальной пользовательской задаче. И эти средства уже есть их не надо реализовывать, достаточно просто запустить и проверить. Если я несу бред, тогда зачем было вводить меня в такое заблуждение, что это сходные вещи. Мужики вы уже сами определитесь тогда. Иногда офигеваю. Сам вот не пытаюсь доказать ничью неправоту просто ради какой-то движухи. Ну дискутируйте тогда сами, не полезу в эти вещи, но дурака строить из меня не надо.
0
|
|||||||
|
COM‐пропагандист
|
|
| 15.02.2021, 11:05 | |
|
0
|
|
|
Модератор
|
|
| 15.02.2021, 11:09 | |
|
Pro_grammer, ну и что ты этим мне хочешь сказать? Ты теперь как Квит будешь про своп писать? Ты думаешь я не знаю как он работает или что? Я тебе написал чем маппинг отличается от чтения из файла. Вот тебе карта виртуального АП того же блокнота:
Как можешь видеть память состоит из разных типов регионов. По твоей логике 100 экземпляров займут 117МБ (это используемая виртуальная память всего процесса) * 100 = 11.7ГБ, но ты у себя видишь что это не так. Как такое может быть по твоей логике?
0
|
|
|
|
|||
| 15.02.2021, 11:20 | |||
|
Да, меньше, чем х100, но это сути дела не меняет:
0
|
|||
|
Модератор
|
|||||||||
| 15.02.2021, 11:31 | |||||||||
|
Добавлено через 3 минуты
0
|
|||||||||
|
|
||
| 15.02.2021, 11:48 | ||
|
Реально 1 приложение занимает в памяти место намного меньше, чем 100.
Это неопровержимый факт. Значит это:
0
|
||
|
COM‐пропагандист
|
||
| 15.02.2021, 11:56 | ||
|
0
|
||
|
Модератор
|
|
| 15.02.2021, 11:59 | |
|
Pro_grammer, ты подумай почему оно занимает места меньше, ещё раз говорю. И ты поймёшь что пишешь ерунду. Ответ под спойлером.
Кликните здесь для просмотра всего текста
Места в ram занимает меньше поскольку все экземпляры блокнота и системных библиотек и ещё всяких общих маппингов ссылаются на одну и туже память. Специально для неверующих скинул карту памяти. Ты сам посчитай сколько памяти должно потреблять приложение чтобы загрузить все его DLL зависимости. У меня только DLLок на 34 мегабайта выходит.
0
|
|
|
Кормпилятор
|
|||
| 15.02.2021, 12:20 | |||
|
Не говорил что во всех этих случаях есть лучшее решение, лишь указал на проблематику вопроса. Эти варианты были призваны показать проблематику, реальную. Что работа с диском это задница, а не лофа и сказка. Скорость записи на диск в среднем 100Мб/с, в идеале при дефрагментированном, а так обычно 70-80, а если год не дефражить упадёт ниже полтинника. А если две проги вдруг начали драть диск, то попросту не дождёшься их выполнения, если там лопатятся большие данные. И проблемой станет даже открыть диспетчер. Он может минут 5 открываться, без шуток, резет проще сделать и перезагрузиться. Скорость записи хаотичных данных по всему диску - это вообще жесть, а ты упираешься рогом делая вид, что этого произойти не может и эта чудо фича мол спасёт от этого, что все задачи будут работать со скоростью чтения большого куска. Нет не будут, будет работать только часть задач и то что поддаётся предикции. Но и худший случай тоже нужно учесть. Не ты ли меня этим пенял, когда мужики начали мне писать про мою прогу, что она не сожрала какой-то бред который ей подсунули. Худший случай - ещё бы! Т.е. один худший случай нужно учесть? А другой нет? Все мои примеры об этом. Докажи, покажи. Хоспаде... Доказать что? Выдумать сложную задачу, потратить годы на реализацию? Да ну вас нафиг... я привёл косвенные факторы, этого достаточно. Я тут уже задолбался всем всё доказывать и показывать. На слово никто не верит. Слово вообще уже потеряло свою значимость даже если это, блин, правда.
0
|
|||
|
Модератор
|
||||
| 15.02.2021, 12:41 | ||||
|
0
|
||||
|
Кормпилятор
|
||||
| 15.02.2021, 13:38 | ||||
|
так или иначе с ним знаком, авторы очень локанично его описывают, хотя большинство из них не писали операционных систем. А ты не задумался почему они в этой задаче не сделали как пишешь? Это же логично? Там вроде и предсказать вполне можно какие вкладки пользователь не сильно дёргает, чисто статистически, и чисто логически можно предположить что то самое "удержание рабочего диапазона в оперативной памяти" должно творить чудеса, но этого не происходит. Вместо этого пользователь получает жопу по истечению оперативы. Комп зависает намертво. И если запустить комп, на котором винду не переустанавливали лет 5, то можно опухнуть. А всё просто - чудес не бывает, диск это диск, это соточка чтения\записи и в десятки раз меньше при совместном доступе и ещё в разы меньше при чтении мелких фрагментов. Вот и все чудеса. Но можно купить дешёвый SSD на 128 гигов и раздраконить его несколькими такими аллокациями по 100Гб.))) Называется, выбирай лучшее решение... Нету его. Большие задачи - нужны большие мощности, а не этот анонизм.
0
|
||||
|
Модератор
|
|||
| 15.02.2021, 13:47 | |||
|
0
|
|||
|
|
||
| 15.02.2021, 14:39 | ||
|
Перефразируй в соответствии с реальностью, тогда и спора не будет.
0
|
||
|
Кормпилятор
|
|||
| 15.02.2021, 14:46 | |||
|
1) При хаотичном доступе да особо никак. Только собирать запросы в пачку и сбрасывать на диск. Но не по 4k, а нормальными кусками. С запросами по чтению делать также. И тут не особо важна статистика запросов, важно то, с какими данными идёт работа, как они организованы, их специфика, чтобы использовать эту специфику для кеширования данных. И не менее важна организация своих данных, чтобы их можно было быстро прочитать с диска. Суть организовать поочерёдный обмен с диском, чтобы головка диска позиционировалась минимальное количество раз, скажем 5 раз в секунду, а остальное время работала оператива и обсчёт данных. Прогон по всему пространству если мы его завели для строго определённой цели - это неизбежно, нужно это понимать. И путей оптимизации множество на самом деле. Жёсткий диск не единственный аспект. И конечно, не собирался принципиально эмулировать этот механизм, можно просто использовать сходный принцип, говорил больше за то, чтобы решить задачу альтернативным способом, чтобы заточить обработку данных под особенности железа(HDD). 2) При нехаотичном доступе - тут всё тоже самое, но гораздо предсказуемее, этот случай ты описал и твоё решение не будет ничем лучше моего или решения любого другого человека. Просто ты используешь механизм ОС, я бы просто писал тоже самое руками, разбил бы пространство на несколько файлов, загрузил блок/посчитал/выгрузил и т.п. тоже большую часть делал бы в оперетиве, нафиг мне драконить диск? И вот задача геха, как её можно реализовать? 1) Картинка спрайт, допустим 100000 x 100000 пикселей. Дофига, да, Работаем. 2) гех рисует в монохроме, можно написать процедуры которые будут работать с конкретными битами, т.о. поимеем в 8 раз больше пикселей. 3) Организация памяти, посмотрим сколко есть оперативы, заведём в оперативе строк столько, сколько влезет в оперативу, разобъём всё изображение на такие блоки. Заведём структуру, в которой укажем время последнего обращения и частоту обращений. Загрузка и выгрузка будет идти сразу целым блоком. 4) Посмотрим алгоритм рисования или что у него там, проанализируем можно ли разбить примитивы по этим блокам. Например можно завести структуру с позициями и радиусами этих самых кругов, прогон алгоритма в данном случае будет лишь заполнять эту структуру, сама отрисовка будет уже по финалу. Далее, структуру равную кол-ву блоков, в которой хранить ID из первой структуры, заполнять эту структуру сразу после добавления каждого примитива. Т.е. одна большая окружность может быть повешена на несколько таких блоков. Далее работаем брезенхемом, т.к. тут только свои процедуры привязать какую-то библиотеку скорее всего не получится из-за специфики задачи. Но вообще давным давно товарищ rrrFer рассказывал про то как он писал плагины к Photoshop и мол там уже реализована работа с огромными изображениями и доступны все инструменты данного софта. С этого, наверное, стоило начать, но лучше этим закончить. Хорошее решение, плохое решение, главное что простое, объясняется на пальцах, не дерёт диск больше нужного. Сразу выдаёт готовый результат в виде файлов. Можно потом дописать ещё утилиту, которая разобьёт эти блоки на квадраты равной величины, пожмёт всё в jpeg\PNG\gif\Bmp(с RLE) картинки и сделать вьювер, по типа гугл мапса, который будет на ходу подгружать. Я описал то, что сделать реально. Если мне кто заплатит, то сяду и сделаю, сложно нет ничего, обычные жопочасы, но просто так конечно я не будут этой фигнёй страдать))). И если заметил, решение этой задачи мной разбито на много этапов, это называется динамическое программирование. Можно и так. А не втупую "щас я заведу 10 терабайт, а потом буду огребать". 4 килобайта. Да не всегда удастся безболезненно это сделать и не любую задачу заточить. Именно к этому нужно сводить работу с HDD. А отдача системе на откуп напофиг ни к чему хорошему не приведёт. Да может быть на компах с 16/32/64 гигами оперативы и хорошим SSD на борту будет всё классно, но нужно учитывать, что есть конфигурации в десятки и сотни раз хуже и на них действие втупую таким принципом будет фатально. И машина с 2 гигами это ещё ничего. До нулевых долгое время сидел на компе с 64Мб памяти, 98 винда, мне это особенно запомнилось, после выхода из какой-нибудь толстой проги система долго приходила в себя, восстанавливала так сказать себя в памяти, этот самый механизм, который так и не претерпел никаких изменений. А DOS бы просто послал меня с запуском собственно этих прог и понимаю, что это было бы не самое худшее решение сказать честно человеку что "добавь ка ты оперативы брат, а потом дерзай", тогда железо было конечно дорогое, сейчас с этим всё проще.
0
|
|||
| 15.02.2021, 14:46 | |
|
Помогаю со студенческими работами здесь
120
Реализовать процедуры работы со стеком на последовательном распределении памяти
Стек: Реализовать процедуры работы со стеком на последовательном распределении памяти
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга,
Ты же видел моря и метели.
Как сменялись короны и стяги,
Как эпохи стрелою летели.
- Этот мир — это крылья и горы,
Снег и пламя, любовь и тревоги,
И бескрайние. . .
|