Блог программиста

Про память.

Июль 3rd, 2008

Помните, я уже писал о работе с памятью. Там было теоретически.
Сейчас столкнулся с инетересным (тоже теоретически. практически - убил бы) строением пулов. Двунаправленые.
Коротко, имеется два варианта.
1. Есть две разные структуры данных одинакового размера (например 32 байта). Выделенная память отдается обоим. При этом первая получает стартовый адрес в пуле и продвигается ++. Вторая получается самый низкий (т.е. адрес = конец пула - размер одного блока) адрес и продвигается –.
2. Во втором варианте структуры жанных разного размера.

Все. Память в пул никогда не возвращается, изначальной стартовой нарезки не происходит. Колличество элементов связано друг с другом логически, и примерно опредеяет работу по заниманию памяти.
При необходимости вернуть память обратно, т.е. объявить ее логически свободной, элементы добавляются в связные списки свободных блоков, которые используются тоже (реюзинг).

Минусы такой системы ясны невооруженным взглядом.
1. При нежесткой лигической связке или наличии разых условий связывания - размеры (точнее колличество элементов каждого типа данных) непредсказуемы.
2. Однажды полученый максимум одного из пары никогда не отдаст своих (даже равных по размеру) блоков своему партнеру по паре. Т.е. имея свободную память мы не сможем ее аллоцировать, и при этом (см. п.1) размеры непредсказуемы и зависят от внешних условий.
3. При разных размеров блоков (если они еще и не кратны) возможны небольшие потери свободного места памяти посредине при максимальной выборке.
4. В коде постоянные проверки на наличие вободных модулей в списках для реюзинга.

И много других мелочей, как неявное определение необходимых размеров пулов, свободных остатков.
Плюсов практически не нашел.
В алгоритме отсутствует даже намек, что при равных размерах блоков можно было бы динамически перераспределять свободные блоки между разными по смыслу.
Для этого ничего сложного было бы не нужно, достаточно вместо двух связных списков использовать один. Тогда можно было оправдать такую нестартовую нарезку, в случае дефицита на память в эмбедед системах. Но ее нет. Да и для разноразмерных блоков это не подходит, а перестраивать даже кратные блоки не очень то удобно, при явном перемешивании адресов.
Кроме того нет даже отдельных интерфейсов для работы с такой организацией, все намертво встроено в сам код.
Никак не могу понять, зачем надо было так вот усложнять алгоритмы, когда вполне можно обойтись либо однократным рещзервированием памяти в стандартные связные списки, в списки типа LIFO как я писал раньше. Методов может и не много, но вполне достаточно. Плюсы их известны заранее.
П.С. Странные люди.

Программистское

Июнь 30th, 2008

Зачем я стал программистом.
Минусы данного занятия видны невооруженным взгялдом: убитые глаза, гиподинамия от сидячего обрза жизни, ненормированный рабочий день и прочее.

Когда-то давно, еще перед институтом, мне казалось, что я выбрал занятие подразумевающее творчество.
И вот через почти 25 лет, я сижу тупо глядя в экран и тестирую скорость работы девайса, который мне надо воткнуть в другой большой девайс, и драйвер к которому и есть моя работа.

Писать мне ничего ненадобно. Я просто тупо тыкаю пальцами в разные кнопочки, тупо пишу циферки полученой статистики. Строю графики. И такая деятельность продолжается вот уже месяц.
Стоило ли ломать себе голову в имнституте и яростно грызть вулканическую почву работы, чтобы будучи высококлассным специалистом в написании драйверов заниматься бетатестированием?

Настроение бля, полная жопа.

Прошу прощения

Июнь 22nd, 2008

Я тут немного занят. Футболом. Слов по этому поводу писать не могу, нечего. Не умею я.
Но писать о программировании - пока просто все мысли не здесь. Сил нет собирать отвлеченное, и так на работу с трудом настраиваюсь с утра. Прошу меня понять.
Но по окончании наших битв на Евро 2008 будем обязательно продолжать по теме.

Статья интересная

Июнь 10th, 2008

http://www.razgovor.org/special/article588/

Прикольный взгляд на ОС в мире. Во многом согласен с автором, хотя не люблю Каганова за самовлюбленность, хамство и относительную тупость. Называть себя писателем, пока в интырнете его только и видел… Ну и хуй с ним в общем-то, статья все равно прикольная, и много в ней правильного.
Однако, хочется заметить, что весь лейтмотив такой статьи - дайте мне старое время, когда сиськи у баб были больше, хуй стоял, и и т.д.
Да и сверх задачи, по типу “мы наш мы новый мир построим” уже проходили.