В этой статье показано, что анализ CPI может служить как для изучения производительности микропроцессора, так и для настройки программного обеспечения. Благодаря средствам мониторинга производительности, имеющимся в процессоре POWER5, анализ работы программ при помощи разбора CPI становится полезным инструментом для анализа влияния архитектуры системы на производительность.
Были времена, когда журналируемые файловые системы рассматривались как нечто избыточное, годное лишь для исследовательских целей. Но сегодня журналируемая файловая система ext3 выбирается в Linux® по умолчанию. В этой статье вы узнаете об идеях, приведших к появлению такого рода систем, а также о том, почему эти системы обеспечивают лучшую целостность данных в случае сбоя питания или краха системы. Узнайте о различных современных журналируемых файловых системах и загляните в будущее файловых систем нового поколения.
Выборочное подтверждени — дополнительная возможность TCP, необходимая для эффективного использования всей доступной пропускной способности некоторых сетей. Хотя оптимизация SACK хороша с точки зрения пропускной способности, на практике обработка этого типа подтверждений расходует много вычислительных ресурсов отправителя TCP. Эта уязвимость может быть использована узлом злоумышленника даже при обычных условиях в сети. В этой статье представлены экспериментальные оценки серьезности данной проблемы для стека TCP в Linux® Режим SACK включен по умолчанию в большинстве дистрибутивов.
Процесс загрузки в системе Linux® включает в себя несколько стадий. Однако вне зависимости от того, выполняется ли загрузка на стандартном персональном компьютере с архитектурой x86 или же во встраиваемой системе на основе PowerPC®, процесс загрузки оказывается в значительной степени одинаковым. В данной статье рассматривается процесс загрузки в системе Linux от начальной bootstrap-загрузки до запуска первого приложения, работающего в пользовательском пространстве. Кроме этого, мы рассмотрим и другие вопросы, имеющие отношение к процессу загрузки, такие как имеющиеся загрузчики, распаковка ядра, начальный RAM-диск и другие элементы загрузки Linux.
В данной статье описываются сходства и отличия операционных систем UNIX® и Linux®. Многие считают, что Linux является UNIX-подобной операционной системой. Linux – это ОС с открытым исходным кодом, которая реализует некоторые идеи и принципы, одинаково свойственные и UNIX, но это не стопроцентный UNIX как, например, Solaris, AIX®, HP-UX и другие ОС. Эта статья охватывает различные аспекты отличий, от технических, например, поддержка ядра и файловой системы, до конкретных программ, их доступности и различий в их администрировании.
Ознакомьтесь с файловыми системами ext2 (вторая расширенная файловая система), ext3 (третья расширенная файловая система) и Reiser4 и узнайте, как создать свою собственную файловую систему Reiser4. Наиболее широко используемая ext2 - это традиционная UNIX®-овая файловая система, которая плохо подходит для современных жестких дисков больших размеров. В файловой системе ext3 добавлено журналирование, но больше почти ничего. Если вам нужно что-то реально продвинутое, можно испробовать современную файловую систему Reiser4.
В этой статье будут рассмотрены два метода управления буферами элемента SPE – двойная буферизация и мультибуферизация. Вы узнаете, как можно модифицировать существующий код, чтобы обеспечить одновременную работу с несколькими активными буферами и позволить контроллеру MFC определять порядок, в котором они заполняются, что обеспечивает соответствующее структурирование кода, при котором устраняются все ненужные ветвления.
В этой части серии статей Программирование высокопроизводительных приложений на процессоре Cell BE вы примените ваши знания о SPU для программирования процессора Cell Broadband Engine™ (Cell BE) на языке C/C++. Узнайте, как использовать векторные расширения, настроить компилятор на предсказание ветвлений и выполнять передачи DMA, используя язык C/C++. Теперь я перейду к рассмотрению языка C/C++, чтобы вы могли увидеть, как заставить компилятор выполнять большую часть работы за вас. Для того чтобы вы могли использовать SPU-расширения языка C/C++, в начало вашего кода должен быть включен заголовочный файл spu_intrinsics.h.
В этой статье будут углубленно рассмотрены счет рабочих циклов инструкций, побитовые манипуляции и другие нюансы, которыми обычно славится язык ассемблера. После прочтения статьи вы, возможно, будете уверены, что вы никогда больше не будете программировать на ассемблере. Тем не менее, целью статьи является не заставить вас повседневно программировать на ассемблере, а дать понимание того, что необходимо компилятору для оптимизации вашего кода, и предоставить возможность при необходимости дополнить ваш код собственными фрагментами на ассемблере. Знание того, как работает язык ассемблера SPU, также поможет вам управлять процессором с помощью языков программирования более высокого уровня. В последующих статьях мы будем использовать язык C, и я покажу вам, как можно использовать эти знания об оптимизации в реальных примерах. Процессор SPU имеет множество расширений языка C; знание языка ассемблера SPU поможет вам понять их, а знание приемов оптимизации SPU – эффективно использовать эти расширения.
Ядро Linux® продолжает развиваться - появляется поддержка новейших технологий, растут надежность, масштабируемость и производительность. Одним из важнейших компонентов ядра версии 2.6 является планировщик задач, разработанный Инго Молнаром (Ingo Molnar). Данный планировщик является динамическим, поддерживает распределение нагрузки, а его алгоритм имеет сложность O(1). Данная статья расскажет об этих и некоторых других свойствах планировщика.
В восьмидесятые годы прошлого века люди мечтали о том, что со временем будут ездить на ракетомобилях, а в их домах всем будут управлять компьютеры - освещением, к примеру. С ракетомобилями не вышло, но удаленно включать и выключать электроприборы поможет протокол X10. В этой статье Питер Сибах расскажет о настройке устройств X10 и управлении ими с помощью общедоступного оборудования и пары сотен строк кода.
Слушайте музыку и смотрите DVD на вашем Linux®-компьютере без необходимости длительной установки и настройки программ. Изучите четыре пакета — MoviX2, GeeXBoX, WOMP! и LLGP — которые вернут развлечения на ваш компьютер.
Продолжаем углубленное рассмотрение процессорных элементов SPE (Synergistic processor elements) процессора Cell Broadband Engine™ (Cell BE) и их работы на самом низком уровне. В этой части рассматриваются вопросы упорядочивания данных в памяти и средств взаимодействия элементов SPE.
Эта серия статей посвящена анализу модели CPI, чтобы помочь вам понять, где ваша система совершает холостые такты при работе ядра, и выявить вытекающие из этого проблемы. Мы осуществим обзор архитектуры POWER5, обсудим средства мониторинга производительности POWER5, а также события производительности и средства сбора информации в ОС Linux® и AIX®. Будет показано, как настроить набор CPI для вашей системы при помощи программы pmcount. Наконец, мы познакомимся с примером анализа CPI для выявления и решения проблем производительности.
Первая статья посвящена средствам мониторинга производительности, доступным в системах на базе POWER5.
Протокол Service Location Protocol (SLP) является интернет-стандартом RFC и программной оболочкой, которая позволяет сетевым приложениям находить и настраивать сетевые сервисы. В этой статье будет представлен протокол Service Location Protocol (SLP), разработанный для упрощения процесса сопровождения настроек. Более подробно будет рассмотрена архитектура протокола обнаружения и предоставления сервисов.
Используя Xdmx и некоторые простые советы по настройке, мы создадим единую вычислительную среду для четырех мониторов, один из которых будет подключен к настольному ПК, а в качестве остальных будут использованы три ноутбука. Мы узнаем о высокопроизводительной среде визуализации, использующей систему интерактивного рендеринга Chromium и гигабитное сетевое подключение для передачи 3D графики в режиме реального времени между мониторами высокого разрешения. Также мы изучим средства создания собственной мультиэкранной среды и объединения нескольких устройств для повышения эффективности работы.
В этой статье я хочу отойти от дальнейшего статистического анализа как такового (в основном потому, что я сам не имею необходимых знаний в области статистики, чтобы выбрать наиболее подходящий метод; и мой соавтор Брэд Хантинг, и многие читатели знают намного больше в этой области). В дополнение к богатству статистических понятий, предложенных в первых двух статьях, я ознакомлю читателя с некоторыми тонкостями, лежащими в основе языка программирования R. Предыдущие статьи рассказывали о функционально-ориентированном программировании в R; я подозреваю, что многим читателям будут больше близки процедурные и объектно-ориентированные языки программирования.
Кроме того, ранее мы рассматривали R применительно к конкретным задачам. В этой статье будет обсуждаться создание повторно используемых и модульных компонентов для разработки R.
Эта статья — вторая часть рассказа об R. Статья решает две задачи. Во-первых, мы продолжим анализ данных, рассматривавшихся в предыдущей статье, чтобы подробнее рассмотреть возможности самого языка R. Во-вторых, мы исследуем общие закономерности данных и покажем, как находить их, используя R.
Виртуальная файловая система /proc предлагает новый подход к взаимодействию ядра Linux® и пользовательского пространства. В этой файловой системе содержатся виртуальные файлы, путем чтения и записи которых можно манипулировать структурами ядра. В отличие от обыкновенных файлов, их содержимое динамически генерируется ядром. Данная статья расскажет вам о виртуальной файловой системе /proc и покажет ее в действии.
Оптимизация производительности программ является чрезвычайно важной задачей. Часто приходится сталкиваться с функциональными программами, написанными на C или C++, которые работают слишком медленно, потребляют слишком много памяти или, в худшем случае, делают и то и другое. Одним из важнейших средств, предоставляемых C/C++ разработчику для увеличения производительности и предотвращения утечек памяти, является управление выделением и перераспределением памяти. Это руководство проясняет принципы управления памятью на примере создания собственного диспетчера памяти для специальных случаев.