- •7. Что такое электронная таблица?
- •Ввод и редактирование данных
- •Формат данных
- •Функции и формулы
- •Понятие формулы
- •Понятие функции
- •Мастер функций
- •[Править]Применение в серверных приложениях
- •[Править]Мультиплексирование
- •Методы и средства защиты от несанкционированного доступа
- •Криптография и шифрование Что такое шифрование
- •Основные термины и определения криптографии
- •Открытые ключи
- •Проблемы использования открытых/закрытых ключей
- •Сертификат
- •[Править]Центры доверия
- •Создание отчётов
- •Изменение структуры отчёта
- •Создание таблиц в режиме конструктора
- •Формирование запросов на выборку
- •Параметрические запросы
- •Запросы на обновление
- •Редактирование запросов
- •Поля и записи
- •Порядковые типы
- •Целые типы
- •Символьные типы
- •Булевы типы
- •Перечислимые типы
- •Поддиапазонные типы
- •Действительные типы
- •[Править]Использование в форматах файлов
- •3.1. Выполнение задания
- •6.2 Построитель выражений
- •Создание кнопочной формы с помощью диспетчера кнопочных форм
- •Примечания
- •Групповые функции в операторе select:
- •Раторы сравнения
- •Виды отношений
- •Отношения в App Engine Один-ко-многим
- •Один-к-одному
- •Многие-ко-многим
- •2. Свойства алгоритмов.
- •Вывод «Основные свойства алгоритмов»:
- •3. Способы описания алгоритмов.
- •Тестирование программного обеспечения
- •[Править]Уровни тестирования
- •[Править]Статическое и динамическое тестирование
- •[Править]Регрессионное тестирование
- •[Править]Тестовые скрипты
- •[Править]Тестирование «белого ящика» и «чёрного ящика»
- •[Править]Покрытие кода
- •Обеспечение целостности базы данных
- •Электронная почта (e-mail)
- •Группы новостей
- •Службы мгновенных сообщений
- •Основы tcp/ip
- •Краткое описание протоколов семейства tcp/ip с расшифровкой аббревиатур
- •Архитектура tcp/ip
- •Уровни сетей и протоколы tcp/ip
- •Краткое заключение
[Править]Применение в серверных приложениях
Событийно-ориентированное программирование применяется в серверных приложениях для решения проблемы масштабирования на 10000 одновременных соединений и более.
В серверах, построенных по модели «один поток на соединение», проблемы с масштабируемостью возникают по следующим причинам:
слишком велики накладные расходы на структуры данных операционной системы, необходимые для описания одной задачи (сегмент состояния задачи, стек);
слишком велики накладные расходы на переключение контекстов.
Философской предпосылкой для отказа от потоковой модели серверов может служить высказывание Алана Кокса: «Компьютер — этоконечный автомат. Потоковое программирование нужно тем, кто не умеет программировать конечные автоматы»[1].
Серверное приложение при событийно-ориентированном программировании реализуется на системном вызове, получающем события одновременно от многих дескрипторов (мультиплексирование). При обработке событий используются исключительно неблокирующие операции ввода-вывода, чтобы ни один дескриптор не препятствовал обработке событий от других дескрипторов.
[Править]Мультиплексирование
Для мультиплексирования соединений могут быть использованы следующие средства операционной системы:
select (большинство UNIX систем). Плохо масштабируется, из-за того, что список дескрипторов представлен в виде битовой карты;
poll и epoll (Linux);
kqueue (FreeBSD);
/dev/poll (Solaris);
IO completion port (Windows);
POSIX AIO на текущий момент только для операций дискового ввода-вывода;
io submit и eventfd для операций дискового ввода-вывода.
13,14,15,16
Компьютерные вирусы
В настоящее время не существует единой системы классификации и именования вирусов (хотя попытка создать стандарт была предпринята на встрече CARO в 1991 году). Принято разделять вирусы по поражаемым объектам (файловые вирусы, загрузочные вирусы, скриптовые вирусы, макро-вирусы, сетевые черви), по поражаемым операционным системам и платформам (DOS, Microsoft Windows, Unix, Linux), по технологиям, используемым вирусом (полиморфные вирусы, стелс-вирусы), по языку, на котором написан вирус (ассемблер, высокоуровневый язык программирования, скриптовый язык и др.)[iii].
Классификация файловых вирусов по способу заражения
По способу заражения файловые вирусы (вирусы, внедряющие свой код в исполняемые файлы: командные файлы, программы, драйверы, исходный код программ и др.) разделяют на перезаписывающие, паразитические, вирусы-звенья, вирусы-черви, компаньон-вирусы, а так же вирусы, поражающие исходные тексты программ и компоненты программного обеспечения (VCL, LIB и др.).
Перезаписывающие вирусы. Вирусы данного типа записывают своё тело вместо кода программы, не изменяя названия исполняемого файла, вследствие чего исходная программа перестаёт запускаться. При запуске программы выполняется код вируса, а не сама программа.
Вирусы-компаньоны. Компаньон-вирусы, как и перезаписывающие вирусы, создают свою копию на месте заражаемой программы, но в отличие от перезаписываемых не уничтожают оригинальный файл, а переименовывают или перемещают его. При запуске программы вначале выполняется код вируса, а затем управление передаётся оригинальной программе.
Возможно существование и других типов вирусов-компаньонов, использующих иные оригинальные идеи или особенности других операционных систем. Например, PATH-компаньоны, которые размещают свои копии в основном каталоге Windows, используя тот факт, что этот каталог является первым в списке PATH, и файлы для запуска Windows, в первую очередь, будет искать именно в нём. Данными способом самозапуска пользуются также многие компьютерные черви и троянские программы.
Файловые черви. Файловые черви создают собственные копии с привлекательными для пользователя названиями (например, Game.exe, install.exe и др.) в надежде на то, что пользователь их запустит.
Вирусы-звенья. Как и компаньон-вирусы, не изменяют код программы, а заставляют операционную систему выполнить собственный код, изменяя адрес местоположения на диске заражённой программы на собственный адрес. После выполнения кода вируса управление обычно передаётся вызываемой пользователем программе.
Паразитические вирусы. Паразитические вирусы — это файловые вирусы, изменяющие содержимое файла, добавляя в него свой код. При этом заражённая программа сохраняет полную или частичную работоспособность. Код может внедряться в начало, середину или конец программы. Код вируса выполняется перед, после или вместе с программой, в зависимости от места внедрения вируса в программу.
Вирусы, поражающие исходный код программ. Вирусы данного типа поражают исходный код программы или её компоненты (.OBJ, .LIB, .DCU), а также VCL и ActiveX-компоненты. После компиляции программы оказываются встроенными в неё. В настоящее время широкого распространения не получили.