Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод_ПСРВ.doc
Скачиваний:
26
Добавлен:
12.02.2016
Размер:
1.6 Mб
Скачать

2. Упражнения

УПРАЖНЕНИЕ 2.1.

Написать программу (программы), которая выполняет по запросу оператора действия, реализованные в предыдущих работах (практ.раб. № ): создание, переименование, удаление, перемещение, копирование, создание связей и т.д. файлов и каталогов и выполняет контроль ошибочных ситуаций. В процессе выполнения работы необходимо использовать (предварительно изучив их) все приведенные функции.

УПРАЖНЕНИЕ 2.2.

Отладить и опробовать эту программу в действии.

УПРАЖНЕНИЕ 2.3.

Смоделируйте ошибочную ситуацию и, воспользовавшись функциями strerror() и perror(), выведите сообщение об ошибке и значение глобальной системной переменной errno, указывающее причину возникновения ошибки.

3. Содержание отчёта

  1. Номер, название и цель практической работы.

  2. Текст программы.

  3. Краткое описание действий и результаты выполнения программы (упражнения 2.1 – 2.3).

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ №13

Управление работами в ОС QNX

Цель – изучение основных средств управление работами в OC QNX

1. Краткие теоретические сведения

1.1. Работы и процессы

Каждый раз, когда вы выполняете программу, вы начинаете то, что известно, как процесс. Процесс  это название для выполняемой программы.

Например, если запускается процесс на основе программного модуля my_prog, находящегося в текущем каталоге, то команда:

$my_prog

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

Команда ps выдает перечень, имеющих место в данный момент процессов.

Например:

/home/student$ ps

PID TTY STAT TIME COMMAND

24 3 S 0:03 (ph)

161 3 R 0:00 ps

/home/student$

PID (Process IDentificator), перечисленные в первом столбике, это неповторяемые числа, приписанные всем процессам, которые идут.

Последний столбец (COMMAND) указывает имя выполняемой команды. Здесь мы видим только процессы, который инициировал пользователь Student. В системе выполняется и много других процессов. Команда “ps –aux” может выдать перечень всех процессов, которые происходят в данный момент.

В выведенном перечне указанные ph ( оболочка) и сама команда ps. Как вы видите, ph выполняется параллельно с командой ps. После того, как выданная таблица процессов, управление возвращается к оболочке, которая выдает на экран подсказку - готовность к приему новых команд.

Для завершения процесса используйте команду kill -  принудительное прекращение процесса.

СИНТАКСИС: kill идентификатор

ОПИСАНИЕ. По умолчанию команда kill посылает сигнал завершения процессам с указанными идентификаторами.

Вы можете уничтожить процесс, используя номер идентификатора процесса (PID):

/home/stud# kill 164

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

Нажатие клавиши Сtrl-C прерывает выполняемый процесс (тоже уничтожает его насовсем).

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

Работы могут быть также отложенные. Отложенная работа  это работа, которая в данный момент не выполняется, и временно остановленная. После того, вы прекратили работу, в дальнейшем вы можете ее продолжить. Прекращение работы не уничтожает ее. Чтобы осуществить прекращение работы, надо нажать соответствующие клавиши, это Ctrl-Z. Остановленная работа не выполняется и не использует время процессора, да и никакой работы в этот момент не делает (но занимает память). Возобновление прекращенной работы не изменит ее состояния  при возобновлении она начнется из того места, на котором была прекращенная.

Управление роботами (job control)  это возможность, которые предоставляют многие оболочки. Управление роботами разрешает руководить множеством команд или работ одновременно.

Выполняемый процесс, известен shell как работа. Термины - процесс и робота взаимозаменяемые. Однако процесс обычно воспринимается, как “работа”, когда речь идет об управлении роботами (job control) - посредством shell, что разрешает уделять внимание нескольким независимым роботам.

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

Работы могут выполняться как на переднем плане, так и в фоне.