- •Індивідуальне завдання №1
- •Int main 0
- •Індивідуальне завдання №2
- •2. Блок-схема
- •3. /* Програма - приклад створення нового процесу з однаковою роботою процесів нового і батьківського */
- •Int main 0 {
- •1.Підключення бібліотек.
- •Індивідуальне завдання №3
- •2. Блок-схема
- •Int main (int arge, char *argv [], char *envp []) /*повний прототип функції main*/
- •1.Підключення бібліотек.
- •Індивідуальне завдання №4
- •2. Блок-схема
- •Int main()
- •1.Підключення бібліотек.
- •Індивідуальне завдання №5
- •2. Блок-схема
- •Int fd[2], resuit;
Індивідуальне завдання №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 () на мові С з різною роботою батьківського і новонародженого процесу. І набрали складену програму, відкомпілювали її і проаналізували отриманий результат.
При виконанні цієї роботи я використав такі блоки: