|
|
||
Дискуссия о распределении памяти в ОС11.02.2021, 01:09. Показов 14600. Ответов 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
Реализовать процедуры работы со стеком на последовательном распределении памяти
Стек: Реализовать процедуры работы со стеком на последовательном распределении памяти
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер.
Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
|
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта
Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
|
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром.
возможно получится прикрутить интерпретатор питон для кастомизации игровой логики.
что есть на текущий момент:. . .
|
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2.
Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
|
|
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
|
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2.
Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|