Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PR_СП_лабы_11.doc
Скачиваний:
7
Добавлен:
22.04.2019
Размер:
755.71 Кб
Скачать

7. Індівідуальні завдання

  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 нових процесів. Кожний із цих процесів виконується заданий час і зупиняється, сповіщаючи про це батькові. Програма-Батько виводить на екран всі повідомлення про зміни в процесах.

  7. Програма запускає за допомогою функції exec() новий процес. Завершити процес-нащадок раніше формування батьком виклику. Повторити запуск програми за умови, що процес нащадок завершується після формування виклику wait(). Проаналізувати результати.

Лабораторна робота №9. Використання каналів

Мета: Оволодіння технологією використання каналів ОС UNIX. Застосування отриманих знань для написання програм керування файлами.

Завдання для самостійної підготовки:

Вивчити:

  • способи межпроцессного взаємодії ОС UNIX;

  • організацію каналів ОС UNIX;

  • системні виклики керування каналами;

Методичні вказівки

1. Заганьні відомості

Система Linux IPC (Inter-process communication) надає кошти для взаємодії процесів між собою.

У розпорядженні програмістів є кілька методів IPC:

  • напівдуплексні канали UNIX,

  • FIFO (іменовані канали),

  • черги повідомлень,

  • безлічі семафорів,

  • поділювані сегменти пам'яті,

  • мережні сокети,

  • полнодуплексні канали

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