====== Параллельные процессы: Лабораторная работа ====== **Цель работы** - Изучить возможности POSIX-совместимой операционной системы (Linux, частично Windows) **создания параллельных процессов** и обеспечения **взаимодействия между ними** (InterProcess Communications, IPC). Работа выполняется в системах программирования С/С++, С#, Java, Erlang/Elixir (без POSIX) Задачи: - Разработать программу, порождающую дочерний/параллельный процесс (fork, spawn и др.); - В дочернем процессе реализовать прикладную функцию (примеры): * Генератор гаммы для шифрования, * Реализация шифрования шифром цезаря, * Реализация шифрования генератором, * Обращение строки, * Загрузка текстового файла; - Организовать взаимодействие родительского и дочернего процесса через общий ресурс (варианты задания): * pipe, * fifo, * shmem, * mmap, * файл на диске. - Если необходимо, реализовать синхронизацию доступа к общему ресурсу (ресурсам), вариант зависит от операционной системы: * семафоры shmget, * поименованные семафоры, * блокируемый ```lock``` объект, * и т.п. Пример разработки программы (не доделана синхронизация) в [[https://www.youtube.com/playlist?list=PLDmve33tqgosZR652b14FqH5QW2zrkP-K|плейлисте]].