1. Изучение технического, программного, информационного обеспечения производства

Вид материалаДокументы

Содержание


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


На ОАО «Радиозавод» в программном отделе НИО-2 используется операционная система OS Linux/MCBC 3.0 разработанная Российскими разработчиками. В отделе разрабатывают программное обеспечение для компьютеров отечественного производства, с российской ОС RV. Эта операционная система является наиболее подходящей для военной техники, т.к. Является наиболее стабильной и защищеной от вирусов, руткитов, троянский коней и т.д. На предприятии используется компилятор gcc под язык программирования C . Для программирования графических компонентов используется собственная графическая библиотека WCLT. Это специальная библиотека для Unix-подобных систем используемая оконный менеджер X Window. Оконный менеджер не позволяет создавать компоненты так как привыкли многие программисты с помощью визуальных менеджеров. X Window позволяет рисовать точку/прямую/прямоугольник/дугу/круг/овал/строку. Этих возможностей достаточно, для того что бы создавать визуальные компоненты. Например для рисования кнопки можно нарисовать «прямоугольник», а на нем надпись. Для работы этой кнопки Необходимо обработать события «клик мыши»/«нажатие клавиши клавиатуры»/«наведение мыши на компонент». Имеем две независимые программы. Одна умеет рисовать на экране, а также знает особенности конкретной аппаратуры, знает, что нужно делать, чтобы нарисовать линию или другой графический объект, умеет обрабатывать сигналы, приходящие от клавиатуры и мыши. Она называется X-сервер. Вторая программа - называется X-клиент, рисовать физически не умеет, но знает что надо рисовать, и умеет командовать. Команды типа: "провести линию", "открыть окно", "опросить координаты мыши", и т.п. передаются X-серверу, а тот их исполняет. Один X-сервер может быть подключен ко многим клиентам и всех обслуживать одновременно. На графическом экране может быть открыто сразу много окон - каждое окно порождается его собственным клиентом.

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

Состав пакетов и их последовательность определяются специальным протоколом, он называется "X протокол". Для программирования под X, совсем не обязательно знать детали реализации сервера и протокола обмена. Система предоставляет библиотеку процедур, с помощью которых программы осуществляют доступ к услугам X на высоком уровне. Так для того, чтобы вывести на экран точку, достаточно вызвать процедуру XDrawPoint(), передав ей соответствующие параметры, и выполняет всю черновую работу по подготовке и передачи пакетов данных серверу. Библиотека Xlib находиться в файле lX11.a (libX11.so), который, как правило, находится в каталоге /usr/X11R6/lib. Прототипы функций библиотеки, используемые структуры данных, типы и прочее определяется в файлах-заголовках из директории /usr/include/X11.


Р
исунок 1. Модель X Window


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

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

Разработчики X Window нашли эффектное решение этой проблемы с помощью создания двух обобщающих понятий - "ресурса" и "идентификатора ресурса". Всякий раз, когда необходимо выполнить какое-либо действие, вместо полной структуры данных, посылаемых по сети с запросом, посылается лишь его идентификатор. Использование указателей невозможно, так как клиент и сервер находятся на разных машинах. Если любой клиент знает ID ресурса, то тот клиент может управлять тем ресурсом, даже если другой клиент создавал ресурс. Это означает, более одного клиента можно вовлечь то же самое окно, хотя это не часто желательно. Менеджеры окон могут перемещать и изменять размеры прикладных окон, зная их ID.

Как правило, программы имеют набор конфигурационных параметров - ресурсов. Это может быть цвет окна, тип шрифта, которым рисуется текст, курсор, графический контекст и многое другое. Система стандартизует способ задания ресурсов приложений и содержит ряд процедур для работы с ними. Эта совокупность функций называется менеджером ресурсов (X recource manager или сокращенно Xrm). "Хранилище" параметров программы называется базой данных ресурсов.

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

