Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
197747.rtf
Скачиваний:
21
Добавлен:
01.03.2025
Размер:
15 Мб
Скачать
☆

2. Методы, средства и мероприятия по обеспечению сохранности данных

Как отмечалось, совокупность защитных мероприятий включает аппаратные средства, программные методы, защитные преобразования, а также организационные мероприятия. Сущность аппаратной, или схемной, защиты состоит в том, что в устройствах ЭВМ и других технических средствах обработки информации предусматривается наличие специальных схем, обеспечивающих защиту и контроль информации, например схемы контроля информации на честность, осуществляющей контроль за правильностью передачи информации между различными устройствами ЭВМ, а также экранирующих устройств, локализующих электромагнитные излучения. Программные методы защиты - это совокупность алгоритмов и программ, обеспечивающих разграничение доступа и исключение несанкционированного использования информации. Сущность методов защитных преобразований состоит в том, что информация, хранимая в системе и передаваемая по каналам связи, представляется в некотором коде, исключающем возможность ее не- посредственного использования. Организационные мероприятия по защите включают совокупность действий по подбору и проверке персонала, участвующего в подготовке и эксплуатации программ и информации , строгое регламентирование процесса разработки и функционирования ИС. Лишь комплексное использование различных защитных мероприятий может обеспечить надежную защиту, так как каждый прием или метод имеет свои слабые и сильные стороны. Предлагаемые и реализованные схемы защиты информации очень разнообразны. В качестве классификационного признака для схем за- щиты можно выбрать их функциональные свойства. На основе этого признака для схем защиты можно выбрать их функциональные свойства. На основе и этого признака выделяются системы: без схем защиты, с полной защитой, с единой схемой защиты, с программируемой схемой защиты и системы с засекречиванием. В системах с полной защитой обеспечивается взаимная изоляция пользователей, нарушаемая только для информации общего пользования (например, библиотеки общего пользования). В отдельных системах средства работы с библиотеками общего пользования позволяют включить в них информацию пользователей, которая тоже становится общим достоянием. В системах с единой схемой защиты для каждого файла создается список авторизованных пользователей. Кроме того, применительно к каждому файлу указываются разрешаемые режимы его использования: чтение, запись или выполнение, если этот файл является программой. Основные концепции защиты здесь довольно просты, однако их реализация довольно сложная. В системах с программируемой схемой защиты предусматривается механизм защиты данных с учетом специфических требований пользователя, например, ограничение календарного времени работы системы, доступ только к средним значениям файла данных, локальная защита отдельных элементов массива данных и т.д. В таких системах пользователь должен иметь возможность выделить защищаемые объекты и подсистемы. Защищаемая подсистема представляет собой совокупность программ и данных, правом доступа к которым наделены лишь входящие в подсистему программы. Обращение к этим программам возможно, в свою очередь, только в заранее ограниченных точках. Таким образом, программы подсистемы контролируют доступ к защищаемым объектам. Подобный механизм защиты с различными модификациями реализован только в наиболее совершенных ИС. Вопросы организации защиты информации должны решаться уже на предпроектной стадии разработки ИС. Опыт проектирования систем защиты еще недостаточен. Однако уже можно сделать некоторые обобщения. Погрешности защиты могут быть в значительной мере снижены, если при проектировании учитывать следующие основные принципы построения системы защиты.

1. Простота механизма защиты. Этот принцип общеизвестен, но не всегда глубоко осознается.

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

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

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

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

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

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

Современные системы хранения информации

Концепция построения системы хранения данных была сформулирована в 1992 году Биллом Инмоном (Bill Inmon) в его книге "Building the Data Warehouse". Упрощенно смысл данной концепции можно представить следующим образом: система хранения физически отделяется от прикладных серверов, и данные, созданные во всевозможных приложениях, помещаются на отдельное устройство либо группу устройств. Такие устройства предназначены специально для хранения и обеспечения доступа к данным. Таким образом, процесс администрирования и управления хранением данных на физическом уровне выделено в отдельную техническую и организационную задачу.

Сегодня наиболее популярны следующие подходы к построению систем хранения данных:

прямое подключение (DAS – Direct Attached Storage);

сеть хранения данных (SAN - Storage Area Network);

подсистемы хранения данных, подсоединенные к сети (NAS - Network Attached Storage).

DAS - система хранения, непосредственно подключаемая к серверу

Системы хранения с непосредственным подключением к высокоскоростному интерфейсу сервера (Direct Attached Storage) представляют собой весьма распространенный способ оснащения сервера внешней системой хранения данных, ее также называют SAS (Server Attached Software). Как правило, в качестве высокоскоростного интерфейса выступает шина SCSI. Основное преимущество DAS перед другими вариантами - низкая стоимость и высокое быстродействие (при расчете - одна система хранения данных для одного сервера). При относительно низкой стоимости оборудования SAS-системы хороши для хранения потоковых мультимедиа данных благодаря высокой скорость обмена с дисками, а также возможности построения емких систем. DAS - это идеальное решение для небольших и средних компаний.

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

