Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Микропроцессорные средства автоматизации энергетических систем. Сети автоматизации

.pdf
Скачиваний:
5
Добавлен:
12.11.2023
Размер:
20.13 Mб
Скачать

ключения, комментарии в формате XML. Переняв многое от своих предшественников (языков C++, Delphi, Модула, Smalltalk и в особенности Java), С#, опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем (например, C#, в отличие от C++, не поддерживает множественное наследование классов, между тем допускаетсямножественноенаследованиеинтерфейсов).

C++ – компилируемый статически типизированный язык программирования общего назначения, поддерживает процедурное программирование, объектно-ориентированное программирование, обобщенное программирование, обеспечивает модульность, раздельную компиляцию, обработку исключений, абстракцию данных, объявление типов (классов) объектов, виртуальные функции. Стандартная библиотека включает в том числе общеупотребительные контейнеры и алгоритмы. C++ сочетает свойства как высокоуровневых, так и низкоуровневых языков. В сравнении с его предшественником – языком Cи – наибольшее внимание уделено поддержке объектноориентированного и обобщенного программирования. Область его применения включает создание ОС, разнообразных прикладных программ, драйверов устройств, приложений для встраиваемых систем, высокопроизводительных серверов, а также развлекательных приложений (игр). Существует множество реализаций языка C++, как бесплатных, так и коммерческих и для различных плат-

форм. Например, на платформе x86 это GCC, Visual C++, Intel C++ Compiler, Embarcadero (Borland) C++ Builder и др. C++ оказал ог-

ромное влияние на другие языки программирования, в первую очередь на Java и C#.

CIL (Common Intermediate Language) – промежуточный язык, разработанный фирмой MS для платформы .NET Framework. JIT-компилятор CIL является частью так называемой CLR (Common Language Runtime) – общей среды выполнения языков .NET. Ранее язык назывался Microsoft Intermediate Language, однако был пере-

именован для создания стандарта ECMA-335. В код на языке CIL должны переводить код на языках высокого уровня все компилято-

441

