воскресенье, 31 октября 2010 г.

Семафоры Posix, размещаемые в памяти | Д. Солнышков

Мы измеряем скорость работы семафоров Posix (именованных и размещаемых в памяти). В листинге А.24 приведен текст функции main, а в листинге А.23 — текст функции incr.

Листинг А.23. Увеличение счетчика с использованием семафоров Posix в памяти

//bench/incr_pxsem1.с

37 void *

38 incr(void *arg)

39 {

40  int i;

41  for (i = 0; i < nloop; i++) {

42   Sem_wait(&shared.mutex);

43   shared.counter++;

44   Sem_post(&shared.mutex);

45  }

46  return(NULL);

47 }

Листинг А.24. Функция main для семафоров Posix, размещаемых в памяти

//bench/incr_pxsem1.с

1  #include "unpipc.h"

2  #define MAXNTHREADS 100

3  int nloop;

4  struct {

5   sem_t mutex; /* размещаемый в памяти семафор */

6   long counter;

7  } shared;

8  void *incr(void *);


9  int

10 main(int argc, char **argv)

11 {

12  int i, nthreads;

13  pthread_t tid[MAXNTHREADS];

14  if (argc != 3)

15   err_quit("usage: incr_pxseml <#loops> <#threads>");

16  nloop = atoi(argv[1]);

17  nthreads = min(atoi(argv[2]), MAXNTHREADS);

18  /* инициализация размещаемого в памяти семафора 0 */

19  Sem_init(&shared.mutex, 0, 0);

20  /* создание всех потоков */

21  Set_concurrency(nthreads);

22  for (i = 0; i < nthreads; i++) {

23   Pthread_create(&tid[i], NULL, incr, NULL);

24  }

25  /* запуск таймера и разблокирование семафора */

26  Start_time();

27  Sem_post(&shared.mutex);

28  /* ожидание завершения всех потоков */

29  for (i = 0; i < nthreads; i++) {

30   Pthread_join(tid[i], NULL);

31  }

32  printf("microseconds: %.0f usec\n", Stop_time());

33  if (shared.counter != nloop * nthreads)

34   printf("error: counter = %ld\n", shared.counter);

35  exit(0);

36 }

18-19 Создается семафор, инициализируемый значением 0. Второй аргумент в вызове sem_init, имеющий значение 0, говорит о том, что семафор используется только потоками вызвавшего процесса.

20-27 После создания всех потоков запускается таймер и вызывается функция sem_post.


40. Процесс установления цены на новый товар. Регулирование ценообразования. Елена Юрьевна Логинова

Процесс установления цены относительно сложен и состоит из следующих этапов.

1. Определение целей фирмы и задач ценовой политики.

2. Выявление всех факторов, которые могут влиять на процесс ценообразования.

3. Анализ уровня продаж за определенный период.

4. Определение уровня спроса на перспективу.

5. Оценка всех затрат фирмы.

6. Исследование и анализ цен товаров-конкурентов.

7. Определение метода ценообразования.

8. Выработка ценовой стратегии.

9. Установление конечной цены.

10. Выявление реакции конечных потребителей и фирм-посредников на установленную цену.

Также специалисты по маркетингу должны учитывать психологический фактор:

1) многие потребители воспринимают цену как индикатор качества товара;

2) установление цены с учетом престижности (характерно для дорогих товаров);

3) стратегия неокругленных сумм (например, 100 руб. воспринимается значительно больше 99 руб.).

Регулирование ценообразования.

На ценообразование влияют различные факторы внешнего воздействия: политика государства, тип рынка, количество участников канала товародвижения, конкуренты, покупатели.

Государство оказывает влияние путем фиксирования цены, ее регулирования с помощью установления «правил игры» при свободных рыночных ценах.

Способы государственного воздействия.

1. Ввод государственных прейскурантных цен.

2. «Заморозка» цен на определенное время.

3. Фиксация цен компаний-монополистов.

4. Установление предельных надбавок к фиксированным ценам.

5. Установление предельного уровня цен на конкретные товары.

6. Установление конкретного уровня разового повышения цен на определенные товары.

В системе свободных рыночных цен государство может:

