Главная страница  Цифровые системы 

[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [ 74 ] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90]

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

10.7.5. FORTRAN

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

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

10.7.6. Pascal и Moclula-2

Pascal был разработан швейцарцем Николасом Виртом (Niklaus Wirth) в 1971 году как дидактический язык для обучения хорошей технике программирования. Он быстро перерос свои первоначальные рамки и в настоящее время используется во множестве разнообразных приложений. Успех Pascal, как в случае BASIC, основан на распространении микро- и персональных компьютеров, на которых он широко используется. Язык Modula-2 был разработан тем же автором в 1975 году специально для программирования встроенных промышленных и научных вычислительных сис тем реального времени. Pascal и Modula-2 весьма похожи по стилю и структуре, хотя Modula-2 обладает большим количеством функций и синтаксических конструкции-

В Pascal и Modula-2 предполагается, что программист постоянно остается в огра ничейной среде, предоставляемой программой, что совсем не соответствует реадьн практике. Гибкость их использования несколько выше, если некоторые программ для специальных приложений (драйверы устройств, обработчики прерываний) писаны на языке ассемблера. Оба языка поддерживают подключение внешних моД> лей на ассемблере. Pascal и Modula-2 являются хорошим средством для разработК встроенных систем, но не подходят для сложных приложений в распределеннЫ компьютерных системах. Их ориентация на структуру делает программы хорошо чН таемыми, что является существенным фактором для последующего сопровожден

0.7.7. Операционная система UNIX

Операционная система UNIX представляет собой многозадачную, многопользовательскую операционную систему и является в настоящее время одной из наиболее распространенных в мире. Она была первоначально разработана в 1970-е годы в дТ&Т Bell Laboratories. Особое внимание к переносимости, интерфейс пользовате-дл, построенный на немногих базовых принципах, и возможность объединения различных UNIX-систем в сети независимо от аппаратной платформы очевидным образом способствовали успеху и распространению UNIX.

С момента своего появления система UNIX непрерывно развивалась и в настоящее время существует в нескольких модификациях. Основными ее распространителями являются компании AT&T Bell Laboratories и Berkeley Software Distribution. Почти все производители вычислительной техники предлагают UNIX либо как коммерческий продукт третьих фирм, либо как специально адаптированную версию для собственной аппаратной платформы. Некоторые специальные предложения отличаются скорее особенностями лицензирования, а не различием в выполняемых ими функциями. Кроме того, для сохранения совместимости и переносимости версии UNIX разных производителей не могут слишком сильно отличаться друг от друга.

В UNIX были введены средства, которые впоследствии были позаимствованы другими операционными системами. На базе UNIX была разработана операционная система 0SF/1 (раздел 10.7.8), а многие функции были включены в Windows NT (раздел 10.7.9). UNIX также явилась основной базой для разработки важных коммуникационных интерфейсов, в частности протокола TCP/IP (раздел 9.4.9) и протокола пользовательского терминала X Window (раздел 11.6).

UNIX состоит из небольшого ядра, управляющего системными ресурсами (процессор, память и ввод/вывод), а остальная часть процедур операционной системы, и в частности управление файловой системой, работают как пользовательские процессы. Типичная операционная система UNIX содержит 10 000-20 ООО строк на языке С и 1000-2000 строк машинно-ориентированных программ на ассемблере, которые разрабатываются отдельно для каждой аппаратной платформы. Ядро представляет собой единую резидентную программу размером от 100 Кбайт до 1 Мбайт в зависимости от платформы и выполняемых функций. При переносе системы UNIX на кон-•Ретную платформу требуется, вообще говоря, переписать заново только машинно-зависимую часть ядра. Это означает, что UNIX может работать на многих Аппаратных платформах с идентичным системным интерфейсом.

Hflpo.UNIX имеет недостаточно продуманную структуру. Это следствие ее быстрого успеха и распространения, поскольку каждая новая версия должна была быть Совместима с предыдущими. Первоначально система UNIX была разработана как *"огопользовательская, ане Для приложений реального времени. Из-за того что подпрограммы операционной системы работают как пользовательские процессы, но с ивысшим приоритетом, назначенным системой, невозможно прерывать также те стемные вызовы, выполнение которых занимает много времени, что увеличивает *Ремя реакции системы. Это является существенным недостатком для задач реаль-°го времени, особенно управляемых прерываниями. В UNIX используется доволь-iJo Сложное описание контекста, что увеличивает время переключения процессов, з-за того что в UNIX все операции с каналом построены на основе переключения



Глава 10. Программирование систем реального bdr п1- Языки программирования и операционные системы --------t!?eHii v-- ~

процессов, применение этогомех:анизма для связи между процессами в приложени sM реального времени может приводить к задержкам.

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

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