X протокол определяет и составляет каждый пакет информации, который будет передан между сервером и Xlib в обоих направлениях. Даже когда сервер и Xlib находятся на одной машине, в этом случае протокол используется для связи, через внутренний канал вместо внешней сети. Это весьма скромный как по количеству понятий, так и по требованиям к пропускной способности сети протокол. В нем всего 4 базовых типа сообщений с простейшими форматами которые могут быть переданы через протокол: запрос, ответ, оповещение о событии, сообщение об ошибке.

Главная особенность X-протокола, революционно отличавшая самую первую реализацию X Window от своей предшественницы системы W, - асинхронный характер взаимодействия клиента с X-сервером. Это означает, что ни клиент, ни X-сервер не должны ожидать завершения/подтверждения какой-либо атомарной операции для выполнения других действий. Вторая особенность X-протокола заключается в неспособности X Window "сохранять состояние" протокола -- при потере связи между клиентом и X-сервером, состояние последних на момент потери связи не сохраняется. Такая особенность, с одной стороны, ограничивает применение базовой X Window в беспроводных системах (где замирания и пропадания сигналов не редкость), с другой это стимулирует создание многочисленных расширений системы, ликвидирующих этот недостаток.


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


Для контроля поведения программ на ОАО «Радиозавод» используется дизассемблер gdb.

Назначение отладчика, такого как GDB -- позволить вам увидеть, что происходит "внутри" другой программы во время ее выполнения, или что делала другая программа в момент краха.

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



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

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

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

Чтобы указать компилятору (gcc), что Вы планируете отлаживать Вашу программу, и поэтому нуждаетесь в дополнительной информации, добавьте ключ -g в опции компиляции и компоновки. Например, если Ваша программа состоит из двух файлов main.C и utils.C, Вы можете откомпилировать ее командами

gcc -c -g -Wall main.C

gcc -c -g -Wall utils.C

gcc -g -o myprog main.ob utils.o

или одной командой

gcc -g -Wall -o myprog main.o utils.o

Обе последовательности команд приводят к созданию исполняемого файла myprog.

чтобы выполнить полученную программу под управлением gdb, введите

gdb myprog

Вы увидите командное приглашение GDB:

(gdb)

Это очень простой, но эффективный тексовый интерфейс отладчика. Его вполне достаточно, чтобы ознакомиться с основными командами gdb.

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

Как только возникает командное приглашение, Вы можете использовать следующие команды.

help command

Выводит краткое описание команды GDB. Просто help выдает список доступных разделов справки.

run command-line-arguments

Запускает Вашу программу с определенными аргументами командной строки. GDB запоминает переданные аргументы, и простой перезапуск программы с помощью run приводит к использованию этих аргументов.

where

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

up

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

down

Производит эффект, обратный up.

print E

Выводит значение E в текущем окне программы, где E является выражением C++ (обычно просто переменной). Каждый раз при использовании этой команды, GDB нумерует ее упоминание для будущих ссылок. Например,

(gdb) print A[i] $2 = -16

(gdb) print $2 + ML $3 = -9

сообщает нам, что величина A[i] в текущем окне равна -16, и что при добавлении этого значения к переменной ML получится -9.

quit

Выход из GDB.

Ctrl-c

Если программа запущена через оболочку shell, Ctrl-c немедленно прекращает ее выполнение. В GDB программа приостанавливается, пока ее выполнение не возобновится.

break place

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

(gdb) break MungeData Breakpoint 1 at 0x22a4: file main.C, line 16.

Команда break main остановит выполнение в начале программы.

Вы можете установить точки останова на определенную строку исходного кода:

(gdb) break 19 Breakpoint 2 at 0x2290: file main.C, line 19.

(gdb) break utils.C:55 Breakpoint 3 at 0x3778: file utils.C, line 55.

Когда Вы запустите программу и она достигнет точки останова, Вы увидите сообщение об этом и приглашение, например