1) вводить запрет на горизонтальное и вертикальное фиксирование цен;

2) запретить ценовую дискриминацию;

3) запретить демпинговые цены.

Цены также определяются типом рынка: чистая конкуренция, монополистическая конкуренция, олигополия и монополия.

Цены зависят и от количества участников канала товародвижения и могут быть: оптовыми, закупочными и розничными.

При определении конечной цены необходимо учитывать и влияние цен конкурентов, а также их количество.


четверг, 28 октября 2010 г.

А. Г. Гузикевич. Определите собственный процесс визуализации

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

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

Рассмотрим следующий пример.

Не рационализированный процесс построения графиков

1. Создать пустую битовую карту (150?150 пикселей).

2. Скопировать фоновое изображение на пустую битовую карту. (Фоновое изображение имеет размеры 150?150 пикселей, непосредственное копирование.)

3. Вычертить координатные оси. (Создаются и уничтожаются перья Red Pen, Blue Pen и Yellow Pen.)

4. Рассчитать количество делений на каждой из осей.

5. Вычертить все линии делений.

6. Вывести текст для каждого деления. (Создается и уничтожается кисть White Brush, создается и уничтожается шрифт 8 пунктов.)

7. Нарисовать данные для каждого из наборов данных, для которых строятся графики. (Создаются и уничтожаются перья Red Pen, Orange Pen, Yellow Pen и Green Pen.)

8. Нарисовать линии между точками.

9. Вычертить квадраты вокруг каждой точки.

10. Нарисовать название графика. (Создается и уничтожается кисть White Brush.)

11. Нарисовать таблицу цветовых ключей, идентифицирующих наборы данных.

12. Нарисовать рамку. (Создается и уничтожается перо White Pen.)

13. Нарисовать шаблонные линии для каждого набора данных. (Создаются и уничтожаются перья Red Pen, Orange Pen, Yellow Pen и Green Pen.)

14. Нарисовать текстовые подписи для каждого набора данных. (Создаются и уничтожаются кисти Red Brush, Orange Brush, Yellow Brush и Green Brush, создается и уничтожается шрифт 8 пунктов.)

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

Рассмотрим более рациональный вариант организации процесса построения графиков.

Создание ресурсов

1. Создать битовую карту (150?150 пикселей), если до этого память для нее не была распределена.

2. Создать необходимые перья: Red Pen, Orange Pen, Yellow Pen, Green Pen и Blue Pen.

3. Создать необходимые кисти: White Brush, Red Brush, Orange Brush, Yellow Brush и Green Brush.

4. Создать необходимые шрифты: шрифт 8 пунктов.

5. Очистить битовую карту.

6. Скопировать фоновое изображение на битовую карту.

7. Вычертить координатные оси.

8. Рассчитать количество делений на каждой из осей.

9. Вычертить все линии делений.

10. Нарисовать текст для каждого деления.

11. Нарисовать данные для каждого из наборов данных, для которых строятся графики.

12. Нарисовать линии между точками.

13. Вычертить квадраты вокруг каждой точки.

14. Нарисовать название графика.

15. Нарисовать таблицу цветовых ключей, идентифицирующих наборы данных.

16. Нарисовать рамку.

17. Нарисовать шаблонные линии для каждого набора данных.

18. Нарисовать текстовые подписи для каждого набора данных.

19. Освободить память, занимаемую перьями, кистями и шрифтами. 


91 - Александр Назайкин

Например, «линейное программирование – один из самых часто используемых инструментов прикладных исследований. Его функция – работать с оптимальным распределением скудных ресурсов между конкурентными деятельностями с учетом ограничений, накладываемых конкретной ситуацией. Данные ограничения могут иметь финансовый, технологический, маркетинговый или организационный характер, но при этом они выражены в форме математического неравенства. Иными словами, линейное программирование – это метод математического представления планирования возможно лучшего размещения ограниченных ресурсов в случаях, когда применяемая модель использует линейные функции.

