Основы многопоточного программирования
Параллельное программирование возникло в 1962 г. с изобретением каналов — независимых аппаратных контроллеров, позволявших центральному процессору выполнять новую прикладную программу одновременно с операциями ввода-вывода других (приостановленных) программ. Параллельное программирование (слово параллельное в данном случае означает "происходящее одновременно"') первоначально было уделом разработчиков операционных систем. В конце 60-х годов были созданы многопроцессорные машины. В результате не только были поставлены новые задачи разработчикам операционных систем, но и появились новые возможности у прикладных программистов.
Первой важной задачей параллельного программирования стало решение проблемы так называемой критической секции. Эта и сопутствующие ей задачи ("обедающих философов", "читателей и писателей" и т.д.) привели к появлению в 60-е годы огромного числа научных работ. Для решения данной проблемы и упрощения работы программиста были разработаны такие элементы синхронизации, как семафоры и мониторы. К середине 70-х годов стало ясно, что для преодоления сложности, присущей параллельным программам, необходимо использовать формальные методы.
Обзор области параллельных вычислений
Семафоры
Нотация совместно используемых примитивов
Матричные вычисления
Визуальное программирование и MFC
В связи с тем, что сегодня уровень сложности программного обеспечения очень высок, разработка приложений Windows с использованием только какого-либо языка программирования (например, языка C) значительно затрудняется. Программист должен затратить массу времени на решение стандартных задач по созданию многооконного интерфейса. Реализация технологии связывания и встраивания объектов - OLE - потребует от программиста еще более сложной работы.
Чтобы облегчить работу программиста практически все современные компиляторы с языка C++ содержат специальные библиотеки классов. Такие библиотеки включают в себя практически весь программный интерфейс Windows и позволяют пользоваться при программировании средствами более высокого уровня, чем обычные вызовы функций. За счет этого значительно упрощается разработка приложений, имеющих сложный интерфейс пользователя, облегчается поддержка технологии OLE и взаимодействие с базами данных.
Современные интегрированные средства разработки приложений Windows позволяют автоматизировать процесс создания приложения. Для этого используются генераторы приложений. Программист отвечает на вопросы генератора приложений и определяет свойства приложения - поддерживает ли оно многооконный режим, технологию OLE, трехмерные органы управления, справочную систему. Генератор приложений, создаст приложение, отвечающее требованиям, и предоставит исходные тексты. Пользуясь им как шаблоном, программист сможет быстро разрабатывать свои приложения.
Введение в Visual C++
Сохранение и восстановление состояния объектов
Описание объектов СОМ
Сверхбыстрый импорт API-функций
Импорт API-функций "отъедает" существенный процент от общего времени загрузки исполняемых файлов и возникает естественное желание его сократить. Системный загрузчик крайне неэффективен и выполняет множество лишних проходов. Разбирая стандартную таблицу импорта, для каждой импортируемой функции он выполняет _полный_ _поиск_ соответствующего имени/ординала в таблице экспорта, не обращая внимания на то, что экспорт KERNEL32.DLL да и других системных библиотек упорядочен по алфавиту и, если таким же образом упорядочить импорт пользовательских программ, все API-функции можно слинковать за _один_ проход, используя минимум операций сравнения.
В принципе, не заставляет нас пользоваться стандартным загрузчиком. Формат таблиц экспорта хорошо описан и при желании необходимые API-функции можно импортировать и "вручную". В частности, линкер ulink от Юрия Харона именно так и поступает, загружая необходимые ему API-функции по вышеописанному алгоритму, однако, это еще не предел оптимизации и далеко не предел.
Продолжение
Раздел - Государственное регулирование
Разговор о том, как большие начальники хочут получить с нас денег. Неймется им. С другой стороны мы тоже не вчера в этих бизнесах. Отсюда и возникающие соревновательные процедуры - кто кому ловчее расскажет "за бабло". Вариантов немного. Один из дележка. Мне как-то он вовсе не заходит. Поэтому приходится знать противника в лицо.
Справка по кодеку DivX
Кодирование видео за один проход. Имеет недостаток, когда обсчет видео происходит за один проход, то качество сцен может получиться разным, в зависимости от динамики. Для этого придумали однопроходовое кодирование с постоянным качеством. Использование этой опции может привести не неожиданному размеру, в зависимости от того, какой битрейт потребуется для тех или иных сцен.
Bitrate Calculator
Справочник по делопроизводству
Основной целью программной платформы DocsVision является решение проблем, возникающих при создании комплексной системы автоматизации документооборота и процессов административного управления в организации.
При разработке программной платформы DocsVision компания Digital Design преследовала следующие цели:
Обеспечить средство для создания инфраструктуры комплексных интегрированных систем, реализующих весь комплекс задач, связанных с автоматизацией документооборота и административных процессов поддержки управления.
Обеспечить возможность поэтапного внедрения отдельных компонентов и реализации различных приложений, образующих интегрированную систему автоматизации документооборота.
Существенно ускорить разработку приложений в области автоматизации документооборота.
Создать набор законченных интегрированных между собой решений, автоматизирующих типовые процессы обработки документов и реализующих типовые задачи поддержки управления современной организации.
Продолжение
Справочник по сетевым настройкам
Когда к компьютеру пытается подключиться кто-то из Интернета или локальной сети, такие попытки называют «непредусмотренными запросами». Когда на компьютер поступает непредусмотренный запрос, брандмауэр Windows блокирует подключение. Если на компьютере используются такие программы, как программа передачи мгновенных сообщений или сетевые игры, которым требуется принимать информацию из Интернета или локальной сети, брандмауэр запрашивает пользователя о блокировании или разрешении подключения. Если пользователь разрешает подключение, брандмауэр Windows создает исключение, чтобы в будущем не тревожить пользователя запросами по поводу поступления информации для этой программы.
Если идет обмен мгновенными сообщениями с собеседником, который собирается прислать файл (например фотографию), брандмауэр Windows запросит подтверждения о снятии блокировки подключения и разрешении передачи фотографии на компьютер. А при желании участвовать в сетевой игре через Интернет с друзьями пользователь может добавить эту игру как исключение, чтобы брандмауэр пропускал игровую информацию на компьютер.
Хотя имеется возможность отключать брандмауэр Windows для отдельных подключений к Интернету или локальной сети, это повышает вероятность нарушения безопасности компьютера.
Доступ с использованием кабелей DirectParallel
Как работает брандмауэр?
Примеры использования команд
Поставщики услуг Интернета
Клиент для сетей Microsoft
Параметры повторного набора номера
Общие сведения о подключениях к Интернету
Автоматический набор номера
Автоматизация сетевого подключения
Стратегии межсетевого взаимодействия
Cовместимость с различными чипсетами
Переделка внутренних Courier V.Everything для работы без ISA
Как известно, благодаря идиотской политике intel сейчас трудно найти современную материнскую плату с ISA слотами. В результате весь парк исашных устройств стройными колоннами двинулся на свалку. И если исашным контроллерам IDE, SCSI, а также звуковым и видео карточкам место именно на свалке, то модемы туда отправлять было и рано, и глупо. Посудите сами - зачем COM-порту, например, bus mastering? Зачем вообще отдавать ресурсы COM-портов другим устройствам? Особенно меня "умиляет" безумная идея яйцеголовых из intel вообще отказаться от COM портов. Можно подумать, что кроме как в компьютерах COM-порты больше нигде не используются.
Тем не менее, ситуация уже имеет место быть, а значит, нужно как-то выкручиваться. Наиболее удачным из существующих решений мне представляется переходник USB-ISA. Однако это не самое дешевое решение, хоть и самое простое и перспективное. Если Вам не светит в ближайшее время разжиться таким адаптером, то все написанное ниже - для Вас.
Продолжение
32 Урока Borland Delphi
Допускаю, что вы пока еще не слышали этого названия. Хотя, быть может, и слышали. Delphi - это греческий город, где жил дельфийский оракул. И этим именем был назван новый программный продукт с феноменальными характеристиками. Шесть месяцев назад компания Borland представила на суд программистской общественности новый программный продукт, о котором к моменту его выхода ходило множество слухов. Первая версия продукта явилась результатом разработки, которая велась компанией в обстановке строжайшей секретности в течение двух с половиной лет.
Hадо отметить, что к моменту выхода продукта обстановка вокруг компании Borland складывалась не лучшим для нее образом. Поговаривали о возможной перепродаже компании, курс акций компании неудержимо катился вниз. Сейчас, по прошествии полугода, уже можно без всяких сомнений утверждать, что период трудностей позади (даже несмотря на то, что российская пресса нет-нет, да и вынет на свет божий залежалый перевод статьи полугодовой давности). Hеверно, конечно, было бы говорить, что только Delphi явился причиной восстановления компании; кроме Delphi, у Borland появились и другие замечательные продукты, так же, как и Delphi, основывающиеся на новых, появившихся недавно у компании Borland, технологиях. Я имею в виду новые BDE 2.0, BC++ 4.5, Paradox for Windows 5.0, dBase for Windows 5.0, BC++ 2.0 for OS/2.
Тем не менее, именно Delphi стал тем продуктом, на примере которого стало ясно, что у Borland есть еще порох в пороховницах, и что один единственный продукт может настолько удачно сочетать несколько передовых технологий.
Уроки 1-19
Понятно о Visual Basic NET
Определим шутливо сплайн, как «ломаную, которая хочет стать кривой». Задается сплайн, как и ломаная, массивом точек. Метод DrawCurve рисует сплайн, то есть соединяет соседние точки массива плавной кривой. Степень «желания» стать кривой, определяет третий параметр метода, так называемое напряжение (tension). Если он равен нулю, то и «желание нулевое», а значит сплайн остается ломаной, как вы и видите на самой левой фигуре из Рис. 17.5. При увеличении численного значения этого параметра сплайн становится все более и более «кривым», что вы можете видеть на остальных фигурах. Если параметр не указывать, он считается равным 0,5.
Сложные фигуры
Инкапсуляция – «Объект в футляре»
Из чего состоят пространства имен
Ответы к задачам
Adobe InDesign CS2
Добро пожаловать в Adobe® InDesign® CS2. InDesign - мощное программное средство, предназначенное как для разработки, так и для производства печатной продукции. Оно характеризуется точностью, высоким уровнем управляемости и простотой интеграции с другим программным обеспечением компании Adobe, ориентированным на работу с графикой. С помощью InDesign можно выпускать полноцветную полиграфическую продукцию профессионального качества на высокопроизводительных станках цветной печати, распечатывать документы на разнообразных выводных устройствах, таких как настольные принтеры, и создавать файлы в различных форматах, например, PDF или HTML.
Писатели, художники, дизайнеры и издатели как никогда прежде могут расширить свою аудиторию и использовать для этого беспрецедентное разнообразие информационных носителей. Именно на многообразие форм данных ориентирована концепция сетевого издательства компании Adobe (Adobe Network Publishing), реализуемая с помощью средств создания визуально насыщенного содержимого, которое доступно везде, в любое время и на любом устройстве. Программа InDesign поддерживает данный подход благодаря полной интеграции с приложениями Adobe Photoshop8, Adobe Illustrator® и Adobe GoLive®. В книге «Adobe InDesign CS2. Официальный учебный курс» описываются новые функции, технологии и методы, поддерживающие новые веяния в издательской сфере.
Рабочее пространство программы InDesign
Верстка документа
Работа с фреймами
Импортирование и редактирование текста
Работа с текстом
Работа с цветом
Импортирование и связывание изображений
Создание таблиц
Создание векторных изображений
Работа с прозрачностью
Создание интерактивных документов
Объединение файлов в книги
Подготовка к печати и печать
Экспорт в формат PDF
Обеспечение согласованности цвета
Работа с программой Adobe InDesign
До появления настольных издательских систем наборщики подготавливали документы к печати на монтажном столе, размечая края страниц на больших листах специальными карандашами, а также указывая места расположения полей и колонок и способ обрезки страниц. Такие листы, называемые оригинал-макетом, использовалась в качестве макета публикации. Публикации программы InDesign представляют собой электронные макеты. Как и в случае с бумажным вариантом оригинал-макета, вам необходимо задавать размеры страниц, поля и ширину колонок. В вашем распоряжении имеются расширенные средства верстки публикации.
В программе InDesign предусмотрено несколько способов добавления страниц в документ. Простейший из них - задание определенного количества страниц перед созданием документа. Тем не менее иногда требуется добавить страницы после того, как работа над документом уже начата. Чтобы добавить пустые страницы, необходимо открыть палитру Pages (Страницы).
Одним из наиболее сложных текстовых эффектов в программе InDesign является висячая пунктуация по отношению к выровненному тексту. Такая пунктуация получается за счёт установки оптического выравнивания поля, которое перемещает символы пунктуации наружу от границы текста, что-создает иллюзию более однородного края текста. Кроме того, оптическое выравнивание поля также перемещает части засечек за границу поля. Оптическое выравнивание поля устанавливается с помощью опций палитры Story (Макет).
Точки пера
Размещение изображений
Повторное связывание графики при открытии документа
Обтекание
Добавление пустых страниц
Контрольная проверка книги
Размещение текста в полуавтоматическом режиме
Создание и удаление слоев
Сохранение элементов в библиотеке
Вставка символа табуляции
Поля раздела Table Border
Системы защиты компьютера
В странах, где высок уровень компьютеризации, проблема борьбы с компьютерной преступностью уже довольно давно стала одной из первостепенных. И это не удивительно. Например, в США ущерб от компьютерных преступлений составляет ежегодно около 5 млрд долларов, во Франции эти потери доходят до 1 млрд франков в год, а в Германии при помощи компьютеров преступники каждый год ухитряются похищать около 4 млрд марок. И число подобных преступлений увеличивается ежегодно на 30— 4()°с.
Угрозы компьютерной безопасности
Программы-шпионы
Парольная защита операционных систем
Безопасность компьютерной сети
Основы криптографии
Криптографические ключи
Криптографические протоколы
Надежность криптосистем
Телекоммуникационные технологии.Сети TCP-IP
Очевидно, что BGP-маршрутизаторы, находящиеся в одной АС, также должны обмениваться между собой маршрутной информацией. Это необходимо для согласованного отбора внешних маршрутов в соответствии с политикой данной АС и для передачи транзитных маршрутов через автономную систему. Такой обмен производится также по протоколу BGP, который в этом случае часто называется IBGP (Internal BGP), (соответственно, протокол обмена маршрутами между маршрутзаторами разных АС обозначается EBGP –External BGP).
Отличие IBGP от EBGP состоит в том, что при объявлении маршрута BGP-соседу, находящемуся в той же самой АС, маршрутизатор не должен добавлять в AS_PATH номер своей автономной системы. Действительно, если номер АС будет добавлен, и сосед анонсирует этот маршрут далее (опять с добавлением номера той же АС), то одна и та же АС будет перечислена AS_PATH дважды, что расценивается как цикл.
Это очевидное правило влечет за собой интересное следствие: чтобы не возникло циклов, маршрутизатор не может анонсировать по IBGP маршрут, полученный также по IBGP, поскольку нет способов определить зацикливание при объявлении BGP-маршрутов внутри одной АС.
Задача внешеней маршрутизации
Тело LSA типа 2
Протокол затопления (flooding)
Создание серверных приложений на языке PERL
Прежде чем приступить к последовательному ознакомлению с не знакомым для вас языком, должен оговориться и сказать, что все примеры да и сам язык описанию которого посвящена эта книга это Perl версии 5.003 для операционной системы FreeBSD версии 2.01. Существуют реализации этого языка для операционных систем OS/2 , MS-DOS и Windows NT но они немного отстают по возможностям от оригинала, рожденного в недрах Unix.
Постраничный вывод новостей с разбиением по датам
Вывод хеша в порядке вставки с использованием Tie::IxHash
От простого к сложному
Массивы и списочные данные
Apache
Библиотеки и модули
СGІ-программирование
Упражнения
Язык программирования Форт
Форт (FORTH) -- это мощный язык программирования, который обеспечивает высокую производительность ЭВМ. Предлагаемая книга является одновременно учебником и справочником, позволяющим овладеть языком Форт независимо от того, начинающий вы программист или опытный. Вы можете пользоваться этой книгой как учебником для классных или индивидуальных занятий, при этом не предполагается знание основ ЭВМ или программирования. Книга содержит полное описание языка, начинающееся с упрощенного изложения принципов работы компьютеров. Постепенно осуществляется переход к более сложным понятиям, не описанным в других книгах. Вы сами можете выбрать материал и скорость изучения с учетом своего уровня подготовки. В книге приводится множество примеров, показывающих стиль программирования на языке Форт, включая полный текст программы редактора, большое количество упражнений для приобретения опыта, уверенности и, что более важно, полезных технических навыков. В даны ответы к упражнениям. Излагаются обе версии языка Форт в соответствии со стандартами 1979 и 1983 гг. Кроме того, изложены вопросы, не освещаемые в стандартах, в том числе организация файлов данных, обработка алфавитно-цифровых текстов, арифметика с плавающей запятой, а также различные инструментальные программные средства, что поможет вам расширить сферу применения языка Форт для ваших нужд. Даны примеры функций усовершенствованной реализации языка MMSFORTH.
Что такое Форт?
Операторы сравнения и ветвления
Память Форта. Словари и контекстные словари
Ответы к упражнениям