Управление процессами
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: реферат орган, диплом
| Добавил(а) на сайт: Вонифатий.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 | Следующая страница реферата
а) Если сын приостановлен (трассировка или получение сигнала), тогда старшие 8 бит wait_ret - , а младшие содержат код 0177.
б) Если сыновий процесс успешно завершился через обращение к функции exit. Тогда младшие 8 бит равны нулю, а старшие 8 бит равны коду, установленному функцией exit.
в) Если сын завершился из-за возникновения у него необрабатываемого сигнала, то старшие 8 бит равны нулю, а младшие - номер сигнала, который завершил процесс.
Функция wait возвращает идентификатор процесса в случае успешного выполнения и “-1” в противном случае. Если одно из перечисленных событий произошло до обращения к функции, то результат возвращается сразу же, то есть никакого ожидания не происходит, это говорит о том, что информация о событиях в процессе безвозвратно не теряется.
Давайте рассмотрим еще один пример. Наш будильник будет уже многопроцессный.
alr()
{
printf(“n Быстрее!!! n”);
signal (SIG_ALRM, alr);
}
main ()
{
char s[80]; int pid;
signal(SIG_ALRM, alr);
if (pid=fork()) for (;;)
{
sleep(5); /*приостанавливаем процесс на 5 секунд */
kill(pid, SIG_ALRM);/*отправляем сигнал SIG_ALRM процессу-сыну */
}
print(“имя?”);
for (;;)
{
printf(“имя?”);
if gets(s,80)!=NULL) break;
}
printf(“OK!n”);
kill(getpid(), SIG_KILL); /* убиваем зациклившегося отца */
}
Следует заметить, что в разных версиях UNIX имена сигналов могут различаться.
Наша программа реализуется в двух процессах.
Как и в предыдущем примере, имеется функция реакции на сигнал alr(), которая выводит на экран надпись и переустанавливает функцию реакции на сигнал опять же на себя. В основной программе мы также указываем alr() как реакцию на SIG_ALRM. После этого мы запускаем сыновний процесс, и отцовский процесс (бесконечный цикл) “засыпает” на 5 единиц времени, после чего сыновнему процессу будет отправлен сигнал SIG_ALRM. Все, что ниже цикла, будет выполняться в процессе-сыне: мы ожидаем ввода строки, если ввод осуществлен, то происходит убиение отца (SIG_KILL).
Замечание: мы говорим о некотором обобщенном UNIX, реальные UNIX-ы могут иметь некоторые отличия друг от друга. На сегодняшний день имеются достаточно формализованные стандарты на интерфейсы ОС, в частности для UNIX это POSIX-standard, т.е. были проведены работы по стандартизации интерфейсов всех уровней для открытых систем. Основной задачей является унификация работы с системами, как на уровне запросов от пользователя, так и на уровне системных вызовов. В принципе, на сегодняшний день практически все разработчики ОС стараются привести свои системы к стандарту POSIX. В частности, Microsoft объявила, что системные вызовы и работа с файлами в Windows NT происходит в стандарте POSIX. Но так или иначе реальные коммерческие системы от этого стандарта отходят.
Второе замечание: мы начали рассматривать примеры, но крайне важно, чтобы все эти примеры были реализованы на практике, дабы убедиться, что они работают, посмотреть, как они работают, и добиться этой работы, так как версии UNIX могут не совпадать. Для этого следует посмотреть мануалы и, если надо, подправить программы.
Лекция №15
Трассировка процессов
К сегодняшнему дню, мы с вами рассмотрели стандартную схему образования процессов в UNIX-е и взаимодействие процессов с использованием системы передачи сигналов друг другу. Мы с вами обсудили организацию взаимодействия процессов с использованием т.н. неименованных каналов, это средство позволяет асинхронным образом передавать информацию от одного процесса к другому. Эти средства работают для родственных процессов.
Сегодня мы рассмотрим еще одну базовую функцию операционной системы UNIX, которая поддерживает трассировку процессов. Трассировка - это возможность одного процесса управлять ходом выполнения другого процесса. Давайте рассмотрим основные действия, выполняемые при отладке.
Установка контрольной точки.
Обработка ситуации, связанной с приходом в контрольную точку.
Чтение/запись информации в отлаживаемой программе.
Остановка/продолжение выполнения отлаживаемого процесса.
Шаговый режим отладки (остановка отлаживаемой программы после выполнения каждой инструкции).
Рекомендуем скачать другие рефераты по теме: сочинения по литературе, реферат на тему государство.
Категории:
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 | Следующая страница реферата