Линейное программирование как техника решения подобных проблем была разработана Джорджем Дантцигом в 1947 году как способ помочь решению военных проблем, возникших у военно-воздушных сил США. Его открытие – простой метод – в сочетании с вычислительными способностями компьютеров обеспечивал ответ на множество прежде неразрешимых проблем планирования, возникавших у властей и у бизнеса. Модель может быть выражена как максимизация линейных ограничений. Рассмотрим формулирование следующего совсем упрощенного примера, в котором рекламодатель может использовать приемы линейного программирования с целью нахождения „лучшей” комбинации размещения в трех различных СМИ.

Если рекламодатель желает максимизировать количество невзвешенных показов путем покупки рекламы в одном ежемесячном журнале (v1) и двух еженедельных изданиях (v2 и v3), то тогда функция может быть выражена следующим образом: совокупная невзвешенная стоимость показов (Total unweighted exposure value – UEV) = aUEV + bUEV + cUEV, где a, b и c – номер размещения в v1, v2 и v3, соответственно.

Рекламодатель может захотеть сделать это в рамках ограничений, наложенных скудным рекламным бюджетом, и в этом случае это ограничение будет представлено как следующее неравенство: общий рекламный бюджет ? a (цена размещения в v1) + b (цена размещения в v2) + c (цена размещения в v3). Из-за очевидной ограниченности количества выпусков, как их максимального количества, так и минимального, будут иметь место следующие зависимости:

a ? 12

b ? 52

c ? 52

a ? 0

b ? 0

c ? 0

Дополнительные ограничения могут выражать желание рекламодателя использовать v2 как минимум три раза чаще, чем v3, что будет представлено как b ? 3 c. Без этого простого метода решение данной проблемы пришлось бы искать методом проб и ошибок».

(Quelch J., Farris P. Cases in Advertising and Promotion Management. – Richard D. Irwin Inc., 1991. Р. 430–431.)

(обратно)

Антон Иванович Первушин, Ракетный самолет Х-34

Ракетный самолет Х-34 создавался в рамках программы «РЛВ» для проверки выполнимости запуска небольших коммерческих и научных полезных грузов на борту «Вентура Стар».

В июне 1996 года компания «Орбитал Саенсес Корпорейшен» («Orbital Sciences Corporation») получила контракт на 60 миллионов долларов на проектирование, создание и испытания Х-34.

Х-34 должен был летать при любых погодных условиях, приземляться в автономном режиме и иметь необходимые средства аварийной эвакуации экипажа. Запуск его предполагалось осуществлять с помощью самолетов L-1011, а после набора необходимой высоты должен был включаться собственный ракетный двигатель Х-34, разгоняющий аппарат до скорости 8 Махов и высоты в 75 километров.

Габариты Х-34: длина — 17,78 метра, размах крыла — 8,45 метра, высота — 3,5 метра.

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

В конце 1998 года НАСА и «ОСК» договорились о проведении 25 дополнительных испытательных полетов Х-34.

В марте 1999 года закончились полномасштабные испытания двигателя для Х-34 на стенде Космического центра имени Стенниса в Миссисипи. Двигатель «Fastrac», разработанный в космическом центре НАСА имени Маршалла проработал в течение 20 секунд. Тяга составила 267 тонн. Двигатель, использующий керосин и жидкий кислород, оказался очень экономичен. Перед установкой на Х-34 планировалось провести до 85 испытаний двигателя «Fastrac».

Однако 1 марта 2001 года НАСА объявило о прекращении финансирования работ в рамках программ Х-33 и Х-34.

Еще за год до этого многим стало ясно, что НАСА не справляется с проектом, переоценив возможности современных технологий. Так, газета «Вашингтон Пост» сообщала своим читателям, что программа Х-33 увязла в проблемах и «слишком амбициозна». Невысокие характеристики линейного ЖРД, неустойчивость клинообразного летательного аппарата при разных скоростях полета, а также «перебор» по массе конструкции буквально замучили проектантов.

Сильнейшая оппозиция программе со стороны других подрядчиков, ведущих альтернативные разработки, в конце концов вынудила НАСА принять решение: программа «РЛВ» была закрыта в пользу конкурентных проектов.


суббота, 23 октября 2010 г.

Виталий Петрович Леонтьев. Удаление сообщений

