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

| Структура              | Информация                                                                                                                                                                                                                                                                                              |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **File**               | Запис запазен на диск или запис, синтезиран при поискване от файлов сървър, достъпен от множество процеси.                                                                                                                                                                                              |
| **Signal**             | Системно съобщение, изпратено от един процес на друг, което обикновено не се използва за прехвърляне на данни, а вместо това се използва за отдалечено управление на процес.                                                                                                                            |
| **Socket**             | Данните се изпращат през мрежов интерфейс или към различен процес на същия компютър или на друг компютър в мрежата. Поточно ориентирани (TCP, данни, записани чрез сокет и изискващи форматиране, за да се запазят границите на съобщенията) или по-рядко съобщения (UDP, SCTP).                        |
| **Unix domain socket** | Подобно на интернет сокет, но цялата комуникация се осъществява в рамките на ядрото. Домейн сокетите използват файловата система като адресно пространство. Процесите посочват домейн сокета като инод и множество процеси могат да комуникират с един сокет.                                           |
| **Message queue**      | Поток от данни, подобен на сокета, но който обикновено запазва границите на съобщенията. Обикновено се изпълняват от операционната система и позволяват множество процеси да четат и записват в опашката на съобщенията, без да са директно свързани помежду си.                                        |
| **Pipe**               | Еднопосочен канал за данни. Данните, записани в края на запис на тръбата, се буферират от операционната система, докато се прочетат от четящия край на тръбата. Двупосочните потоци от данни между процесите могат да бъдат постигнати чрез създаване на две тръби, използващи стандартен вход и изход. |
| **Named pipe**         | Тръба, изпълнявана чрез файл в файловата система, вместо стандартния вход и изход. Няколко процеса могат да четат и записват във файла като буфер за IPC данни.                                                                                                                                         |
| **Shared memory**      | На множество процеси се дава достъп до един и същ блок памет, който създава общ буфер, за да могат процесите да комуникират помежду си.                                                                                                                                                                 |

Повече информация: [Inter Process Communication](https://en.wikipedia.org/wiki/Inter-process_communication)
