Антон Шаманаев - Солнце на краю мира

Тут можно читать онлайн Антон Шаманаев - Солнце на краю мира - бесплатно ознакомительный отрывок. Жанр: Научная Фантастика, издательство Литагент Ридеро. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

Антон Шаманаев - Солнце на краю мира краткое содержание

Солнце на краю мира - описание и краткое содержание, автор Антон Шаманаев, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
2406 год. Инженер Артур Лесин изобрел аппарат, создающий копии объектов из ничего. «Философский камень» вот-вот будет представлен общественности, но военные власти рьяно этому сопротивляются. Артур, бывший офицер и разведаналитик, готов защищать свое детище до конца. Однако ему дают понять, что мир устроен куда сложнее. В одну картину вдруг складываются и странные обстоятельства смерти жены Артура, и его кристально ясные сны, в которых подобное происходило в российском городке начала XXI века.

Солнце на краю мира - читать онлайн бесплатно ознакомительный отрывок

Солнце на краю мира - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Антон Шаманаев
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

На узенький край окна соседнего здания сел воробей, повертел головой, и спрыгнул.

Краевые ситуации… Откуда я это вспомнил? Краевые задачи… Диффуры тут ни при чем. А вот краевые ситуации рассмотреть стоит. Что-то работает, доходит до края, и – что происходит потом?

Я вернулся к своему коду и стал с новой точки зрения его рассматривать. За четверть часа выписал на бумажку штук пятьдесят операций, где что-то «ходит по краю». Потенциальная нехватка памяти или превышение разрядности регистра… Из этого списка выбрал шорт-лист наименее элементарных ситуаций, чтобы проверить и отсечь их в первую очередь.

Стенка шкафа, который давеча одарил меня старомодным пиджаком Деева, была запорошена белой пылью, и я стал пальцем рисовать на ней «кирпичики»: регистры – друг за другом в ряд, в сторонке – стек, сегменты памяти. Зарисовывал каждую краевую ситуацию стрелочками: что откуда берется и куда пишется. Стенка быстро пришла в негодность, однако я добрался до операции с составным регистром и вдруг задумался: а как физически он устроен?

Не поленился, отыскал на портале инженерную спецификацию процессора, перерисовал с нее кирпичики регистров – поставил их в правильном порядке. Из шестнадцати регистров две пары идут друг за другом и образуют два составных регистра – это os:op и qs:qp . И туда, и туда обычно кладутся пойнтеры – координаты объектов, с которыми в данный момент происходит работа. В первом из этих составных регистров у меня объект-образец, в другом – результирующий объект. С ним я делаю MSA, и поэтому их, объектов-молекул, в реальности очень много. И координаты их всех проходят поочередно через qs:qp . А что происходит, если составной регистр переполняется? Поднимается флаг переполнения, как обычно. На такой случай предусмотрено особое сообщение, но оно не появляется. Лог сообщений пуст. Значит, qs:qp не переполняется.

Стоп! Но ведь у меня объектов – на много порядков больше штук, чем способен вместить этот регистр! Как он может не переполняться?.. В памяти всплыл афоризм времен молодого Опаляна, когда-то висевший на двери Дэвидсона: «Излишнее доверие к рукотворному затмевает разум». Дорогой мой.

Идея довольно безумная: переполнение регистра – хрестоматийная штука, которую отлавливают на первых же инженерных тестах. Потом я вспомнил: регистры qs и qp добавились позже. Наши ребята сами добавили их в процессор для серии Multus – это третье поколение. В первом поколении – Warper – стоял серийный процессор от SP Laboratories, и были лишь стандартные регистры. Начиная с Multus и до текущего поколения – шестого по счету – мы заказываем процессоры с особой архитектурой под наши нужды.

Бросив художества, я сворганил маленькую программку – тест на переполнение составного регистра qs:qp . Программа запустилась и завершилась без ошибок.

Я похолодел. Куда же девается лишняя старшая единичка при переполнении? Куда-то ведь она девается! Глянул на шкаф – перед qs и qp у меня был намалеван «кирпичик» es – сегментный регистр, который на практике используется редко. Согласно спецификации, регистры qs и qp физически пристегнуты именно к es . Я еще раз запустил тестовую программку и посмотрел, что на выходе получается в es . И увидел там свою единичку…

Ватными пальцами я набрал Ави Новшека. Может ли переполняться составной регистр qs:qp и гадить куда-то? Быть не может совсем никак, ответил Ави. Может ли он гадить в es хоть теоретически? Не может в принципе, исключено. А он, говорю, гадит, Ави. И флаг переполнения не поднимается.

Почему, думаю, за долгие годы этого не увидел Дэвидсон? Он мог и не знать того факта, что регистры физически связаны, поскольку в цивилизованном мире это не имеет значения для программиста. Он мог не использовать es , а может, у него qs:qp не переполнялся, ведь проблема переполнения встала совсем недавно, когда появилась MSA, и объектов стало столько, сколько молекул. На серии Oris он MSA не тестировал, поскольку там эта функция была неофициальной, а на Porta он MSA тестирует в данный момент… И вероятно, что и в его комнате вскорости пробило бы потолок, если бы аккумуляторы не перегрелись. Да, слишком много случайностей сошлось в одном месте! В результате – всего один выстрел в небо сквозь толщу стены, чудом уцелевший Гарри… Прямо скажем, все могло закончиться гораздо хуже.

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

– Что у тебя стряслось? – начал он с порога, оглядывая мою подгорелую и побелевшую, как пекарный цех, комнату. Я сразу закрыл за ним дверь.

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

– А все-таки – что у тебя стряслось? – повторил он, указывая на потолок.

Я объяснил, что это и есть результат того, что ребята его подгадили в самый неподходящий момент и в неожиданном месте.

– Спишу ремонт из вашего премиального фонда, – сказал я как будто в шутку.

– Списывай откуда хочешь, – Ави было не до шуток, он усиленно чесал репу, – Главное, что реально попа… Такое нельзя выпускать на рынок… Переделывать, тестировать – месяца полтора, а то и больше…

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

– Что же делать? – глупо спросил я.

Но Ави уже занервничал, а это хорошо, в режиме легкой паники он горазд придумывать самые оригинальные хитрости. Он слонялся из угла в угол, прижав кулак к подбородку, что-то сопоставлял, а под ногами на каждом шагу хрустел порошок. Наконец, он выдал:

– Мы в спецификации объявим регистр es нерабочим! RFU 24 24 Reserved for Future Use – зарезервировано для использования в будущем ( англ. ) .

Я даже похлопал в ладоши:

– Очень оригинально, Ави! Но тебе не кажется, что знающие люди нас обсмеют? Регистр es существует полтыщи лет во всех процессорах мира, а мы берем и говорим, что у нас его нет.

– Во-первых, мне до фонаря, кто над чем смеется. Во-вторых, ценность Porta – в новых функциях, а уж никак не в том, что он следует инженерным канонам… Всего-то допишем в драйвер процессора программную проверку es – если там появляется единичка, сразу же переносить ее в overflow flag 25 25 Флаг переполнения ( англ. ) … Часа на три работы.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Антон Шаманаев читать все книги автора по порядку

Антон Шаманаев - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Солнце на краю мира отзывы


Отзывы читателей о книге Солнце на краю мира, автор: Антон Шаманаев. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x