В системе DAS защита информации ограничена возможностями ОС: это разграничение прав доступа к объектам и специализированное ПО (антивирусные системы, криптографические инструменты). Все это накладывает существенные ограничения на производительность и надежность.

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

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

NAS - файловый сервер

NAS-решения представляют собой выделенный файл-сервер с RAID-контроллером, несколькими дисками, поддерживающими механизм «горячей замены», и одним-двумя интерфейсами Gigabit Ethernet. От обычного сервера его отличают собственная операционная система, одновременная поддержка клиентов различных ОС (Windows, Linux, Solaris, Macintosh и т. д.), простота инсталляции. Основное назначение – хранение данных на удаленном носителе, с возможностью разделенного доступа и задания прав пользователей. Доступ к NAS-устройствам осуществляется по локальной сети на уровне протоколов передачи файлов (NFS, CIFS и др.), и со стороны пользователя работа с таким устройством выглядит как подключаемый дисковый сетевой ресурс. NAS снимает такие проблемы традиционного файлового сервера, как дублирование данных и совместное использование файлов.

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

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

Недостатком NAS решений является то, что они не могут совместно использовать жесткие диски разных устройств, подключенных к локальной сети. В некоторых случаях недостатком считается и доступ к данным на уровне целых файлов, а не блоков (например, при обработке структурированных и ресурсоемких приложений СУБД). Помимо этого, так как средой передачи для NAS-серверов являются сети Ethernet, общая производительность работы системы не очень высокая. Помимо, решения NAS, как правило, не допускают наращивания, как системы SAN.

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

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

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

SAN - сеть хранения

SAN представляет собой сеть, отделенную от локальной сети, с возможностью хранить неограниченный объем данных. Типичная установка SAN включает ряд дисковых массивов, подключенных к коммутатору, который, в свою очередь, соединен с рядом серверов. Основой SAN является отдельная от LAN/WAN сеть, которая служит для организации доступа к данным серверов и рабочих станций, занимающихся их прямой обработкой. Такая сеть реализуется в сетях Fibre Channel. SAN позволяет любому серверу получить доступ к любому накопителю, не загружая при этом ни другие серверы, ни корпоративную локальную сеть. Кроме того, возможен обмен данными между системами хранения данных без участия серверов. Доступ к данным в SAN осуществляется на уровне блоков (в отличие от NAS, где доступ реализован на уровне файлов).

SAN включает пять базовых компонентов: серверы; инфраструктуру SAN; дисковые системы хранения; ленточные системы хранения; программное обеспечение

В SAN могут применяться четыре типа топологий:

«точка – точка» (point-to-point) – прямое подключение сервера к устройству или системе хранения;

«петля с арбитражным доступом» (Fibre Channel Arbitrated Loop – FC-AL) – передача данных осуществляется последовательно, от узла к узлу (по петле);

«коммутируемое подключение» (Fabric, FC-Fabric) – устройства хранения и серверы (всего до 16 млн. единиц) подключаются к коммутатору Fibre Channel. Обеспечивается передача данных непосредственно от источника информации к любому потребителю. Полоса пропускания доступна для каждого подключенного устройства. При обращении к внешней памяти допускается одновременное взаимодействие нескольких устройств;

«смешанное подключение» – используются как коммутаторы, так и концентраторы.

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

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

Почти единственным недостатком SAN является достаточно высокая цена.

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

SAN не следует использовать для организации файловых серверов, для серверов WWW, FTP, а также серверов, требующих менее 100 Гб дискового пространства.

10. Контроль и диагностика в ИС

1. Задачи системы контроля ИС

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

В современных ИС применяют средства автоматизированного контроля и диагностики, называемые системой контроля и диагностики. Которые выполняют следующие функции:

· Обнаружение ошибок;

· Определение причин и характера ошибок;

· Регистрация ошибок и ситуаций, в которых имело место возникновение ошибок (сбор статистики и информации об ошибках);

· Исправление ошибок;

· Поиск (диагноз) неисправностей;

· Реконфигурация системы;

· Ремонт (замена неисправных компонент);

· Проверка работоспособности системы (после ремонта или конфигурации).

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

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

Средства контроля ИС подразделяются на аппаратные, программные и

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

Полнота контроля оценивается как доля отказов, обнаруживаемых в результате контроля, от общего их количества:

где MK - множество элементов, подлежащих контролю;

M - множество всех элементов системы;

ni - число элементов i-го типа;

li - интенсивность отказов элементов i-го типа.