Общим и вызывающим критику недостатком UNIX является его недружественный пользовательский интерфейс. Действительно, все еще в ходу старые и непонятные команды, а если и есть заменяющие их, то с именами или сокращениями, которые столь же неестественны, как и предыдущие. В некоторых системах пользовательские оконные интерфейсы и меню способны в основном "транслировать" выбранные действия в стандартные команды UNIX. Положительной особенностью команд UNIX является то, что благодаря стандартизации ввода/вывода и механизму каналов несколько команд можно объединить в одной строке, причем выход одной команды является входом следующей. Такая техника позволяет для выполнения сложных операций вместо длинных командных файлов использовать всего несколько строк.

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

устройствам. пйсис-

POSIX представляет собой машинно-независимый интерфейс операционно темы, базирующийся на UNIX, определенный стандартом IEEE 1003.1-1988.

10.7.8. 0SF/1 и DCE

Первоначальные версии UNIX не требовали лицензий и были доступны "Рд,", тески всем для свободного использования, что отчасти объясняет популярное системы. При выпуске System V компания AT&T решила распространять еет оплатой лицензий. Некоторые наиболее крупные производители ЭВМ Equipment, Hewlett Packard, IBM и др. - отреагировали на это, создав органИ Open Software Foundation (OSF) для того, чтобы не зависеть от диктата o"°!l-.cO-сгвенной компании-поставщика операционных систем. OSF разработала UN

