Электричество

22.02.2006 03:21:04

Который день подряд наблюдаю обрубание электричества секунды на две. Последствия просто ужасно неприятны — вспомнить, что, где и как было открыто в браузере просто невозможно. С учетом того, что число постоянно открых закладок во всех браузерах суммарно, наверное, уже переваливает за полтинник, это раздражает вдвойне. Последнее обстоятельство также делает невыносимо долгой загрузку машины. С горьким сожалением вспоминается в такие моменты безвременно ушедшая батарея ноутбука…

Сколько страничек в вашей памяти?

08.02.2006 03:47:28

Сижу, значит, погружаюсь в архитектуру PowerPC. Не так давно погрузился до того, что узнал интереснейшую штуку — в PowerPC стандарта Book-E поддерживается 16 размеров страниц, причем, поддерживается одновременно. То есть, вот страничка на 1КБ, а следом на 256МБ — и это нормально. Правда, в подопытном для меня экземпляре PowerPC 440 поддерживается только 8 размеров, но это не так важно.

Интересно другое. Подготовленный читатель, небось, уже представил себе как старый добрый malloc() берет да выделяет пользователю страницу размером близкую с необходимому куску памяти (в случае отсутствия куска нужного размера в уже забитых страницах процесса… в общем, понятно). Если подумать больше, то можно прийти к выводу, что это должно быть очень даже полезно и приятно для современных применений, поскольку сегодня память обычно требуется выделять ведрами.

А хорошо подобранные под каждый случай выделения памяти странички дают нам менее забитый TLB, что есть чудовищно круто, поскольку промахи TLB — не самая приятная штука. И, потом, есть еще своппинг. Понятно, с этой точки зрения страницы размером где-то более 2-4 МБ уже становятся накладным мероприятием, но! разницу между чтением/записью на диск, например, 4КБ и 256КБ вы никогда не заметите. В то же время, это либо перемещение 64 страниц, либо одной — почувствуйте разницу.

Сравниваем это с x86, где у нас варианта всего два, при том никак не одновременных — либо 4КБ, либо 4МБ (справедливости ради — в PowerPC 7xx и 9xx рулят страницы по 4КБ и, иногда, по 16 МБ, правда, их можно использовать одновременно). Первое суть есть онанизм, мелковато, когда память меряется сотнями мегабайт. Второе суть есть дурдом, поскольку своппинг достаточно неплохо убивает, хотя, если работать только с реальной физической памятью, то имеет свой интерес, были даже такие патчи к ядру Linux.

В результате можно прийти к выводу, что умело варьировать размеры страниц в районе 4 — 512КБ должно быть довольно полезно.

Спускаемся в дерево исходников Linux, внимательно заглядываем в каталог ‘include/asm-ppc’. Видим файл ‘page.h’. А в нем:

/* PAGE_SHIFT determines the page size */
#define PAGE_SHIFT      12
#define PAGE_SIZE       (1UL << PAGE_SHIFT)

То есть, на довольно интересной платформе, позволяющей делать всякое, мы по прежнему онанируем со страничками в 4КБ. При этом, есть еще один неприятный эффект — фрагментация виртуальной памяти при том, что иногда требуется выделять цельные куски памяти больших размеров.

О последнем, кстати, хорошо показано в этих слайдах. Правда, там использовался изврат с надстройкой выделения больших кусков над страничками по 4 КБ. При этом потеряли 0,5% производительности, но значительно выиграли во внешней фрагментации (при этом, надо заметить, использовались статичные куски по 256 КБ, не варьируемые).

Безусловно, есть технические трудности организации выделения памяти варьируемыми кусками (даже в тесте выше использовалась статика, хоть и большая), однако, так ли они велики, и что здесь сложнее — придумать эффективные структуры данных и алгоритм, нежели потом описать все это на C? Вопрос остается открытым.

Впрочем, на пути к варьируемым страницам есть и другие препятствия, например, системный вызов getpagesize(), который должен возвращать размер страницы. Стоит ли говорить, что это значит? Правда, справедливости ради, надо отметить, что его работоспособность не гарантируется для всех архитектур, а из POSIX 1003.1-2001 этот вызов вообще исключили…

Поездка во Псков

05.02.2006 01:52:19

Съездил, посетил город, где провел значительную часть своей жизни. Получилось интересно и познавательно. Перед выездом вспомнил о том, что у меня есть старый-старый, но весьма даже рабочий дисковый MP3-плеер, к которому пришлось докупить наушники и батарейки. С наушниками, кажется, облажался — от долгого пребывания в ухе как-то не очень комфортно те самые ухи себя чувствуют. Но, все равно, было приятно выехать на Eurolines в среду, в 19:15, и по дороге слушать LugRadio. Однако при подъезде к точке финиша начало колбасить и кстати подвернулся Tool.

Собственно, все время провел у старого друга Павла, как-никак, а год не виделись. Что могу сказать? Чудовищно приятно видеть, на что способен увлеченный чем-то человек. Год назад его игра на гитаре была явно неуверенной, хотя с не менее явным старанием, теперь уверенности в движениях прибавилось значительно и я был просто закидан страшными словами с музыкальным наклоном. И что сказать — приятно послушать, звучит. Вспоминаются собственные потуги в стиле «я крутой гитарист», да, это было смешно, все-таки времени надо положить немало на нормальное овладение техникой, зато результат… Боюсь, что будет через год, при том, что рвения, похоже, стало ни чуть ни меньше, а даже наоборот. 🙂 Да, и спасибо за прием, было весьма здорово (отдельный респект за выпечку, сам понимаешь кому :))!