Любой почтовый ящик – что реальный, что виртуальный, – имеет обыкновение постепенно превращаться в обыкновенную свалку, наполняясь устаревшими и ненужными вам письмами.

Поэтому, время от времени, в папках с сообщениями следует проводить «генеральную» уборку, очищая их от накопившегося хлама.

Удалить письмо просто – достаточно установить курсор на его заголовок и нажать кнопку Del.

Правда, в этом случае письмо все-таки не удаляется до конца – оно просто перемещается в специальную папку Удаленные, аналог Корзины Windows. И правильно – а вдруг вы удалили письмо по ошибке и рано или поздно захотите его вернуть? Тогда вам будет достаточно просто перетащить письмо мышкой из папки Удаленные в папку Входящие или другую созданную вами тематическую папку. А можно сделать иначе – щелчком правой кнопки мышки вызвать Контекстное меню удаленного вами сообщения и выбрать пункт Переместить в папку. Хотя, на мой взгляд, мышкой все же удобнее...

Если вы хотите удалить целую группу писем – например, от одного отправителя или по одной теме – можно вновь обратиться к услугам сортировщика писем Outlook Express (его работа описана в главе Поиск и сортировка сообщений). Только операция, которую мы будет применять к письмам с его помощью, будет иной – не перемещение из папки в папку, а удаление.

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

И последнее. Как и Корзину Windows или ваше домашнее мусорное ведро, папку Удаленные необходимо все-таки время от времени очищать. Ведь хранить мусор годами в надежде, что вы ненароком удалили что-нибудь полезное, лишено всякого смысла – база писем Outlook Express разбухает, программа работает медленнее...

Выполнить процедуру очистки, как и в случае с Корзиной, можно, вызвав щелчком правой клавиши мышки Контекстное меню папки Удаленные и выбрав пункт Очистить папку «Удаленные».

Если же вы хотите, чтобы ваша Корзина... т. е. папка Удаленные... очищалась автоматически в момент выхода из Outlook Express, вы можете зайти в меню Сервис Параметры Обслуживание и установить галочку напротив пункта Очищать папку «Удаленные» перед выходом.


В. В. Мельниченко | Создание ярлыков

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

Рис. 5.60. Рабочий стол с большим количеством различных Ярлыков и папок

Создать ярлык можно и по-другому. Опция Создать>Ярлык доступна как в контекстном меню объектов, так и в меню Файл любой папки (если искомый объект выделен в данной папке).

Чтобы создать ярлык, выполните правый щелчок на объекте (файле, папке и т. п.) и выберите Создать>Ярлык. Ярлык появится в той же папке, в которой находится сам объект. Перетащите созданный ярлык на рабочий стол или в папку, в которой вы хотите его использовать. Изменяя имя ярлыка, не нужно беспокоиться, что переименование отразится на оригинальном файле. Напротив, переименование — удобное средство, которое позволяет избежать путаницы, особенно при удалении.

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

Если предложение верное, щелкните на кнопке Да. Если система «ошиблась», загляните в свойства ярлыка и в поле Объект укажите правильный путь.


среда, 13 октября 2010 г.

Микрофишки / Журнал «Компьютерра»

Крупнейший звукозаписывающий лейбл Universal в тестовом режиме начал продавать в Интернете музыку, лишенную защиты от копирования (DRM). Такие композиции уже реализуются через сервис RealNetworks и Wal-Mart; чуть позже планируется подключить Best Buy, Amazon и другие каналы (онлайнового магазина Apple среди них нет). Цены те же, что и на защищенные треки (около доллара); правда, пока эксперимент распространяется только на американских потребителей.

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

Напомним, что пионером в распространении "беззащитной музыки" среди акул медиа-индустрии выступила EMI, в мае открывшая продажу файлов без DRM-защиты в Apple iTunes Store. Тогда многими в музыкальном мире этот шаг был встречен с большим скепсисом. Но, похоже, времена меняются: видимо, даже дельцы музыкальной индустрии начинают понимать простую истину, что защита файлов, какой бы сложной она ни была, мешает не столько пиратам, сколько честным потребителям. ОБ

* * *