•стимую операционную систему, а также другие продукты без лицензионных ог-(,0чений со стороны одной компании.

OSF/1 является модульной операционной системой, основанной на Mach, ма-цно-независимом мультипроцессорном ядре, разработанном в Carnegie-Mellon ypjversity (г. Питтсбург, США) в качестве инструмента для эмуляции других опера-jjj,oHHHX систем. На основе Mach действительно удается одновременно эксплуати-овать различные операционные системы на одной ЭВМ.

Для обеспечения переносимости OSF/1 совместима с AT&T UNIX System V и спецификациями программных интерфейсов Berkeley. Поскольку Mach и 0SF/1 не содержит какого-либо кода UNIX, проблема лицензирования со стороны третьих компаний полностью снята.

В дополнение к средствам UNIX OSF/1 предлагает собственный набор функций, облегчающих разработку и выполнение программ. 0SF/1 предназначена для работы в сетевой среде и поддерживает протокол TCP/IP. Файловая система 0SF/1 также совместима со службой NFS протокола TCP/IP (раздел 9.4.9).

0SE разработала и другие продукты для распределенной вычислительной среды. OSF/Motif является графическим интерфейсом пользователя, обеспечивающим стандартное взаимодействие приложения с графическим терминалом (раздел 11.6).

Распределенная вычислительная среда {Distributed Computing Environment -DCE) представляет собой набор служб и средств для разработки, исполнения и поддержки приложений в распределенной среде. DCE может быть интегрирована с 0SF/1, но является независимой от нее и в действительности может эксплуатироваться на базе других операционных систем.

10.7.9. MS-DOS, Windows и Windows NT

Широкое распространение персональных компьютеров компании IBM (IBM PC) и « клонов обусловили популярность операционных систем MS-DOS и Windows компании Microsoft, которые были специально разработаны для этой аппаратной платформы.

MS-DOS была первой широко распространенной операционной системой для персо-адьных компьютеров и продолжает использоваться в настоящее время как простое %о операционной системы. MS-DOS обеспечивает прозрачный и понятный интерфейс

*ДУ вызовами прикладных программ и аппаратурой персонального компьютера, «а е S-DOS написана масса приложений, и имеется даже несколько продуктов .е основе с многозадачными функциями. Хотя MS-DOS не поддерживает много-ния режим, она обеспечивает некоторые ограниченные возможности для созда-чая "Днтных программ, получающих управление с помощью прерывания, вклю-

JeiicT""" системного таймера. "Многозадачные" системы используют в iftJr™ MS-DOS только как стартовую систему для запуска с дискеты и "ч! управление всем оборудованием от монитора до драйверов от-

ных устройств, а работа MS-DOS прекращается, .действительности одним из преимуществ IBM PC является то, что она допуска-%!,<РРоваиие всех микросхем на ПК и таким образом позволяет создать ую операционную систему (с другой стороны, не каждый будет писать заново анионную систему ради двух-трех параллельных задач). ,\,.*1аиболее известной операционной системой для ПК является семейство osott Windows; она, по-видимому, является наиболее популярным графическим



Глава 10. Программирование систем реального

!В5!!и 10.7. Языки программирпвяимя и операционные системы

пользовательским интерфейсом в мире. Windows допускает одновременную нескольких процессов, хотя лишь один из них может быть активным в каждьш мо мент и взаимодействовать с пользователем. Однако некоторые процессы управлени печатью и сетевыми коммуникациями могут осушествляться в фоновом режиме работать параллельно с активным процессом. Отсутствие вытесняющей многозадач ности (приложение нельзя приостановить другой программой или операционной си стемой), а также других функций реального времени не позволяет использовать Windows в качестве основы для серьезной системы управления производственным процессом. Строго говоря, MS Windows до версии 3.x включительно является не опе рационной системой, а оболочкой MS DOS. Тем не менее некоторые системы сбора и обработки данных работают под Windows.

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

Система Windows NT CNew Technology") была выпущена в 1993 году для разных аппаратных платформ. Как и UNIX, ядро в Windows NT отделено от системных программ, которые выполняются как прикладные процессы. Машинно-зависимая, аппа-ратно-ориентированная часть Windows NT называется аппаратный абстрактный уровень (Hardware Abstraction Layer - HAL). Она существует для различных типов аппаратной платформы. Windows NT является обратно совместимой с MS-DOS, Windows, OS/2, а также с UNIX с расширением POSIX. Пользовательский интерфейс Windows NT остается неизменным на всех системах. Windows NT в полно11 мере поддерживает технологию "клиент-сервер" в сетевой среде.

Windows NT включает несколько возможностей, имеющих значение для при.чо-жений управления процессами. Среди них - потоки, события, семафоры и асинхронный вызов процедур. Связь между процессами осуществляется с помощью кана.чов (имеется несколько типов каналов с различными характеристиками) и удаленного вызова процедур. Последние рассматриваются как локальные вызовы, и поэтом) приложения не зависят от транспортных протоколов. Другие особенности Windo NT направлены на безопасную и отказоустойчивую работу - например, поддер зеркального диска.

10.7.10. 0S-9

Операционная система 0S-9 была первоначально разработана в 1977 году ""р. нией Microware для микропроцессора Motorola 6809 и впоследствии была ра q странена на другие процессоры, в частности на процессоры серии 68000 -6» .ф является популярной системой - на нее продано несколько сотен тысяч ли

На первы! взгляд, эта система похожа на UNIX - она имеет те же (oi

вместимые системные вызовы, структуру деревьев, каналы и однородную о Р,, ввода/вывода. Однако, несмотря на это сходство, 0S-9 представляет =°°°"ддьН продукт. OS-9 является аппаратно-зависимой и ориентирована на системы Р го времени. Целью разработки программы является ее последующий "Р*"" gajiaO" бочую платформу, а не использование ее в системе, на которой она разрабатЫ

()S-9 имеет модульную структуру, поэтому для исполнения программы в целе системе требуются лишь некоторые части операционной системы.

Весь код, генерируемый в 0S-9, не зависит от адреса загрузки, реентерабельнь щожет быть записан в ПЗУ. Однородная обработка ввода/вывода, например, по: ляет при создании программы вместо датчика считывать данные из файла на дис

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

0S-9 предоставляет много возможностей для настройки параметров систем! раз.1ичными стратегиями установки приоритетов. 0S-9 и ее окружения Написаны языке С. Многие программы на языке С, написанные для среды UNIX, Могут komi лироваться и исполняться на OS-9 без каких-либо изменений.

10.7.11. VAX/VMS

VMS является операционной системой для ЭВМ компании Digital Equipmen 32-разрядным процессором серии VAX. Ее популярность в приложениях управ; ния связана в основном с качеством техники, на которой она используется, и 6oi Шим количеством предусмотренных средств разработки. VMS может применять! как в среде реального времени, так и в многопользовательской среде с соответству! щими средствами защиты.

VMS предоставляет широкий набор функций и стандартный и ясный интерфе! «я прямых обращений из программ. Это позволяет по крайней мере в принципе ос •чествлять интеграцию любых языков со всеми функциями операционной систем) 3 функций реального времени VMS имеет почтовые ящики в форме логически <остоящих из записей файлов, возможность создания резидентных подпрограмм доработку прерываний. Процесс в VMS может управлять условиями своего соС венного исполнения (приоритет, распределение памяти), создавать другие проце управлять их исполнением. Иерархическое управление препятствует процесса "изким приоритетом модифицировать параметры исполнения процессов с высс приоритетом.

Как и во всех больших операционных системах, в VMS возникают проблемы Учаях, когда предъявляются жесткие требования по времени. По этой причине . соб популярности системы VMS, была разработана специальная версия, приспо сос"" для приложений реального времени, которая называется VAX/ELN. Он чро° из двух различных продуктов - рабочей среды для исполнения прикладны; pjTMM на целевой ЭВМ и пакета для разработки программ с компиляторами длз ичных языков. Разработка программ осуществляется на большом комплексе гр. Щем ресурсы для подготовки системы, которая в итоге содержит только про Кцные модули, необходимые для конкретного приложения. Затем в окончатель- "Иде система загружается на рабочую ЭВМ.




[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [ 74 ] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90]

0.0713