Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Звіт.doc
Скачиваний:
2
Добавлен:
10.09.2019
Размер:
107.52 Кб
Скачать

Індивідуальне завдання №1

Завдання

1. В якості прикладу використання си­стемного виклику getppid() самостійно написати програму, що друкувала б значення PPID для текучого процесу. Відкомпілюйте її і запустіть декілька раз під ряд. Спробуйте пояснити змі­ни, які ви спостерегли.

2. Блок-схема

Програма

3. /""Програма - приклад створення нового процесу з однаковою роботою процесів нового і батьківського */

  • include <sys/types. h> /*підключаємо бібліотеки*/

  • include <unistd. h>

  • include <studio. h>

Int main 0

{

pid_t tppid; /*ідентифікатор батьківського процесу*/

int a=o; /*обнулюємо лічильник*/

/* Перед виконанням наступного виразу значення змінної а в обох

процесах рівне нулю */

а=а+1;

/* Взнаємо ідентифікатор батьківського процеса*/

ppid= getppid ();

/* печатаємо значення PID, PPID і обчислене значення змінної а (в кожному із процесів!!!) */

printf ("myppid= %d, result= %d\n",(int)ppid, a);

return 0;

}

4.

Опис програми:

ми використали системний виклик getppit(), і самостійно написав програму, що друкує значення PPID для текучого процесу. І відкомпілювали її і запустили декілька разів під ряд.

При виконанні цієї роботи я використав такі блоки:

1.Підключення бібліотек.

2.Використав ідентифікатор ppid.

3.Обнуляємо лічильник int a=o.

4.Вивів результат за допомогою printf.

Індивідуальне завдання №2

Завдання

1. Написати програму, яка б демон­струвала створення процесу через сис­темний виклик fork() на мові С з одна­ковою роботою батьківського і ново­народженого процесів. Наберіть скла­дену програму, відкомпілюйте її і про­аналізуй ге отриманий результат.

2. Блок-схема

Програма

3. /* Програма - приклад створення нового процесу з однаковою роботою процесів нового і батьківського */

# include <sys/types. h> /*підключаємо бібліотеки*/

  • include <unistd. h>

  • include <studio. h>

Int main 0 {

pid _ t pid, ppid; /*ідентифікатори батьківського та новонародженого процесів*/

int a=o; /*обнулюємо лічильник*/

(void) fork ();/*створюємо новий процес*/

/* при успішному створенні нового процесу з цього місця псевдопара- лельно починають працювати два процеси: старий і новий */ /* Перед виконанням наступного виразу значення змінної а в обох процесах рівне нулю */

а=а+1;

/* Взнаємо ідентифікатори текучого і батьківського процесу (в кож­ному із процесів!!!) */

pid= getpid 0; /*системні виклики*/

ppid= getppid ();

/* печатаємо значення PID, PPID і обчислене значення змінної а (в кожному із процесів!!!) */

print f ("My pid= %d, my ppid= %d, result= %d\n ", (int)pid, (int)ppid, a); return 0;

4.Опис програми.

Я написав програму яка демонструвала створення процесу через системний виклик Fork () на мові С з різною роботою батьківського і новонародженого процесу. І набрали складену програму, відкомпілювали її і проаналізували отриманий результат.

При виконанні цієї роботи я використав такі блоки:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]