- •Министерство образования и науки Украины
- •Практическое занятие №1
- •1.1. Сокращенная запись двоичных чисел в восьмеричной и шестнадцатеричной системах счисления
- •1.2. Преобразование восьмеричных и шестнадцатеричных чисел в двоичные
- •1.3. Преобразование двоичных, восьмеричных и шестнадцатеричных чисел в десятичные
- •1.4. Преобразование десятичных чисел в двоичные, восьмеричные и шестнадцатеричные
- •2. Упражнения
- •3. Содержание отчёта
- •Практическое занятие №2
- •1.1. Вход в систему
- •1.2. Редактирование командной строки
- •1.3. Память командных строк
- •1.4. Переключение виртуальных консолей
- •1.5. Изменение консольных шрифтов
- •1.6. Основные команды
- •Выполнение некоторых команд
- •2. Команда просмотра содержимого каталогов -ls (LiSt) – выдает на экран перечень файлов и каталогов (по умолчанию из текущего каталога).
- •Жесткая ссылка обозначает ся так же, как файл, на который она ссылается, счетчик ссылок при этом будет иметь значение больше 1.
- •3. Команда создание новых каталогов - mkdir.
- •5. Команда копирование файлов -cp (CoPy).
- •6. Команда перемещение файлов - mv (MoVe).
- •7. Команда удаление файлов - rm (ReMove).
- •8. Команды просмотра содержимого файлов more и cat.
- •Подстановочные символы
- •1.7. Выход из системы
- •2. Упражнения
- •Используя справочную информацию из п.1.6 Основные команды, изучите работу рассмотренных команд с различными параметрами и опциями:
- •1.2. Перенаправление ввода и вывода
- •1.3. Перенаправление с добавлением
- •1.4. Использование конвейера
- •2. Упражнения
- •3. Содержание отчёта
- •Справочная информация
- •Практическое занятие №4 Псевдонимы команд в ос qnx Цель – создание псевдонимов команд для облегчения работы в среде ос qnx
- •1. Краткие теоретические сведения
- •1.1. Управление связями файлов
- •1.2. Жесткие связи
- •1.3. Символические связи
- •1.4. Права доступа к файлам
- •1.5. Зависимости
- •1.6. Изменение прав доступа
- •2. Упражнения
- •3. Содержание отчёта
- •1.2. Сравнение файлов (команда diff)
- •1.3. Подсчет числа слов, строк и байт в файле (команда wc)
- •1.4. Потоковый редактор sed
- •2. Упражнения
- •/Usr/bin/grep
- •/Usr/xpg4/bin/grep
- •/Usr/xpg4/bin/grep
- •Операнды
- •/Usr/bin/grep
- •/Usr/xpg4/bin/grep
- •Использование
- •Работа с большими файлами
- •/Usr/bin/who
- •/Usr/xpg4/bin/who
- •Операнды
- •1.1. Ввод текста
- •1.2. Редактирование текста
- •1.3. Сохранение файлов и выход из VI
- •1.4. Редактирование еще одного файла
- •1.5. Включение других файлов
- •1.6. Выполнение команд Shell
- •2. Упражнения
- •3. Содержание отчёта
- •Практическое занятие №7 Работа с текстовыми файлами Цель – знакомство с командами, работающими с текстовыми файлами (awk-интерпретатор скриптовый)
- •1. Краткие теоретические сведения
- •1.1. Язык awk
- •1.2. Регулярные выражения
- •Метасимволы, используемые в регулярных выражениях
- •1.3. Действия
- •1.4. Awk-переменные и выражения
- •1.5. Использование операций
- •1.6. Использование массивов
- •1.7. Селекторы
- •1.8. Использование операторов
- •1.9. Ввод и вывод данных
- •1.10. Встроенные функции
- •2. Упражнения
- •Структура файла query1
- •Структура файла query2
- •3. Содержание отчёта
- •1.2. Граматика языка shell
- •2. Упражнения
- •3. Содержание отчёта
- •Выполнить:
- •2. Упражнения
- •Примечание:
- •3. Содержание отчёта
- •1.1. Компоновка объектных модулей
- •1.2. Отладка
- •2. Упражнения
- •Задание №1
- •Задание №2
- •Задание №3
- •Задание №4
- •Задание №5
- •Задание №6
- •Задание №13
- •Задание №14
- •Задание №15
- •Задание №16
- •Задание №17
- •Практическое занятие №11
- •2. Упражнения
- •3. Содержание отчёта
- •1.2. Создание каталога
- •1.3. Биты режима для прав доступа
- •1.4. Удаление каталога
- •1.5. Создание жесткой связи
- •1.6. Создание символической связи
- •1.7. Чтение символической связи
- •1.8. Переименование файла
- •1.9. Удаление файла
- •1.10. Обработка ошибок
- •2. Упражнения
- •3. Содержание отчёта
- •1.2. Проверка возможностей управления работой и процессами в shell
- •2. Упражнения
- •3. Содержание отчёта
- •1.3. Ошибки, связанные с именами файлов
- •1.4. Доступ к файлу
- •2. Упражнения
- •3. Содержание отчёта
- •Практическое занятие №15 Организация процессов вQnx
- •1. Методические указания по выполнению практической работы
- •1.1. Файл main.O
- •1.2. Файл input.C
- •1.3. Файл output.C
- •1.4. Файл process.C
- •1.5. Используемые функции
- •1.6. Получение информации о процессах
- •2. Упражнения
- •1.2. Клиент
- •1.3. Определение идентификаторов узла, процесса и канала (nd/pid/chid) нужного сервера
- •1.4. Применение обмена сообщениями
- •2. Упражнения
- •3. Содержание отчёта
- •Практическое занятие №17 Организация потоков в qnx
- •1. Краткие теоретические сведения
- •1.1. Запуск потока
- •1.2. Администрирование атрибутов потока
- •Текст программы
- •Результаты
- •1.2. Текст программы
- •1.3. Последовательность действий
- •1.4. Результаты
- •2. Упражнения
- •3. Содержание отчёта
Министерство образования и науки Украины
Национальная металлургическая академия Украины
Кафедра автоматизации производственных процессов
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
к практическим занятиям по дисциплине
«ПРОГРАММИРОВАНИЕ СИСТЕМ РЕАЛЬНОГО ВРЕМЕНИ»
для студентов направления 6.0925 – “Автоматизация и компьютерно-интегрированные технологии”
Днепропетровск 2009
Методические указания к практическим занятиям по дисциплине «Программирование систем реального времени»
Составители: Акуловский В.Г., доцент,
Радченко В.П., ассистент,
Тригуб И.Г., ассистент
СОДЕРЖАНИЕ
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ №1 8
Системы счисления 8
1. Краткие теоретические сведения 8
1.1. Сокращенная запись двоичных чисел 11
в восьмеричной и шестнадцатеричной системах счисления 11
Двоичное число 11
1.2. Преобразование восьмеричных и шестнадцатеричных 11
чисел в двоичные 11
1.3. Преобразование двоичных, восьмеричных и шестнадцатеричных 12
чисел в десятичные 12
1.4. Преобразование десятичных чисел в двоичные, восьмеричные и шестнадцатеричные 12
2. Упражнения 14
3. Содержание отчёта 15
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ №2 16
Знакомство с файловой системой и основными командами 16
работы с каталогами в среде ОС QNX 16
1. Краткие теоретические сведения 16
1.1. Вход в систему 18
1.2. Редактирование командной строки 19
1.3. Память командных строк 19
1.4. Переключение виртуальных консолей 20
1.5. Изменение консольных шрифтов 20
1.6. Основные команды 20
Выполнение некоторых команд 22
1.7. Выход из системы 30
2. Упражнения 30
3. Содержание отчёта 31
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ №3 32
Знакомство с понятиями стандартного ввода-вывода, перенаправления и организацией конвейера в среде ОС QNX 32
1. Краткие теоретические сведения 32
1.1. Стандартный ввод и стандартный вывод 32
1.2. Перенаправление ввода и вывода 33
1.3. Перенаправление с добавлением 34
1.4. Использование конвейера 34
2. Упражнения 36
3. Содержание отчёта 36
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ №4 42
Псевдонимы команд в ОС QNX 42
1. Краткие теоретические сведения 42
1.1. Управление связями файлов 43
1.2. Жесткие связи 43
1.3. Символические связи 44
1.4. Права доступа к файлам 45
1.5. Зависимости 46
1.6. Изменение прав доступа 46
2. Упражнения 47
3. Содержание отчёта 47
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ №5 48
Работа с текстовыми файлами 48
1. Краткие теоретические сведения 48
1.1. Команда-фильтр grep: поиск строки по файлам 48
1.2. Сравнение файлов (команда diff) 49
1.3. Подсчет числа слов, строк и байт в файле (команда wc) 50
1.4. Потоковый редактор sed 50
2. Упражнения 54
3. Содержание отчёта 54
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ №6 63
Изучение текстовых редакторов ОС QNX 63
1. Краткие теоретические сведения 63
1.1. Ввод текста 64
1.2. Редактирование текста 65
1.3. Сохранение файлов и выход из vi 68
1.4. Редактирование еще одного файла 68
1.5. Включение других файлов 68
1.6. Выполнение команд Shell 69
2. Упражнения 69
3. Содержание отчёта 70
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ №7 76
Работа с текстовыми файлами 76
1. Краткие теоретические сведения 76
1.1. ЯЗЫК awk 77
1.2. Регулярные выражения 79
Метасимволы, используемые в регулярных выражениях 79
1.3. Действия 81
1.4. awk-переменные и выражения 83
1.5. Использование операций 85
1.6. Использование массивов 86
1.7. Селекторы 87
1.8. Использование операторов 89
1.9. Ввод и вывод данных 90
1.10. Встроенные функции 92
2. Упражнения 94
3. Содержание отчёта 95
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ №8 96
Программирование сценариев для интерпретатора shell 96
1. Краткие теоретические сведения 96
1.1. ЭЛЕМЕНТЫ ЯЗЫКА SHELL 96
1.2. ГРАМАТИКА ЯЗЫКА SHELL 97
2. Упражнения 99
3. Содержание отчёта 100
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ №9 101
Программирование сценариев для интерпретатора shell 101
1. Команды, работающие с символьными файлами. 101
1.1. КОМАНДА sort 101
ВЫПОЛНИТЬ: 101
1.2. КОМАНДА find («поиск файлов») 101
ВЫПОЛНИТЬ: 102
1.3. КОММЕНТАРИЙ 102
СПЕЦИАЛЬНЫЙ КОММЕНТАРИЙ 102
2. Упражнения 103
3. Содержание отчёта 105
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ №10 106
Основы программирования на языке С++ 106
1. Краткие сведения из теории 106
1.1. Компоновка объектных модулей 106
1.2. Отладка 107
2. Упражнения 108
Задание №1 108
Задание №2 109
Задание №3 110
Задание №4 111
Задание №5 112
Задание №6 114
Задание №7 115
Задание №8 115
Задание №9 115
Задание №10 115
Задание №11 115
Задание №12 115
Задание №13 116
Задание №14 116
Задание №15 116
Задание №16 116
Задание №17 117
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ №11 118
Технология создания программных проектов в ОС QNX 118
1. Краткие сведения из теории 118
2. Упражнения 121
3. Содержание отчёта 125
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ №12 126
Функции управления файловой системой 126
1. Примеры программ, использующих библиотечные функции, управляющие файлами 126
2. Упражнения 132
3. Содержание отчёта 133
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ №13 134
Управление работами в ОС QNX 134
1. Краткие теоретические сведения 134
1.1. Работы и процессы 134
2. Упражнения 138
3. Содержание отчёта 139
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ №14 140
Запись и чтение информации из/в файл 140
1. Краткие теоретические сведения 140
1.1. Функции базового ввода/вывода 140
1.2. Открытие файла 140
1.3. Ошибки, связанные с именами файлов 143
1.4. Доступ к файлу 144
2. Упражнения 148
3. Содержание отчёта 148
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ №15 149
Организация процессов в QNX 149
1. Методические указания по выполнению практической работы 149
1.1. Файл main.o 150
1.2. Файл INPUT.C 153
1.3. Файл OUTPUT.C 154
1.4. Файл PROCESS.C 155
1.5. Используемые функции 157
Что под ним подразумевается 159
Системное сообщение 159
Перевод 159
1.6. Получение информации о процессах 168
2. Упражнения 168
3. Содержание отчёта 169
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ №16 170
Организация синхронизации процессов в QNX. 170
Разработка мультипроцессных приложений 170
1. Краткие теоретические сведения 170
1.1. Сервер. Создание канала 170
1.2. Клиент 171
1.3. Определение идентификаторов узла, процесса и канала 172
(ND/PID/CHID) нужного сервера 172
1.4. Применение обмена сообщениями 172
2. Упражнения 173
3. Содержание отчёта 176
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ №17 177
Организация потоков в QNX 177
1. Краткие теоретические сведения 177
1.1. Запуск потока 177
1.2. Администрирование атрибутов потока 178
2. Упражнения 182
3. Содержание отчёта 182
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ №18 183
Синхронизация потоков. Барьеры. 183
1. Краткие теоретические сведения 183
1.1. Применение барьера 183
1.2. Текст программы 183
1.3. Последовательность действий 185
1.4. Результаты 185
2. Упражнения 185
3. Содержание отчёта 186