Упражнение за синхронизация на комуникация между процеси

Упражнете материалите от темата, като реализирате представените по-долу проекти.

Double Shared Memory

Напишете двойка програми сървър и клиент (double-memory-server.c и double-memory-client.c), които споделят блокове памет помежду си. Сървърът да поддържа до 2 клиента едновременно, които не трябва да са в комфликт по време на работа. Сървърът инициализира споделената памет с поздравителни съобщения за клиентите си и ги чака те да променят със съобщенията си. Когато клиента напише ново съобщение, сървърът отговаря със същото съобщение, но с израз Confirmed! накрая.

Клиентът се стартира с един аргумент: client_number, който идентифицира клиента (1 или 2) за сървъра. Клиентът трябва непрекъснато да отпечатва съобщението от споделената памет, да чете ред от клавиатурата и да го записва в споделената памет. Програмата трябва да излезе, когато се въведе съобщение "q".

Double Dumper

Напишете програма double-dumprer.c, която в реално време показва промените в споделената памет от проекта Double Shared Memory. Може да се наложи да промените сървърните или клиентските програми, така че да поддържат тази функционалност.

Last updated