Компания iRobot выпустила новую 500-ю серию роботов-пылесосов Roomba, завоевавших широкую известность не только как средство поддержания чистоты в доме, но и как отличная платформа для моделирования энтузиастами собственных роботов (на базе пылесоса выпущен даже специальный робоконструктор Create). «Румба» научилась пробираться через густой ворс и не пугаться смены покрытий пола (прежним версиям не всегда удавалось качественно обрабатывать края ковров), не биться со всей дури о стены и ноги хозяев (препятствие распознается сенсорами загодя, и аппарат подъезжает к нему осторожно), а также не всасывать электрические шнуры и прочие неподходящие для уборки вещи. Вероятно, скоро следует ожидать и апгрейда платформы Create. НЯ

* * *

Пилотный проект Мининформсвязи по созданию комплекта свободного ПО для использования в школах (см. «КТ» #697, "В первый класс – с чистой совестью") принес первую новость: несколько крупных российских поставщиков и разработчиков СПО объявили о том, что будут участвовать в планируемых конкурсах единым фронтом. Любопытно, что в альянс вошли не только разработчики дополняющих друг друга решений, но и практически конкурирующие компании ALT Linux и Linux Online. К ним присоединилась Etersoft, известная своими разработками на базе Wine для запуска под Linux специфичных для российских реалий Windows-приложений (типа "1С"), и Naumen, разрабатывающая бизнес-решения. Первое заседание рабочей группы нового альянса состоится на следующий день после сдачи этого номера в печать и подробности пока неизвестны – следите за новостями. ИЩ

* * *

Любовь к «нано» охватила все цивилизованное человечество: ученые из Технического университета Берлина объявили о создании прототипа устройства хранения данных, основанного на микроголографии, реализованной с использованием наноструктур в фоточувствительных полимерах. Проект Microholas, координируемый доктором Сусанной Орлик (Susanna Orlic), надеется достичь показателя 1 Тбайт на диск размера CD/DVD к 2010 году.

В новой технологии два лазерных луча используются для создания в наноструктурах многослойного диска голографических аналогов обычных «питов» CD. Фокусируясь на различной глубине фотополимерного слоя, они создают пространственную структуру хранения информации с невиданной плотностью. Пока известно, что запись будет вестись на десяти уровнях с пятью длинами волны, а скорость достигает 50 Мбайт/с, но выйдет на 200 Мбайт/с к обещанному сроку.

В нынешних опытах достигнута запись с плотностью DVD, зато велась она в тридцати слоях фотополимера Aprilis толщиной всего 300 мкм. Первые опыты проводились на зеленых лазерах, сейчас ученые перешли на синие/фиолетовые лазерные диоды с более короткой длиной волны. Новые полимеры будут основаны на наноструктурах, чувствительных именно к синим лазерам. Примечательно, что создаются они под оптические спецификации, разработанные участниками Microholas.

Создатели проекта клянутся, что диски будут дешевы, и надеются заинтересовать этим производителей. О цене дисководов речь пока не идет. И о надежности носителей – тоже. Тем не менее обещания берлинских оптиков выглядят заманчиво на фоне прогнозируемых к 2010 году 100-гигабайтных перезаписываемых дисков Blue-ray и 60-гигабайтных HD DVD. ИП


воскресенье, 10 октября 2010 г.

ГЛАВА 6. ВСТРОЕННЫЕ ПРЕДИКАТЫ - У. Клоксин

В этой главе будут описаны некоторые встроенные предикаты, которые может обеспечивать Пролог-система. Что имеется в виду, когда мы говорим, что предикат является встроенным? Это значит, что определение этого предиката уже имеется в Пролог-системе и нет необходимости иметь собственное его описание. Встроенные предикаты предоставляют возможности, которые нельзя реализовать с помощью описаний на чистом Прологе. Они также могут предоставлять удобные средства, избавляя программиста от необходимости самому определять эти предикаты. В действительности мы уже встречались с некоторыми встроенными предикатами – это предикаты для ввода и вывода, обсуждавшиеся в гл. 5. Оператор «отсечения» тоже можно рассматривать как встроенный предикат.

Предикаты для ввода-вывода показывают, что встроенные предикаты могут иметь «побочные эффекты». Это значит, что при доказательстве согласованности целевого утверждения, содержащего такой предикат, помимо конкретизации аргументов предиката могут возникнуть дополнительные изменения. Это, естественно, не может случиться с предикатами, определенными на чистом Прологе. Другой важный факт, касающийся встроенных предикатов, состоит в том, что они могут быть определены только для аргументов конкретного вида. Например, рассмотрим предикат '‹' определенный таким образом, что Х‹Y выполняется, если число X меньше, чем число Y. Подобное отношение не может быть определено в Прологе без помощи посторонних средств, использующих некоторые знания о числах. Таким образом,  – это встроенный предикат, а его определение использует некоторые операции вычислительной машины, на которой реализована Пролог-система, для определения относительной величины чисел (представленных в виде двоичного кода или каким-либо иным способом).

Что произойдет, если мы используем в качестве целевого утверждения предикат X‹Y, где X является атомом или даже более того, если как X, так и Y неконкретизированы? Определение предиката, данное на машинном языке, окажется просто неприменимым. Поэтому мы должны оговорить, что предикат X‹Y может быть использован в качестве целевого утверждения, если на момент, когда делается попытка выполнить его, обе переменные X и Y имеют в качестве значений числа. Что произойдет в случае, когда это условие не выполняется, зависит от конкретной реализации Пролог-системы. Возможно, доказательство согласованности такого целевого утверждения просто закончится неудачей. А может быть, будет напечатано сообщение об ошибке и система выполнит ряд действий, соответствующих этой ситуации (подобных прекращению попыток ответить на текущий вопрос).


Александр Ватаманюк | Настройка протокола и проверка связи

Настроив подключение к домену или группе, вы тем самым подготовите компьютер к вхождению в сетевую рабочую группу, но не более того. Если в сети имеется статическая адресация, то вы не сможете полноценно войти в нее и работать. Чтобы сделать это, придется дополнительно настроить IP-протокол.

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

Рис. 16.5. Список сетевых подключений


Примечание

Если на Рабочем столе нет значка Сетевое окружение, то выполните команду Пуск > Панель управления и дважды щелкните в открывшемся окне на значке Сетевые подключения.

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

Примечание

Если к компьютеру никаких сетевых устройств не подключалось и подключения к другим компьютерам не выполнялись, то в окне сетевых подключений будет всего одно сетевое подключение.

Если щелкнуть правой кнопкой мыши на активном сетевом подключении и выбрать в появившемся меню пункт Свойства, то откроется окно свойств данного подключения (рис. 16.6).

Рис. 16.6. Свойства выбранного сетевого подключения


Чтобы настроить IP-протокол, нужно найти его (Протокол Интернета (TCP/IP)) в списке среди других протоколов и служб подключения и дважды щелкнуть на нем кнопкой мыши или нажать кнопку Свойства – откроется окно свойств протокола (рис. 16.7).

Рис. 16.7. Настраиваем IP-адрес, маску подсети и другие параметры


Для ввода IP-адреса и маски подсети используются поля IP-адрес и Маска подсети.

Если в сети настроен DNS-сервер, то необходимо установить переключатель в положение Использовать следующие адреса DNS-серверов и в поле Предпочитаемый DNS-сервер ввести IP-адрес DNS-сервера.

Если в сети с доменом настроен DHCP-сервер и адреса выдаются автоматически, то необходимо установить переключатель в положение Получить IP-адрес автоматически.

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

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

Самый простой способ проверить связь – использовать системную утилиту ping.

Прежде всего необходимо открыть командную строку, выполнив команду Пуск > Все программы > Стандартные > Командная строка и набрав в строке следующее: ping 192.168.0.1 (рис. 16.8).

Рис. 16.8. Удачное выполнение команды


Внимание!

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

Если физическая связь с указанным адресом существует, то есть кабель не поврежден и оборудование исправно, то результат будет положительным. По умолчанию программа посылает по указанному IP-адресу всего четыре пакета, чего вполне достаточно для проверки связи. При наличии связи время ответа в рассматриваемом примере составляет менее 1 мс. Возможна также ситуация, когда этот показатель колеблется в широком диапазоне. Значит, связь есть, но она далеко не самая устойчивая и быстрая, что, в свою очередь, означает слишком большую длину сегмента или наличие коллизий в сети. В этом случае можно попробовать подключить кабель к другому порту на концентраторе или коммутаторе.

Если связи с указанным устройством нет, то результат будет отрицательным (рис. 16.9).

Рис. 16.9. Неудачное выполнение команды


В этом случае необходимо проверить следующее:

• IP-адрес;

• маску подсети;

• рабочую группу или домен;

• корректность установки сетевой карты (используйте Диспетчер устройств);

• если сетевая карта неинтегрированная, то контакт в слоте с адаптером или порт (если используется USB-адаптер);

• работоспособность адаптера (должен гореть индикатор наличия связи на задней панели);

• правильность обжима коннекторов на кабеле;

• состояние всех портов, задействованных для подключения компьютера.


вторник, 5 октября 2010 г.

Архитектура системы, H. M. Ручко

Моделирование и документирование архитектуры системы — это ее описание па самом высоком уровне. Гради Буч, Джеймс Рамбау и Айвар Джекобсон определяю, архитектуру как

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

Моделирование и документирование архитектуры системы должно охватывать ее логические и физические элементы, а также структуру и поведение системы на самом высоком уровне.

Архитектура системы — это ее описание с различных точек зрения, но с акцентом на структуре и организации системы. Ниже представлены различные точки зрения.

Прецедент (вариант использования)  Описывает поведение системы с точки зрения конечно г о пользователя

Процесс  Описывает процессы и потоки, используемые в механизмах обеспечения параллелизма и синхронизации

Назначение  Описывает функции системы и услу г и, предоставляемые конечному пользователю

Реализация  Описывает аппаратные компоненты, используемые для создания физической системы

Развертывание  Описывает про г раммные компоненты и узлы, на которых они выполняются, в поставляемой системе

Очевидно, что эти «поля зрения» (представления о системе) частично перекрываются и взаимодействуют между собой. Например, в описании назначения системы могут упоминаться прецеденты, а при описании ее реализации процессы часто представляют в качестве компонентов. Программные компоненты используются как в части реализации, так и части развертывания системы. При описании архитектуры системы очень полезно строить диаграммы, которые отражают каждый из перечисленных выше ее «портретов».

Систему можно разложить иа подсистемы и модули. Подсистемы и модули могут быть подвергнуты дальнейшей декомпозиции и разложены на компоненты, узлы, классы, объекты и интерфейсы. В языке UML подсистемы и модули, используемые на архитектурном уровне документации, называются пакетами. Пакет можно использовать для организации элементов в группу, которая описывает общую цель этих элементов. Пакет представляется в виде прямоугольника со вкладкой (ярлыком), расположенной над его верхним левым углом. Символ пакета должен содержать его название. Пакеты в системе могут связывать отношения, построенные на основе композиции, агрегирования, зависимости и наследования. Для того чтобы отличать один тип пакета от другого, можно использовать индикаторы стереотипов. На рис. 10.19 показаны пакеты, входящие в систему составления расписаний. Для системного пакета используется индикатор <<system>> (<<система>>), а для пакета уровня подсистемы — индикатор «subsystem>> (<<подсистема>>). Подсистемы связаны с системой отношением агрегирования.

Одни пакеты могут содержать другие пакеты. В этом случае имя пакета указывается во вкладке. На рис. 10.19 также показано содержимое каждой подсистемы.


A6.6. Указатели и целые , Вик С. Штаркман

К указателю можно прибавлять (и вычитать из него) выражение целочисленного типа; последнее в этом случае подвергается преобразованию, описанному в A7.7 при рассмотрении оператора сложения.

К двум указателям на объекты одного типа, принадлежащие одному массиву, может применяться операция вычитания; результат приводится к целому посредством преобразования, описанного в A7.7 при рассмотрении оператора вычитания.

Целочисленное константное выражение со значением 0 или оно же, но приведенное к типу void *, может быть преобразовано в указатель любого типа операторами приведения, присваивания и сравнения. Результатом будет NULL-указатель, который равен любому другому NULL-указателю того же типа, но не равен никакому указателю на реальный объект или функцию.

Для указателей допускаются и другие преобразования, но в связи с ними возникает проблема зависимости результата от реализации. Эти преобразования должны быть специфицированы явным оператором преобразования типа или оператором приведения (A7.5 и A8.8).

Указатель можно привести к целочисленному типу, достаточно большому для его хранения; требуемый размер зависит от реализации. Функция преобразования также зависит от реализации.

Объект целочисленного типа можно явно преобразовать в указатель. Если целое получено из указателя и имеет достаточно большой размер, это преобразование даст тот же указатель; в противном случае результат зависит от реализации.

Указатель на один тип можно преобразовать в указатель на другой тип. Если исходный указатель ссылается на объект, должным образом не выровненный по границам слов памяти, то в результате может произойти ошибка адресации. Если требования на выравнивание у нового типа меньше или совпадают с требованиями на выравнивание первоначального типа, то гарантируется, что преобразование указателя в другой тип и обратно его не изменит; понятие "выравнивание" зависит от реализации, однако в любой реализации объекты типа char предъявляют минимальные требования на выравнивание. Как описано в A6.8, указатель может также преобразовываться в void * и обратно, значение указателя при этом не изменяется.

Указатель может быть преобразован в другой указатель того же типа с добавлением или удалением квалификаторов (A4.4, A8.2) того типа объекта, на который этот указатель показывает. Новый указатель, полученный добавлением квалификатора, имеет то же значение, но с дополнительными ограничениями, внесенными новыми квалификаторами. Операция по удалению квалификатора у объекта приводит к тому, что восстанавливается действие его начальных квалификаторов, заданных в объявлении этого объекта.

Наконец, указатель на функцию может быть преобразован в указатель на функцию другого типа. Вызов функции по преобразованному указателю зависит от реализации; однако, если указатель еще раз преобразовать к его исходному типу, результат будет идентичен вызову по первоначальному указателю.


суббота, 2 октября 2010 г.

Статья 6 Условия соответствия объекта защиты требованиям пожарной безопасности / Автор неизвестен

1. Пожарная безопасность объекта защиты считается обеспеченной, если:

1) в полном объеме выполнены обязательные требования пожарной безопасности, установленные федеральными законами о технических регламентах;