ры, обеспечивающие поддержку платформы .NET. Код на CIL генерируют, в частности, все компиляторы для платформы .NET самой фирмы Microsoft, входящие в среду разработки Visual Studio (C#, Managed C++, VisualBasic.NET, Visual J#.NET). Язык CIL по син-

таксису и мнемонике напоминает язык ассемблера. Его можно рассматривать как ассемблер виртуальной машины .NET. В то же время язык CIL содержит некоторые достаточно высокоуровневые конструкции, повышающие его уровень, по сравнению с ассемблером для любой реально существующей машины, и писать код непосредственно на CIL легче, чем на ассемблере для реальных машин. В связи с этим его можно рассматривать как своеобразный «высокоуровневый ассемблер». Язык CIL также нередко называют просто IL (Intermediate Language), т.е. просто «промежуточный язык». Синтаксис и мнемоника языка CIL описываются стандартом ECMA-335. Спецификация CIL является составной частью более общей специ-

фикации Common Language Infrastructure (CLI).

CLR (Common Language Runtime) – общеязыковая испол-

няющая среда; виртуальная машина, интерпретирующая и исполняющая код на языке CIL, в который компилируются программы, написанные, в частности, на .NET-совместимых языках программи-

рования (C#, Managed C++, VisualBasic.NET, Visual J# и т.п.); ком-

понент пакета Microsoft .NET Framework. Среда CLR является реализацией спецификации CLI, спецификации общеязыковой инфраструктуры компании Microsoft.

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

ECMA-262. Расширения языка, JavaScript, JScript и ActionScript,

широко используются в вебе.

HTML (Hуреr Техt Markup Language) – язык гипертекстовой разметки; простой язык гипертекстового форматирования, в котором для указания способа отображения некоторой части документа (например, в веб-браузере) используются теги.

442

Java (Джава) – объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems (в последующем приобретенной компанией Oracle). Приложения Java обычно транслируются в специальный байт-код, поэтому они могут работать на любой виртуальной Java-машине (JVM), вне зависимости от компьютерной архитектуры. Дата официального выпуска – 23 мая

1995 года.

Java Virtual Machine (Java VM, JVM) – виртуальная машина

Java; основная часть исполняющей системы Java, так называемой

Java Runtime Environment (JRE). Виртуальная машина Java интерпре-

тирует байт-код Java, предварительно созданный из исходного текста Java-программы компилятором Java (javac). JVM может также использоваться для выполнения программ, написанных на других языках программирования. Например, исходный код на языке Ada может быть откомпилирован в байт-код Java, который затем может выполниться с помощью JVM. JVM является ключевым компонентом платформы Java. Поскольку виртуальные машины Java доступны для многих аппаратных и программных платформ, Java может рассматриваться и как связующее программное обеспечение, и как самостоятельная платформа. Отсюда принцип «написано однажды – запуска-

ется везде» (write once, run anywhere).

Java-апплет – прикладная программа, чаще всего написанная на языке программирования Java в форме байт-кода. Java-апплеты выполняются в веб-обозревателе с использованием виртуальной Javaмашины (JVM) или в Sun's Applet Viewer – автономном средстве для испытания апплетов. Java-апплеты были внедрены в первой версии языка Java в 1995 году. Java-апплеты обычно пишутся на языке программирования Java, но могут быть написаны и на других языках, которые компилируются в байт-код Java, таких как Jython. Апплеты используются для предоставления интерактивных возможностей вебприложений, которыене могутбытьпредоставленыHTML. Поскольку байт-код Java платформо-независим, то Java-апплеты могут выполняться с помощью плагинов браузерами многих платформ, включая

Microsoft Windows, UNIX, Apple Mac OS и GNU/Linux. Такие про-

443

граммы с открытым исходным кодом, как applet2app, могут быть использованы для преобразования апплета в самостоятельные программы на Java или исполняемые файлы Linux и Windows. Java Servlet иногда неофициально сравнивают с серверным апплетом, но он отличается своим языком, функциями и каждой из описанных здесь характеристик апплетов.

JIT-компиляция (Just-in-time compilation, компиляция «на лету») – динамическая компиляция (dynamic translation); технология увеличения производительности программных систем, использующих байт-код, путем компиляции байт-кода в машинный код непосредственно во время работы программы. Таким образом, достигается высокая скорость выполнения по сравнению с интерпретируемым байт-кодом (сравнимая с компилируемыми языками) за счет увеличения потребления памяти (для хранения результатов компиляции) и затрат времени на компиляцию. JIT базируется на двух более ранних идеях, касающихся среды исполнения: компиляции байт-кода и динамической компиляции. JIT используется в реализаци-

ях Java, JavaScript, .NET Framework, в одной из реализаций Python – PyPy. Существующие наиболее распространенные интерпретаторы языков PHP, Ruby, Perl, Python и им подобных имеют ограниченные или неполные JIT. Проект DotGNU разрабатывает библиотеку libJIT, которая предоставляет возможность привести JIT в любой скриптовой язык. Проекты LLVM и GNU Lightning также могут быть использованы для создания JIT.

JScript – скриптовый язык программирования компании МS, являющийся реализацией стандарта ECMAScript. Синтаксис JScript во многом аналогичен языку JavaScript компании Netscape, однако, помимо добавления клиентских скриптов на веб-страницы (что было единственной функцией JavaScript до появления проекта Mozilla), JScript может использоваться и для других целей, например автоматизации администрирования систем MS Windows и создания страниц ASP.

PGML (Precision Graphics Markup Language) – язык раз-

метки прецизионной графики; основанный на XML язык размет-

444

ки, служащий для описания векторной графики на веб-странице (диаграмм, отдельных элементов интерфейса) в виде текста в формате XML, использует модель построения изображения, схожую с PDF и PostScript. Был представлен компаниями Adobe Systems, IBM, Netscape Communications и Sun Microsystems

в 1998 году, однако не был принят, как и язык VML, рекомендованный компанией MS. На базе PGML и VML был разработан более совершенный язык SVG.

Scripting language – язык сценариев; высокоуровневый язык программирования для написания сценариев – кратких описаний действий, выполняемых системой. Разница между программами и сценариями довольно размыта. Сценарий – это программа, имеющая дело с готовыми программными компонентами. Высокоуровневые языки можно разделить на языки системного программиро-

вания (system programming languages) и сценарные языки (scripting languages). Последние можно назвать склеивающими языками (glue languages) или языками системной интеграции (system integration languages). Сценарии обычно интерпретируются, а не компилируются, хотя сценарные языки программирования один за другим обзаводятся JIT-компиляторами. В более узком смысле под скриптовым языком может пониматься специализированный язык для расширения возможностей командной оболочки или текстового редактора и средств администрирования операционных систем.

SQL (Structured Query Language) – язык структурированных запросов; международный стандартный язык для описания и доступа к реляционным БД.

SVG (Scalable Vector Graphics) – язык разметки масштаби-

руемой векторной графики, созданный консорциумом Всемирной паутины (W3C) и входящий в подмножество расширяемого языка разметки XML, предназначен для описания двумерной векторной и смешанной векторно-растровой графики в формате XML. Поддерживает как неподвижную, так и анимированную интерактивную графику, или декларативную и скриптовую. Не поддерживает описание трехмерных объектов (не путать с имитацией трехмерности

445

путем светотени). SVG – открытый стандарт, продолжение таких стандартов, как HTML и XHTML.

UML (Unified Modeling Language) – унифицированный язык моделирования.

VBScript (Visual Basic Scripting Edition) – скриптовый язык программирования, интерпретируемый компонентомWSH. Он широко используется при создании скриптов в ОС семейства MS Windows. VBScript был создан компаниейMS как замена устаревшему пакетному языку, интерпретируемому приложениемcommand.com.

VML (Vector Markup Language) – язык векторной разметки,

разработан фирмой MS для описания векторной графики в 1998 году. Позже VML вместе с языком PGML стали основой для языка SVG.

WBXML (WAP Binary XML) – компактное бинарное представление XML. Разработано ОМА для передачи через беспроводные соединения с низкой скоростью.

WML (Wireless Markup Language) – язык беспроводной разметки; язык разметки документов для использования в сотовых телефонах и других мобильных устройствах по стандарту WAP. По структуре – упрощенный HTML, но есть и ключевые отличия, поскольку WML ориентирован на устройства, не обладающие возможностями (небольшой экран, не все устройства могут отображать графику, небольшой размер памяти и т.д.). Вся информация в WML содержится в так называемых деках (deck). Дек – это минимальный блок данных, который может быть передан сервером. В деках находятся карточки (card) (каждая карта ограничена тегами <card> и </card>). В одном деке всегда должна быть хотя бы одна карточка, но может быть и несколько. При этом на экране устройства в каждый момент времени отображается только одна карточка, а пользователь может переключаться между ними, переходя по ссылкам (это сделано для сокращения числа обращений за информацией к серверу). Размер WML-страниц не должен превышать 1–4 Кбайт. Впрочем, многие мобильные устройства не понимают даже WML в чистом виде (им необходим WBXMLформат сайта).

446

WSH (Windows Script Host) – компонент MS Windows, пред-

назначенный для запуска сценариев на скриптовых языках JScript и VBScript, а также и на других дополнительно устанавливаемых языках (например, Perl). Возможности сценариев на WSH значительно превосходят возможности командных .bat- и .cmd-файлов: имеются полноценные языки с объектными возможностями, полный набор операций со строками, включая регулярные выражения, взаимодействие с любыми программами, реализующими объектный скриптовый интерфейс (Active Scripting или OLEAutomation), дос-

туп к методам и свойствам их объектов; операции с файлами и каталогами, обработка текстовых файлов, манипуляции с системным реестром и т.п. Сценарии из .js, .vbs, .wsf и некоторых других типов файлов запускаются с помощью одной из двух программ-активато- ров: wscript.exe (с графическим интерфейсом) или cscript.exe (с консольным интерфейсом). Начиная с Windows-98 WSH стал частью всех ОС Windows.

XHTML (Extensible Hypertext Markup Language) – расши-

ряемый язык гипертекстовой разметки; семейство языков разметки веб-страниц на основе XML, повторяющих и расширяющих возможности HTML 4. Спецификации XHTML 1.0 и XHTML 1.1 являются рекомендациями консорциума Всемирной паутины, однако на данный момент его развитие остановлено с рекомендацией использовать HTML. Новые версии XHTML не выпускаются.

XML (eXtensible Markup Language) – расширяемый язык разметки; рекомендованный консорциумом Всемирной паутины (W3C) язык разметки. Спецификация XML описывает XML-доку- менты и частично описывает поведение XML-процессоров (программ, читающих XML-документы и обеспечивающих доступ к их содержимому). XML разрабатывался как язык с простым формальным синтаксисом, удобный для создания и обработки документов программами и одновременно удобный для чтения и создания документов человеком, с подчеркиванием нацеленности на использование в Интернете. Язык называется расширяемым, поскольку он не фиксирует разметку, используемую в документах:

447

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

XSD (XML Schema Definition) ХМL-схема.

XSDL (XML Schema Definition Language) – язык определе-

ния схемы ХМL.

XSL (Extensible Stylesheet Language) – расширяемый язык таблиц cтилей.

3. Компьютерные сети, ЛВС, Internet

3.1. Общие положения

Вitrate – скорость прохождения битов информации. Битрейт принято использовать при измерении эффективной скорости передачи информации по каналу, т.е. скорости передачи «полезной информации» (помимо таковой, по каналу может передаваться служебная информация, например стартовые и стоповые биты при асинхронной передаче по RS-232 или контрольные символы при избыточном кодировании).

CREF (Communication Reference) – локальная короткая ссыл-

ка на коммуникационную связь.

CRL (Communication Reference List) – список всех комму-

никационных связей устройства.

IPG (Inter Packet Gap) – межкадровый интервал. Использу-

ется в технологиях передачи Ethernet, Fast Ethernet, Gigabit Ethernet IPG равен 96 bt (битовых последовательностей). Для Fast Ethernet IPG равен 0,96 мкс. IPG применяется, чтобы ни один из

448

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

ISP (InterOperable Systems Project) – проект взаимодейст-

вующих систем.

IWLAN (Industrial WLAN) – беспроводная локальная сеть для промышленных условий.

JumboFrame (Jumbo-кадр, Джамбо-кадр) – сверхдлинный

Ethernet-кадр, используемой в высокопроизводительных сетях для увеличения производительности на длинных расстояниях, а также уменьшения нагрузки на центральный процессор. Jumbo-кадры имеют размер, превышающий стандартный размер MTU, – от 1500 (RFC 4638) до 16 000 байт, но, как правило, не превышают 9000 байт, поскольку в сетях Ethernet используется 32-битная CRC, которая теряет свою эффективность при объеме данных больше 12 000 байт; к тому же 9000 байт вполне достаточно для передачи 8-килобайт- ной дейтаграммы (например, NFS).

LAN (Lосаl Аrеа Network) – локальная сеть. Высокоскоростная компьютерная сеть, покрывающая относительно небольшую площадь (до нескольких километров). Локальные сети объединяют рабочие cтанции, периферийные устройства, терминалы и другие устройства, находящиеся в одном здании или на небольшой территории. Наиболее популярными LAN-технологиями являются Ethernet, FDDI и TokenRing.

MRU (Maximum Receive Unit) – максимальный размер дан-

ных, передаваемых в пакете протокола PPP, не включая заголовок пакета. Значение MRU определяется протоколом LCP, входящим в семейство PPP и принимается по умолчанию равным 1500 октетов. В случае если запрашивается меньшее значение, система обя-

449

зана быть готовой к приему полноразмерного пакета при потери синхронизации. Основной причиной изменения MRU является использование протокола PPPoE. Поскольку максимальный размер данных в кадре Ethernet равен 1500 байт, из которых 6 байт занимает заголовок PPPoE и 2 байта – идентификатор протокола, величина MRU не должна превышать 1492 байта. При использовании jumboкадров значение MRU должно увеличиваться сверх 1492 байт для уменьшения фрагментации. Для совместимости с предыдущей спецификацией PPPoE способность сторон отправлять и принимать пакеты большего размера определяется на этапе PPPoE Discovery отправкой и подтверждением тега PPP-Max-Payload. При установке значения MRU более 1492 байт должна производится проверка способности принимающей стороны и промежуточного оборудования обрабатывать пакеты такой длины путем отправки одного или нескольких полноразмерных пакетов с эхо-запросом. В случае если эхо-ответ не получен, проверяется прохождение эхо-пакетов нормального размера и используется стандартное значение MRU.

MTU (Maximum Transmission Unit) – максимальный размер полезного блока данных одного пакета (payload), который может быть передан протоколом без фрагментации. Когда говорят об MTU, обычно имеют в виду протокол канального уровня сетевой модели OSI. Однако этот термин может применяться также для физического уровня (media MTU) и сетевого уровня (ip MTU). Термин MTU может быть и не связан с определенным уровнем модели: tunnel MTU, VLAN MTU, routing MTU, MPLS MTU. Ограничение на максималь-

ный размер кадра накладывается по нескольким причинам:

для уменьшения времени на повторную передачу в случае потери или неисправимого искажения пакета (вероятность потерь растет с увеличением длины пакета);

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

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

450

Соседние файлы в папке книги