
- •Московский институт
- •Лабораторная работа 1.
- •Краткие теоретические сведения
- •Определение типа э в м.
- •Определение объема оперативной памяти.
- •Определение типа адаптера дисплея.
- •Ревизия периферийных устройств.
- •Домашнее задание.
- •Пример вызывающей программы
- •Режим графики
- •Определение времени работы программы
- •Домашнее задание
- •Лабораторная работа 4 Методы защиты программ и данных краткие теоретические сведения
- •Шифрование путем замены.
- •Шифрование путем перестановок.
- •Шифрование с помощью ключа.
- •Домашнее задание
- •Порядок выполнения работы
- •Лабораторная работа 5 Отладчик d e b u g. Краткие теоретические сведения
- •Что такое debug
- •Рабочие регистры
- •Регистры сегментов
- •Регистры смещения
- •Регистр флагов
- •Команды debug
- •Некоторые команды ассемблера
- •Небольшие примеры
- •Домашнее задание
- •Порядок выполнения работы
- •Лабораторная работа 6 Вывод точечной графики для ega адаптера. Циклы и процедуры в ассемблере. Краткие сведения о видеосистемах ibm pc.
- •Программа на ассемблере
- •Пример программы
- •Порядок выполнения работы
- •Лабораторная работа 7 Генерация звука краткие теоретические сведения
- •Пример программы
- •Домашнее задание
- •Небольшие примеры Создание файла
- •Домашнее задание
- •Общие Сведения о системе Вход в систему:
- •Выход из системы:
- •Команда man (оперативный справочник)
- •Команды mount, umount
- •Маршрутные имена файлов
- •Команда who
- •Команда cd
- •Команда pwd
- •Команда mkdir.
- •Команда rmdir.
- •Команда ls.
- •Команда cp.
- •Требуется указать как минимум два аргумента - источник и приемник
- •Команда more и cat
- •Команда mv.
- •Команда chmod
- •Порядок выполнения работы
- •Фильтры и регулярные выражения Команды, изучаемые в данной лабораторной работе:
- •Команда cat
- •Команда tee
- •Команда wc
- •Команда spell
- •Команда sort
- •Команда cut
- •Команда diff
- •Команда grep и fgrep.
- •- I игнорирует регистр - с выводит только число, соответствующее количеству строк с заданным образцом
- •Регулярные выражения
- •Порядок выполнения работы
- •Лабораторная работа 11. Интерпретатор команд Bourne Again Shell (bash). Команды, изучаемые в данной лабораторной работе:
- •Программирование в Bourne Again Shell
- •Команды echo и read
- •Коды завершения
- •Команда test
- •Команды exit и return
- •Команда let
- •Оператор Описание
- •Команда if-then
- •Команда case
- •Команда while
- •Команда for-in
- •Порядок выполнения работы
- •Лабораторная работа 12
- •Shell-программирование: сигналы и прерывания.
- •Хранение файлов во внешней памяти.
- •Общие сведения о системе
- •Команда kill
- •Команда trap
- •Виды действий с сигналами прерываний :
- •Размещение команды trap в программе
- •Выполнение команд в фоновом режиме.
- •Запуск заданий в фоновом/оперативном режиме
- •Команда tar
- •Команда cpio
- •Использование команды find при резервном копировании
- •Порядок выполнения работы
Команда trap
Назначение: защита программ от прерывания.
Для защиты от прерываний существует команда trap, которая может быть использована в shell-программах с целью перехвата сигнала до того, как он удалит (уничтожит) процесс и выполнения некоторого дополнительного или альтернативного действия. Команду trap следует применить для указания в явном виде сигналов и связанных с ними соответствующих действий, которые должны быть выполнены. Команды могут представлять собой список команд системы OC Linux, отделяемых ;. Можно также создать shell-программу, которая выполнит требуемые действия и указать имя этой программы в качестве аргумента. Обычно команды trap помещаются в начале shell-программы. Сигналы о прерывании определяются shell’ом, когда он читает команду trap. Прерывания активизируются по получении соответствующего сигнала.
Синтаксис:
trap ‘команды’ сигнал [ сигнал... ] выполняются команды по получении сигнала
Пример:
$ cat > mytrap
trap ‘echo bye; exit’ INT QUIT TERM
while true
do
echo hello
done
$ mytrap
hello
hello
hello
bye -------------------------------------- нажать <Ctrl>+<c>
$
Виды действий с сигналами прерываний :
Перехват сигнала. Вместо прекращения выполнения процесса будут выполнены указанные специальные команды.
Игнорирование сигнала. Используется, если shell-программа работает с важными файлами и важно сохранить их содержимое, несмотря на прерывание.
Синтаксис:
trap ‘ ’ сигнал [ сигнал... ]
Пример:
$ cat > mytrap2
trap ‘ ’ INT
while true
do
echo hello
done
$ mytrap2
hello
hello-------------------------------------- нажать <Ctrl>+<c> (проигнорирован)
hello
hello -------------------------------------- нажать <Ctrl>+<\> (проигнорирован)
$
Сигнал KILL не может быть проигнорирован!
Сбрасывание сигналов прерывания. После захвата или игнорирования команда trap умолчанию. Обычно такое действие связано с завершением процесса. Это не вызовет сброса прерываний по отношению к действиям, которые были заданы раньше, чем задано игнорирование прерываний.
Сигнал NULL посылается процессом при нормальном завершении. Он используется для того, чтобы задать действие, которое должна выполнить shell-программа после нормального завершения процесса.
Размещение команды trap в программе
Помещайте команду в начале программы для управления удалением временных файлов, если выполнение программы прекращается:
trap ‘rm /tmp/tempfile;exit’ INT QUIT TERM
Помещайте команду перед критическим участком программы для того, чтобы игнорировать возможные сигналы прерывания:
trap ‘ ‘ INT QUIT TERM
С помощью команды trap восстанавливайте действие системы, принятое по умолчанию, когда выполняется участок программы, требующий нормального завершения:
trap INT QUIT TERM
Выполнение команд в фоновом режиме.
Синтаксис:
командная строка > cmd.out &
Планирует командную строку как задание для фонового режима.
Возвращает приглашение на ввод, как только задание запущено.
Перенаправляет вывод фонового процесса с тем, чтобы его вывод не смешивался с интерактивными командами.
Выход из системы приведет к завершению процессов, выполняемых в фоновом режиме. Пользователь получит предупреждение в тот момент, когда попытается выйти из системы, следующего содержания: “There are running jobs”, и поэтому он снова должен ввести команду exit или нажать <Ctrl>+<d>.
Любая из выполняемых в фоновом режиме команд, требующая стандартного ввода, Shell сообщает номер задания и идентификатор процесса при переводе команды в фоновый режим в том случае, если указана опция monitor в команде set (set -o monitor). При указании этой опции по завершении фонового процесса будет выдано на экран соответствующее сообщение.
Команду, выполняемую в фоновом режиме, нельзя прервать нажатием <Ctrl>+<c>. Такого рода команды могут быть прекращены с помощью команды kill.
Весь ввод и вывод фонового процесса должен быть безусловно перенаправлен.