Breakpoint 1, MungeData (A=0x6110, N=7) at main.c:16

(gdb)

delete N

Удаляет точку останова с номером N. Если опустить N, будут удалены все точки останова.

cont или continue

Продолжает обычное выполнение программы.

step

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

next

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

finish

Выполняет команды next без остановки, пока не достигнет конца текущей функции.

GDB -- свободная программа, защищенная Универсальной Общественной Лицензией GNU (GPL). GPL предоставляет вам свободу копировать или изменять программу, но каждый человек, получая копию, также получает свободу изменять эту копию (это означает, что у него должен быть доступ к исходному коду), и свободу распространять последующие копии. Обычные компании, разрабатывающие программы, используют авторские права для ограничения ваших свобод; Фонд Свободного Программного Обеспечения использует GPL для сохранения этих свобод.


3.Изучение схемы расположения рабочих мест сотрудников.


Прежде всего, рабочее место должно отвечать требованиями безопасности труда. Кроме того, оно должно быть удобным, то есть соответствовать антропометрическим, физиологическим и психологическим требованиям, а также типу работы.
В связи с этим при проектировании рабочего места необходимо учитывать:
1) рабочую позу;
2) пространство для размещения работника;
3) возможность охватить взглядом все элементы рабочего места и пространство за его пределами;
4) возможность вести записи, размещать документацию и материалы, необходимые для работы.
Рабочее место следует организовать так, чтобы работник мог легко перемещаться в процессе трудовой деятельности, совершать все движения, необходимые для обслуживания оборудования, хорошо воспринимать звуковую и зрительную информацию. Работника нужно защитить от воздействия опасных и вредных факторов, при этом спецодежда и средства индивидуальной защиты, если они используются, не должны мешать работе. Помимо всего прочего работник должен иметь возможность экстренно покинуть рабочее место в случае, например, аварийной ситуации. Условия для экстренного ухода с рабочего места также необходимо предусмотреть.
При проектировании оборудования и организации рабочего места следует учитывать антропометрические показатели женщин (если работают только женщины) и мужчин (если работают только мужчины); если же оборудование обслуживают и женщины, и мужчины – учитываются общие средние показатели для тех и других.

На ОАО «Радиозавод» эти требования соблюдены. У каждого работника отдельный стол. Мягкий стул со спинкой на колёсиках. Достаточно для комфортной работы.


4.Изучение порядком пользования реферативными изданиями по профилю работы подразделения.


На ОАО «Радиозавод» есть документация по работе с X Window, операционной системой Linux и языку программирования C. Документация доступна в свободном доступе всем сотрудникам. Инструкция по эксплуатации:

Документ должен содержать сведения об АСУ (назначение, функции, регламент и режимы работы), указания о мерах по технике безопасности, порядок работы персонала, порядок проверки правильности функционирования технических средств, правила технической эксплуатации, указание о действиях при аварийном отключении технических средств системы, предаварийном и аварийном состояниях объекта, пусковом и остановочном режимах объекта.

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

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

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

В инструкции, как правило, не приводят сведения, имеющиеся в эксплуатационной документации предприятия-изготовителя технических средств АСУ.


5.Изучение технологических процессов на предприятиях.


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

Основные критерии надежности в технике:
  1. отказоустойчивость,
  2. ремонтопригодность,
  3. живучесть.

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

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

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

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


Список литературы:

1. Иан Соммервилл Инженерия программного обеспечения Software Engineering. — 6-е изд. — М.: ссылка скрыта, 2002. — С. 642. — ссылка скрыта
  1. ссылка скрыта (англ.). — Официальная страница международной рабочей группы по стандартизации языка программирования Си.
  2. Городняя Л. В. Основы функционального программирования. Курс лекций — М.: Интернет-университет информационных технологий, 2004. С. 280. ссылка скрыта
  3. ссылка скрытассылка скрыта