Время обнаружения ошибки (время контроля) определяется как интервал времени от момента возникновения ошибки до момента ее обнаружения.

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

Виды контроля

По характеру контроль в ИС подразделяется на оперативный и тестовый.

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

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

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

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

Рис. Схемы организации контроля.

а) прямой контроль

б) обратный контроль

в) смешанный контроль

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

При обратном контроле (рис. б) параллельный процесс П1 с исходным

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

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

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

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

Методы оперативного аппаратного контроля

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

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

Полнота контроля дублированием приближается к единице. Необнаружение ошибки может произойти по двум причинам:

а) если в устройствах А и В одновременно возникнут одинаковые ошибки;

б) если откажет устройство сравнения. Недостатком контроля дублированием является большое количество необходимой аппаратуры, а также то, что сравнение сигналов на выходе устройств позволяет обнаруживать ошибку не сразу, а только при появлении ошибочных результатов на выходе. Контроль дублированием применяется иногда для контроля самых ответственных и труднопроверяемых узлов и устройств ЭВМ, например, АЛУ.

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

A=aq+ra,

где a, q и ra - целые неотрицательные числа, а ra может принимать значения от 0 до q-1.

Тогда число q называют модулем, а число ra остатком А по модулю q.

В случае , когда числа А 1 и А 2 имеют одинаковые остатки ra1=ra2, то говорят , что А 1 и А 2 сравнимы по модулю q и записывают это условие следующим образом:

A 1A 2 mod q или A 2≡A 1 mod q

Поскольку число возможных значений ra равно q, число классов эквивалентности, на которые разбивается множество неотрицательных чисел А, равно q. Отсюда следует общее свойство контроля по модулю: чем больше q, тем больше классов эквивалентности, тем меньше мощность каждого класса и тем меньше вероятность того, что в результате некоторой ошибки число останется в том же классе эквивалентности (и вследствие этого ошибка не обнаружится). Следовательно, большие значения q обеспечивают большую полноту контроля. Рекомендуется выбирать q=r±1, где r - основание системы счисления.

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

Контроль хранения или передачи числа по модулю q . Пусть число А передается по каналу связи или записывается на магнитный носитель М . Тогда при помощи преобразователя П 2 образуется остаток ra, который передается дополнительным каналом связи (или записывается в дополнительное запоминающее устройство Мд). Пропускная способность дополнительного канала (или объем памяти дополнительного ЗУ) при этом значительно меньше тех же характеристик основного канала или ЗУ , т .к . разрядность остатка ra намного меньше разрядности числа А . Принятое (или считанное) число А* , которое, возможно, содержит искажения, подвергается также преобразованию П 1 с образованием остатка ra *, который затем сравнивается с остаток ra. При несовпадении формируется соответствующий сигнал контроля

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

1. Сумма чисел Ai(i=1,n) сравнима по модулю q с суммой остатков rai этих же чисел:

2. Произведение чисел Ai(i=1,n) сравнимо по модулю q с произведением остатков этих же чисел:

Контроль сложения чисел производится на основании теоремы 1.

Кроме суммы A * , которая после сложения чисел А 1 и А 2 в сумматоре S1, возможно, содержит ошибку, преобразователями П 1 и П 2 образуются остатки слагаемых ra1 и ra2. После их суммирования в сумматоре S2 небольшой разрядности получается остаток суммы остатков ra, который сравнивается с остатком ra * .

Контроль умножения чисел (рис .) производится аналогично контролю сложения, но с использованием теоремы 2. В приведенной схеме P1 - основное множительное устройство, Р 2 - вспомогательное множительное устройство небольшое разрядности. Множимое A1 и множитель А2 умножаются в основном множительном устройстве Р1, полученное произведение Ам* содержит, возможно, ошибку. Остаток ra * по модулю q результата сравнивается с остатком ra от произведения остатков ra1 и ra2 множимого и множителя соответственно. Признаком ошибки служит несовпадение остатков. Перемножение остатков производится небольшим вспомогательным множительным устройством P2.

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

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

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

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

Особенно просто цифровой контроль реализуется в случае двоичных чисел, когда модуль q=2. Такой контроль называется контролем по четности. При контроле по четности остаток суммы цифр равен нулю, либо единице в зависимости от четности числа единиц в исходном коде. В качестве остатка достаточно иметь один дополнительный разряд, называемый контрольным разрядом.

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

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

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

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

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

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

Различают два вида проверок:

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

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

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

Например, для контроля цепей сумматора обратных кодов целесообразно выбрать следующие исходные операнды: a=1111...11, b=0000...01; c=0101...01, d=1010...10 и выполнить операции a+b, b+a, c+d, d+c.