Хотя, второй год подряд я за собой приношу технические проблемы — в прошлом году при мне в сети появилось напряжение около 350 вольт стараниями соседа, кой-чего погорело. А в этом году, сразу на следующий день после моего прибытия, когда я очнулся и понял, что мне срочно нужен выход в Сеть, обрубили для профилактики телефон. 🙂 Спас голубой зуб и GPRS, хотя буквально пару недель назад мне задавали вопрос — ну и на кой тебе нужен тот самый зуб, да еще и тариф с абоненткой… 🙂

В пятницу был вечер встречи выпускников Псковского Технического Лицея, где, естественно, я и присутствовал. Вместе с еще тремя учениками своей же группы. Что удивило, причем, не лучшим образом, поскольку у нас, вроде как, аж целых пять лет прошло с момента выпуска. Но, впрочем, было и приятное общение, и разное. Особо хочу отметить девушку Сашу (фамилия вылетела из головы), которая вела официальную часть вечера (совместно с неким парнем). Памятуя свое участие в организации выпускных вечеров, могу сказать, что девушка явно умеет говорить и работать с залом — респект.

Что еще позабавило — лицей, кажется, становится отделением консерватории, выпускники прошлого года не постеснялись кой-чего сыграть, довольно несложное (ну, если откровенно, то примитивное, но тут я всегда вспоминаю фильм Americana о The Offspring, чего они по началу долбили — тоже жуть была :)), но вообще смело, что и радует. Соответственно, группа девушек из 90-х групп (9-х классов) тоже выступила с двумя гитарами и чуть ли не хором. В общем, с этой стороны прям даже радостно. 🙂

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

Стало быть, сегодня, с помощью сябров из Новополоцка, добрался назад в Питер. По дороге опять слушал LugRadio и еще Krisha Das, попутно много думал.

Прибыл, и очутился в том самом единочестве… Впрочем, единочество это уже сейчас, когда настрой какой-то появился, а то было одно расстройство — Настя появится через неделю, дома довольно прохладно (но черта-с два я включу обогреватель! Тут, конечно, щели в окнах что надо, потому и прохладно, но я так просто не сдамся :)), гора немытой посуды (аж кран не повернуть — зажат), какая-то непролазная грязь в прихожке, отсутствие чего-либо съедобного…

Пришлось вспоминать, чего можно сделать, дабы не было голодно, ну а потом как-то подуспокоился, закрутился в привычном Сетевом пространстве, начал расправляться с потоком писем и новостей… Потом еще посуду вымыл. Это дело я вообще люблю, на самом деле, по вечерам — довольно медитативное занятие, никуда не надо торопиться, аккуратненько так, спокойненько приводим в идеальный порядок посуду… Говорят, посуду я мою очень долго. 🙂

Так вот как-то отошел и вроде бы все вполне ничего. Еще раз подумал — съездил явно хорошо. А значит все хорошо. 🙂

С первым обжимом!

23.01.2006 16:02:38

Просто чудовищно круто получается. Я теперь, фактически, мега-специалист в области сетей, обожму кого угодно! Удивительно, но обжатый мной Ethernet шнурок ака кабель UTP 5 категории, заработал с первого раза. 🙂

Смерть подтверждена, -60 ГБ

15.01.2006 09:16:41

Ну что ж, badblocks дал окончательный диагноз моему мелкому внешнему винчестеру на 60 ГБ (зато он 2,5″… был) — мертв и мало на что годен. Впрочем, для тестов он еще сгодится, если, конечно, меня не обломит переставлять винчестеры в ноутбуке, поскольку первая его половина читается очень даже неплохо, а в районе 32-33 ГБ начинается веселье. Ничего ценного не потерял (забавно, что первично смерть была обнаружена после копирования и попытки прочитать ISO-шки Solaris 10, которые устарели уже через пару недель с релизом 1/06 :)), он лежит уже месяц в полумертвом состоянии.

Вообще, это уже его вторая смерть, первая произошла еще год назад, когда он был внутре ноутбука. Там он уже казался безнадежным пациентом (постоянные ошибки чтения, диагноз badblocks…) и для копирования данных было решено засадить его во внешний кейс. Откуда все замечательно скопировалось и где он потом вот еще год поработал. Забавно, конечно.

Получается, минус 60 ГБ общего веса накопителей. Ай-ай-ай, получается, что сейчас вокруг меня всего 490 ГБ, а значит я не дотягиваю 12 ГБ до полутерабайта. Неприятное ощущение. Что ли пойти еще винчестер какой купить?

Добавлено:
Вай, как вредно заниматься по утру счетоводством. Не хватает ведь все-таки 22 ГБ. А еще ведь, по идее, надо учесть, что гигабайты нынче на винчестерах маркетинговые, а не натуральные… 🙁

Всё! Сдал; Железные обновки

13.01.2006 15:02:55

Ура. До шестого февраля в универе можно не появляться. Чудовищно тому рад, поскольку надо много работать. Последний экзамен сдал на 4, что забавно, фактически, сорвалась пятерка, хотя не готовился я к нему вообще. Но когда на экзамене можно пользоваться всем, сдать его можно. 🙂

Попутно позавчера приобрел винчестер на 250 ГБ и внешнюю коробчонку к нему. Коробчонка с вентилятором и шнурочками USB 2.0 и IEEE1394 aka Firewire. Включил через последний, работает на ура (уже зашифровал AES 128 бит и вворотил туда Reiser4), дико тому рад. Проблемы со свободным местом уходят надолго. 🙂 Заодно постараюсь наладить нормальные бэкапы, благо теперь есть куда.