2) пожарный риск не превышает допустимых значений, установленных настоящим Федеральным законом.

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

3. При выполнении обязательных требований пожарной безопасности, установленных федеральными законами о технических регламентах, и требований нормативных документов по пожарной безопасности расчет пожарного риска не требуется.

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

5. Юридическим лицом – собственником объекта защиты (зданий, сооружений, строений и производственных объектов) в рамках реализации мер пожарной безопасности должна быть представлена в уведомительном порядке до ввода в эксплуатацию объекта защиты декларация пожарной безопасности в соответствии со статьей 64 настоящего Федерального закона.

6. Расчеты по оценке пожарного риска являются составной частью декларации пожарной безопасности или декларации промышленной безопасности (на объектах, для которых они должны быть разработаны в соответствии с законодательством Российской Федерации).

7. Порядок проведения расчетов по оценке пожарного риска определяется нормативными правовыми актами Российской Федерации.

8. Разработка декларации пожарной безопасности не требуется для обоснования пожарной безопасности пожарно-технической продукции и продукции общего назначения.


Часть II Технологии / Н. Дубнова

Система безопасности, как луковица, состоит из слоев. На внешнем слое находятся пользователи, по-разному использующие систему, по-разному всем доверяющие и по-разному же реагирующие на баги системы. Внутри «луковицы» находятся связи, обеспечивающие безопасность взаимодействия пользователя с системой и контактов различных систем. Еще ближе к сердцевине расположены программные средства, наверняка содержащие ошибки; поэтому естественно ожидать, что для них у нас есть какие-то элементы защиты. Эти программы работают в сетях и на отдельных компьютерах. Двигаясь глубже, мы обнаружим теоретически идеальные протоколы обмена данными. И в самой сердцевине (иногда) располагается криптография: математические уравнения, описывающие условия безопасности.

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

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

И мы постараемся не злоупотреблять смешением плохо согласующихся между собой метафор.