Главная » Статьи для тега "которые"

Бинарные операции

Добавлено Дата: 6 May, 2012 категория: Haskell

В языке Haskell для удобства программирования  имеется возможность определять бинарные операции, назначая им имена в виде значков или их последовательностей. Собственно, все арифметические операции: (*), (/) и т. д. определены в стандартном модуле Prelude (хотя это и сделано через примитивные  функции для базовых типов). Эта техника позволяет создавать функции, которые записываются между своими аргументами и имеют более традиционный внешний вид (с точки зрения математики).

Читать »

Дополнительные источники информации

Добавлено Дата: 3 May, 2012 категория: Программирование звука

Обработка  звука   это  огромная область  знания,  и  в  одной  книге  невозможно рассмотреть  все  ее  аспекты.  Прочитав  данное  руководство,  вы  приобретете  знания  о  том,  как с помощью  самостоятельно  написанных  программ  работать  с файлами распространенных форматов, и у вас накопится коллекция программ на C++, которые помогут вам на первых  порах. Однако  существует множество других  моментов,  необходимых  для  изучения.  Ниже  приведен  список  источников  информации, которые, на мой взгляд, необходимо упомянуть:

Читать »

Музыкальные инструменты

Добавлено Дата: 3 May, 2012 категория: Программирование звука

Легче  всего  рассматривать  музыкальный  инструмент  как  некий  объект,  воспроизводящий  звук.  Однако  это  не  вполне  соответствует  действительности.  Проблема,   возникающая   во   многих   объектно-ориентированных   разработках,   заключается  в  том,  что  один  инструмент  может  воспроизводить  множество  различных звуков  одновременно  и  сложно  спроектировать  этот  объект,  который  естественным образом поддерживал бы такой режим работы. Более удачный подход представить  инструмент  как  средство  генерации  нотных  объектов,  которые  можно  заставить воспроизводить звук.

Читать »

Что такое звук?

Добавлено Дата: 1 May, 2012 категория: Программирование звука

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

Читать »

Реализация системных вызовов

Добавлено Дата: 1 May, 2012 категория: Ядро Linux

Реализация системного вызова  в ОС  Linux  не  связана с поведением обработчика системных вызовов. Добавление нового  системного вызова  в операционной системе Linux  является сравнительно простым делом.  Тяжелая работа  связана с разработкой и реализацией самого   системного вызова.  Регистрация  его  в ядре  проста. Давайте рассмотрим шаги, которые необходимо предпринять, чтобы  написать новый системный  вызов  в операционной системе Linux.

Читать »

События окна

Добавлено Дата: 1 May, 2012 категория: Java

Во время работы  программы  могут происходить различные события:    пользователь  нажмет  на  кнопку,  веб-­?браузер  решит перерисовать окно, и так далее. Я уверен, что вы пытались нажимать на кнопки вашего калькулятора из  главы  5, но эти кнопки еще не были готовы реагировать на ваши действия.

Читать »

Таймеры и управление временем

Добавлено Дата: 30 April, 2012 категория: Ядро Linux

тслеживание хода времени очень  важно  для ядра.  Большое количество функций, которые выполняет ядро, управляются временем (time  driven), в отличие

от тех функций, которые выполянются по событиям

Читать »

Барьеры и порядок выполнения

Добавлено Дата: 28 April, 2012 категория: Ядро Linux

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

Читать »

Сборка ядра

Добавлено Дата: 23 April, 2012 категория: Ядро Linux

 достаточно  проста.  Это  может  показаться удивительным,  но  она даже  более  проста, чем  компиляция и инсталляция других  системных компонентов, как,  например библиотеки glibc . В ядрах  серии  2.6  встроена новая  система конфигурации и  компиляции,  которая позволяет сделать  эту задачу  еще  проще и является долгожданным улучшением по  сравнению с серией ядер  2.4.

Читать »

Внизу обработки нижних половин

Добавлено Дата: 21 April, 2012 категория: Ядро Linux

В этой  главе  были  рассмотрены  три  механизма,  которые  используются  для  реализации  отложенных  действий  в ядре  Linux, — отложенные  прерывания   (softirq), тасклеты  (tasklet)  и очереди отложенных действий  (work queue).  Было  показано,   как эти  механизмы  работают  и как  они  реализованы.  Также  обсуждались основные  моменты,  связанные  с использованием  этих механизмов  в собственном  программном коде,  и  было  показано,   какие  у них неподходящие  названия.  Для  того чтобы восстановить  историческую  справедливость,   мы  также  рассмотрели  те  механизмы  обработки  нижних  половин,  которые  существовали  в предыдущих версиях ядра Linux: механизмы  ВН и task queue.

Читать »

Генератор  случайных чисел ядра

Добавлено Дата: 20 April, 2012 категория: Ядро Linux

ядре  Linux реализован генератор случайных чисел, который теоретически может генерировать истинно случайные числа. Генератор случайных чисел собира-

ет в

пул энтропии

шумы внешней среды, которые поступают из драйверов устройств.

Читать »

Организация команды разработчиков

Добавлено Дата: 20 April, 2012 категория: Ядро Linux

Разработчик и  — эт о  хакеры ,  которы е  занимаютс я  развитие м  ядр а  Linux . Некоторые делают  это  за деньги, для  некоторых это  хобби, но  практически все  делают  это  с удовольствием. Разработчики ядра,  которые внесли существенный вклад, перечислены в файле  CREDITS,  который находится в корневом  каталоге дерева  исходных  кодов   ядра.

Читать »

Синусоидальные сигналы

Добавлено Дата: 19 April, 2012 категория: Программирование звука

Ha  рис.  24.1  показаны  некоторые  важные  характеристики  синусоиды.  Частота  (frequency)   это  количество  полных  циклов,  которые  укладываются  в  одну секунду; она связана с периодом (duration) времени, необходимым для одного цикла.  Вертикальная  шкала  обозначает  амплитуду  (amplitude),  которая  соответствует величине отсчета, электрического напряжения, тока или давления воздуха.

Читать »

Критические участки и состояние конкуренции за ресурсы – ЧАСТЬ 1

Добавлено Дата: 17 April, 2012 категория: Ядро Linux

Ветки  кода, которые получают  доступ  к совместно используемыми данным и манипулируют ими, называются критическими участками  (critical  region).  Обычно небезопасно нескольким потокам выполнения одновременно обращаться к одному  и тому же ресурсу.  Для  предотвращения конкурентного доступа  во время  выполнения критических участков  программист, т.е.  Вы, должен  гарантировать, что код выполняется атомарно без перерывов, так если бы весь критический участок  был одной неделимой машинной инструкцией. Если  два потока  выполнения одновременно находятся в критическом участке, то это— ошибка в программе. Если  такое  вдруг случается, то такая ситуация называется состоянием, конкуренции за ресурс (состояние "гонок", race condition). Название связано с тем, что потоки  как  бы соревнуются друг с другом за доступ к ресурсу.  Следует обратить  внимание на то, насколько редко такая  ситуация может возникать, — поэтому  обнаружение состояний конкуренции за ресурсы  при  отладке  программ часто  очень  сложная задача, потому  что  подобную ситуацию очень  трудно  воспроизвести. Обеспечение гарантии того, что конкуренции  не будет и, следовательно, что состояний конкуренции за ресурсы  возникнуть не может, называется синхронизацией.

Читать »

Приложение C Стиль программирования

Добавлено Дата: 15 April, 2012 категория: Программирование звука

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

Читать »