Первые две операции обеспечивают срабатывание всех цепей переноса и результат при этом должен быть 0000...01. В двух последних операциях цепи переноса не участвуют и результат должен быть равен 1111...11. Если в ходе контроля указанные результаты не получены, то либо сигнал переноса в одном из разрядов отсутствует, либо где -то возникает ложный сигнал переноса.

Проверка на переменных словах производится следующим образом. При помощи генератора случайных слов формируются несколько случайных операндов a, b, c, d, над которыми производятся либо две одинаковые операции и результаты сравниваются, либо две взаимно-обратные операции и результаты сравниваются с нулем, например:

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

11. Надежность программного обеспечения

1. Понятие отказа программного обеспечения как ошибки в нем

Программа - согласно ГОСТ 19781-90 - данные, предназначенные для управления конкретными компонентами системы обработки информации в целях реализации определенного алгоритма. Следовательно, по Тейеру, программа обладает свойством надежности в той мере, в какой она способна удовлетворительно выполнять функции, для которых она предназначена. Надежность программного обеспечения может быть определена как свойство программы, которое выражается в выполнении заданных функций в заданных условиях работы и на заданной вычислительной машине.

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

Пример из книги Майерсу «Надежность ПО».

Система раннего обнаружения баллистических снарядов Ballistic Missile Early Warning System должна наблюдать за объектами, движущимися по направлению к США, и, если объект не опознан, начать последовательность защитных мероприятий - от попыток установить с объектом связь до перехвата и уничтожения. Одна из ранних версий системы ошибочно принимала поднимающуюся над горизонтом Луну за снаряд, летящий над Северным полушарием. Является ли это ошибкой? С точки зрения пользователя (Министерства обороны США) - да. С точки зрения разработчика системы - возможно, и нет. Разработчик может настаивать на том, что в соответствии со спецификациями защитные действия должны быть начаты по отношению к любому движущемуся объекту, появившемуся над горизонтом и не опознанному как мирный летательный аппарат.

Программное обеспечение содержит ошибку, если:

· его поведение не соответствует спецификациям.

Недостатки: неявно предполагается, что спецификации корректны. Это если и бывает справедливым, то редко; подготовка спецификаций - один из основных источников ошибок. Если поведение программного продукта не соответствует его спецификациям, ошибка, вероятно, имеется. Однако если система ведёт себя в соответствии со спецификациями, мы не можем утверждать, что она не содержит ошибок.

· его поведение не соответствует спецификациям при использовании в установленных при разработке пределах. Это определение ещё хуже первого. Если система случайно используется в непредусмотренной ситуации, её поведение должно оставаться разумным. Если это не так, она содержит ошибку. Например, авиационная диспетчерская система, согласно спецификациям, должна управлять движением до 200 самолётов одновременно. Но однажды, в районе появился 201 самолёт. Если поведение системы неразумно - скажем, она забывает об одном из самолётов или выходит из строя, система содержит ошибку, хотя и используется вне пределов, установленных при проектировании.

· программное обеспечение ведёт себя не в соответствии с официальной документацией и поставленными пользователю публикациями.

А если ошибки содержатся и в программе и в публикациях? Или если в руководстве описана только ожидаемая и планируемая работа с системой. Например, написано: "Чтобы получить то-то, нажмите один раз то-то". Предположим, что пользователь случайно два раза нажимает то-то и система выходит из строя, потому что её разработчики не предусмотрели такой ситуации. Система, очевидно, содержит ошибку, но ведёт себя в соответствии с публикациями.

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

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

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

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

· defect — самое общее нарушение каких-либо требований или ожиданий, не обязательно проявляющееся вовне (к дефектам относятся и нарушения стандартов кодирования, недостаточная гибкость системы и пр.)

· failure — нарушение требований, проявляющееся при каком-то реальном сценарии работы ПО, это скорее проявление ошибки

· fault — ошибка в коде программы, вызывающая нарушения требований при работе (failures), то место, которое надо исправить. Хотя это понятие используется довольно часто, оно, вообще говоря, не вполне четкое, поскольку для устранения нарушения можно исправить программу в нескольких местах. Что именно надо исправлять, зависит от дополнительных условий, выполнение которых мы хотим при этом обеспечить.

· error — используется в двух смыслах.

Первый — это ошибка в ментальной модели программиста, которая заставляет его делать ошибки в коде (faults).

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

Первое место в неформальном состязании за место «самой дорого обошедшейся ошибки в ПО» долгое время удерживала ошибка, приведшая к неудаче первого запуска ракеты Ариан-5 4 июня 1996 года, стоившая около $500 миллионов. После произошедшего 14 августа 2003 года обширного отключения электричества на северо-востоке Северной Америки, стоившего экономике США и Канады от 4 до 10 миллиардов долларов, это место закрепилось за вызвавшей его ошибкой в системе управления электростанцией.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]