- •Министерство образования и науки Украины
- •Практическое занятие №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. Содержание отчёта
1.1. Сокращенная запись двоичных чисел в восьмеричной и шестнадцатеричной системах счисления
В основном восьмеричная и шестнадцатеричная системы счисления используются для сокращенного представления длинных двоичных чисел. Рассмотрим приведенное ниже двоичное число, состоящее из 12 двоичных цифр, и его эквиваленты в восьмеричной и шестнадцатеричной системах счисления.
Двоичное число |
Восьмеричный эквивалент числа |
Шестнадцатеричный эквивалент числа |
100011010001 |
4321 |
8D1 |
Для преобразования двоичного числа в восьмеричное необходимо разбить двоичное число из 12 цифр на группы из трех последовательных разрядов каждая и записать под этими группами соответствующие им восьмеричные цифры следующим образом:
100 011 010 001
4 3 2 1
Для преобразования двоичного числа в шестнадцатеричное необходимо разбить двоичное число из 12 цифр на группы по четыре последовательных разрядов каждая и записать под этими группами соответствующие им шестнадцатеричные цифры следующим образом:
1000 1101 0001
8 D 1
1.2. Преобразование восьмеричных и шестнадцатеричных чисел в двоичные
Процесс преобразования двоичного числа в восьмеричное или шестнадцатеричное может использоваться в обратной последовательности для преобразования восьмеричного или шестнадцатеричного числа в двоичное.
Например, восьмеричное число 653 преобразовывается в двоичное число следующим образом: цифра 6 заменяется ее двоичным эквивалентом из 3 цифр 110, цифра 5 заменяется ее двоичным эквивалентом из 3 цифр 101 и цифра 3 заменяется ее двоичным эквивалентом 011; в итоге получается двоичное число 110101011 из 9 цифр.
Шестнадцатеричное число FAD5 преобразовывается в двоичное заменой цифры F на ее двоичный эквивалент из 4 цифр 1111, цифры А – на ее двоичный эквивалент 1010, цифры D – на ее двоичный эквивалент 1101 из 4 цифр и 5 – на ее двоичный эквивалент из 4 цифр 0101. В итоге получается двоичное число из 16 цифр 1111101011010101.
1.3. Преобразование двоичных, восьмеричных и шестнадцатеричных чисел в десятичные
Для того чтобы преобразовать к десятичному виду число, записанное в другой системе счисления, умножьте десятичный эквивалент каждой цифры числа на соответствующее позиционное значение и просуммируйте полученные величины. Например, двоичное число 110101 преобразовывается в десятичное число 53 следующим образом:
Для преобразования восьмеричного числа 7614 в десятичное число 3980 используют ту же самую методику, применяя соответствующие значения позиций восьмеричной системы счисления:
Преобразование шестнадцатеричного числа AD3B в десятичное 44347 выполняется тем же самым способом с использованием соответствующих позиционных значений шестнадцатеричной системы счисления:
1.4. Преобразование десятичных чисел в двоичные, восьмеричные и шестнадцатеричные
Преобразование десятичных чисел к двоичному, восьмеричному или шестнадцатеричному представлению выполняется в соответствии с правилами записи числа в позиционной системе счисления.
Предположим, что мы хотим преобразовать десятичное число 57 в двоичное. Начнем с того, что выпишем значения позиций двоичной системы в колонки, справа налево, пока не дойдем до позиционного значения, превосходящего наше десятичное число. Эта позиция нам не нужна и мы отбрасываем этот столбец. Таким образом, сначала запишем:
Позиционные значения: 64 32 16 8 4 2 1
Затем отбрасываем столбец с позиционным значением 64:
Позиционные значения: 32 16 8 4 2 1
После этого начинается процесс обработки столбцов, с крайнего левого столбца и далее, до крайнего правого. Делим 57 на 32, получаем 1 и остаток 25; записываем 1 в столбце 32. Далее, делим остаток 25 на 16, получаем 1 и 9 в остатке; записываем 1 в столбце 16. Затем, делим 9 на 8, получаем 1 и 1 в остатке. Для следующих двух столбцов частное от деления остатка равного 1 на их позиционные значения равны 0, так что в эти столбцы записываем нули. Для крайней правой позиции число 1, деленное на 1, дает 1 и мы записываем 1 в столбец единиц. В результате получаем:
Порционные значения: 32 16 8 4 2 1
Значения цифр 1 1 1 0 0 1
и, таким образом, десятичному числу 57 будет соответствовать двоичное число 111001.
Для преобразования десятичного числа 103 в восьмеричное начнем с того, что последовательно выпишем позиционные значения восьмеричной системы в столбцы, пока не дойдем до значения позиции, превосходящей наше десятичное число. Этот столбец нам не нужен и мы его отбросим. Таким образам, сначала запишем:
Позиционные значения: 512 64 8 1
Затем отбрасываем столбец с позиционным значением 512 и получаем:
Позиционные значения: 64 8 1
После этого начинаем обработку с крайнего левого столбца и далее до крайнего правого. Делим 103 на 64, получаем 1, остаток 39 и записываем 1 в столбце 64.
Далее, делим 39 на 8, получаем 4 и 7 в остатке и записываем 4 в столбце восьмерок. И, наконец, делим 7 на 1, получаем 7 и 0 в остатке и записываем 7 в столбце единиц. В результате получаем:
Позиционные значения: 64 8 1
Значения цифр: 1 4 7
Таким образом, десятичному числу 103 соответствует восьмеричное число 147.
Для преобразования десятичного числа 375 в шестнадцатеричное начнем с того, что выпишем значения позиции шестнадцатеричной системы в столбцы, пока не дойдем до позиционного значения, превосходящего наше десятичное число. Этот столбец нам не нужен и мы его отбросим. Таким образом, сначала запишем:
Позиционные значения: 4096 256 16 1
Затем отбрасываем столбец с позиционным значением 4096 и получаем:
Позиционные значения: 256 16 1
После этого начинаем обработку столбцов с крайнего левого столбца и далее до крайнего правого. Делим 375 на 256, получаем 1, остаток 119 и записываем 1 в столбце 256. Далее, делим 119 на 16, получаем 7 и 7 в остатке и записываем 7 в столбце 16. И, наконец, делим 7 на 1, получаем 7 и 0 в остатке и записываем 7 в столбце единиц. В результате получаем:
Позиционные значения: 256 16 1
Значения цифр: 1 7 7
Таким образом, десятичному числу 375 соответствует шестнадцатеричное число 177.