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

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

## 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**. Може да се наложи да промените сървърните или клиентските програми, така че да поддържат тази функционалност.
