Междупроцесна комуникация (IPC) в ОС
Какво е междупроцесна комуникация?
Междупроцесна комуникация (IPC) се използва за обмен на данни между множество нишки в един или повече процеси или програми. Процесите може да се изпълняват на един или няколко компютъра, свързани в мрежа. Пълната форма на IPC е междупроцесна комуникация.
Това е набор от програмен интерфейс, който позволява на програмист да координира дейности между различни програмни процеси, които могат да се изпълняват едновременно в операционна система. Това позволява на определена програма да обработва много потребителски заявки едновременно.
Тъй като всяка отделна потребителска заявка може да доведе до стартиране на множество процеси в операционната система, процесът може да изисква комуникация помежду си. Всеки подход на IPC протокол има своите предимства и ограничения, така че не е необичайно една програма да използва всички IPC методи.
Подходи за комуникация между процеси
Ето няколко важни метода за междупроцесна комуникация:
Тръби
Pipe се използва широко за комуникация между два свързани процеса. Това е полудуплексен метод, така че първият процес комуникира с втория процес. Въпреки това, за да се постигне пълен дуплекс, е необходима друга тръба.
Преминаване на съобщения
Това е механизъм за комуникация и синхронизиране на процеса. Използвайки предаване на съобщения, процесът комуникира един с друг, без да прибягва до споделени променливи.
IPC механизмът осигурява две операции:
- Изпрати (съобщение) - размерът на съобщението е фиксиран или променлив
- Получено (съобщение)
Опашки за съобщения
Опашката от съобщения е свързан списък от съобщения, съхранени в ядро. Идентифицира се чрез идентификатор на опашка от съобщения. Този метод предлага комуникация между единични или множество процеси с пълен дуплексен капацитет.
директна комуникация
При този тип процес на комуникация между процесите трябва да се назовават изрично. При този метод се установява връзка между една двойка комуникиращи процеси и между всяка двойка съществува само една връзка.
Непряка комуникация
Индиректната комуникация се установява като само когато процесите споделят обща пощенска кутия, всяка двойка процеси споделя няколко комуникационни връзки. Една връзка може да комуникира с много процеси. Връзката може да бъде двупосочна или еднопосочна.
Споделена памет
Споделената памет е споделена памет между два или повече процеса, които са установени с помощта на споделена памет между всички процеси. Този тип памет изисква защита една от друга чрез синхронизиране на достъпа във всички процеси.
FIFO
Комуникация между два несвързани процеса. Това е метод с пълен дуплекс, което означава, че първият процес може да комуникира с втория процес и може да се случи и обратното.
Защо IPC?
Ето причините за използването на междупроцесния комуникационен протокол за споделяне на информация:
- Помага за ускоряване на модулността
- Computational
- Разделяне на привилегии
- Удобство
- Помага на операционната система да комуникира помежду си и да синхронизира действията си.
Термини, използвани в IPC
Следват няколко важни термина, използвани в IPC:
Semaphores: Семафорът е техника на сигнален механизъм. Този метод на ОС позволява или забранява достъп до ресурса, което зависи от това как е настроен.
Signals: Това е метод за комуникация между множество процеси чрез сигнализиране. Процесът източник ще изпрати сигнал, който се разпознава по номер, а процесът местоназначение ще го обработи.
Предложение за четене: - Какво е Semaphore? Двоични, броене на типове с пример
Какво е като FIFOS и за разлика от FIFOS
Като FIFOS | За разлика от FIFOS |
---|---|
Следва метода FIFO | Метод за изтегляне на конкретни спешни съобщения, преди да стигнат до предната част |
FIFO съществува независимо от процесите на изпращане и получаване. | Винаги готов, така че не е необходимо да отваряте или затваряте. |
Позволява трансфер на данни между несвързани процеси. | Няма проблеми със синхронизацията между отваряне и затваряне. |
Oбобщение
- Определение: Комуникацията между процесите се използва за обмен на данни между множество нишки в един или повече процеси или програми.
- Pipe се използва широко за комуникация между два свързани процеса.
- Предаването на съобщения е механизъм за комуникация и синхронизиране на процеса.
- Опашката от съобщения е свързан списък от съобщения, съхранявани в ядрото
- Директният процес е вид процес на комуникация между процесите, който трябва да се назовава изрично.
- Индиректната комуникация се установява като само когато процесите споделят обща пощенска кутия, всяка двойка процеси споделя няколко комуникационни връзки.
- Споделената памет е споделена памет между два или повече процеса, които са установени с помощта на споделена памет между всички процеси.
- Методът за комуникация между процесите помага за ускоряване на модулността.
- Семафорът е техника на сигнален механизъм.
- Signaling е метод за комуникация между множество процеси чрез сигнализиране.
- Подобно на FIFO следва метода FIFO, докато за разлика от FIFO използвайте метода за изтегляне на конкретни спешни съобщения, преди да стигнат до предната част.