ВУЗ:
Составители:
14
Лабораторные задания
Разработать программу, выполняющую "разветвление" посредством сис-
темного вызова fork(). Вывести на экран идентификаторы PID и PPID для
родительского и дочернего процессов. Использовать функцию перенаправления
стандартного вывода в файл.
Варианты заданий
1. Приостановить на 1 с родительский процесс. В дочернем процессе с помощью
системного вызова system() выполнить стандартную команду ps
, перена-
правив вывод в файл номер 1. Вслед за этим завершить дочерний процесс. В
родительском процессе вызвать ps и перенаправить в файл номер 2. Освобо-
дить ячейку таблицы процессов порожденного процесса.
2. Приостановить на 1 с родительский процесс. Выполнить в дочернем процессе
один из системных вызовов exec(), передав ему в качестве параметра стан-
дартную программу ps. Аналогично выполнить вызов ps в родительском
процессе. Результаты работы команд ps в обоих процессах перенаправить в
один и тот же файл.
3. Определить в программе глобальную переменную var со значением, равным
1. Переопределить стандартный вывод и родительского, и дочернего процес-
сов в один и тот же файл. До
выполнения разветвления увеличить на 1 пере-
менную var, причем вывести ее значение, как до увеличения, так и после. В
родительском процессе увеличить значение переменной на 3, а в дочернем на
5. Вывести значение переменной до увеличения и после него внутри каждого
из процессов. Результат пояснить.
4. Приостановить на 1 с дочерний процесс. В дочернем
процессе с помощью сис-
темного вызова system() выполнить стандартную команду ps, перенапра-
вив вывод в файл номер 1. Вслед за этим завершить дочерний процесс. В ро-
дительском процессе вызвать ps и перенаправить в файл номер 2. Освободить
ячейку таблицы процессов порожденного процесса.
5. Приостановить на 1 с дочерний процесс. Выполнить в дочернем процессе
один
из системных вызовов exec(), передав ему в качестве параметра стан-
дартную программу ps. Аналогично выполнить вызов ps в родительском
процессе. Результаты работы команд ps в обоих процессах перенаправить в
один и тот же файл. Освободить ячейку таблицы процессов порожденного
процесса.
6. Программа порождает через каждые 2 секунды 5 новых процессов. Каждый из
этих процессов выполняется заданное время и останавливается, сообщая об
этом родителю. Программа-родитель выводит на экран все сообщения об из-
менениях в процессах.
Лабораторные задания Разработать программу, выполняющую "разветвление" посредством сис- темного вызова fork(). Вывести на экран идентификаторы PID и PPID для родительского и дочернего процессов. Использовать функцию перенаправления стандартного вывода в файл. Варианты заданий 1. Приостановить на 1 с родительский процесс. В дочернем процессе с помощью системного вызова system() выполнить стандартную команду ps, перена- правив вывод в файл номер 1. Вслед за этим завершить дочерний процесс. В родительском процессе вызвать ps и перенаправить в файл номер 2. Освобо- дить ячейку таблицы процессов порожденного процесса. 2. Приостановить на 1 с родительский процесс. Выполнить в дочернем процессе один из системных вызовов exec(), передав ему в качестве параметра стан- дартную программу ps. Аналогично выполнить вызов ps в родительском процессе. Результаты работы команд ps в обоих процессах перенаправить в один и тот же файл. 3. Определить в программе глобальную переменную var со значением, равным 1. Переопределить стандартный вывод и родительского, и дочернего процес- сов в один и тот же файл. До выполнения разветвления увеличить на 1 пере- менную var, причем вывести ее значение, как до увеличения, так и после. В родительском процессе увеличить значение переменной на 3, а в дочернем на 5. Вывести значение переменной до увеличения и после него внутри каждого из процессов. Результат пояснить. 4. Приостановить на 1 с дочерний процесс. В дочернем процессе с помощью сис- темного вызова system() выполнить стандартную команду ps, перенапра- вив вывод в файл номер 1. Вслед за этим завершить дочерний процесс. В ро- дительском процессе вызвать ps и перенаправить в файл номер 2. Освободить ячейку таблицы процессов порожденного процесса. 5. Приостановить на 1 с дочерний процесс. Выполнить в дочернем процессе один из системных вызовов exec(), передав ему в качестве параметра стан- дартную программу ps. Аналогично выполнить вызов ps в родительском процессе. Результаты работы команд ps в обоих процессах перенаправить в один и тот же файл. Освободить ячейку таблицы процессов порожденного процесса. 6. Программа порождает через каждые 2 секунды 5 новых процессов. Каждый из этих процессов выполняется заданное время и останавливается, сообщая об этом родителю. Программа-родитель выводит на экран все сообщения об из- менениях в процессах. 14
Страницы
- « первая
- ‹ предыдущая
- …
- 12
- 13
- 14
- 15
- 16
- …
- следующая ›
- последняя »