🗊Презентация Межпроцессное взаимодействие

Нажмите для полного просмотра!
Межпроцессное взаимодействие, слайд №1Межпроцессное взаимодействие, слайд №2Межпроцессное взаимодействие, слайд №3Межпроцессное взаимодействие, слайд №4Межпроцессное взаимодействие, слайд №5Межпроцессное взаимодействие, слайд №6Межпроцессное взаимодействие, слайд №7Межпроцессное взаимодействие, слайд №8Межпроцессное взаимодействие, слайд №9Межпроцессное взаимодействие, слайд №10Межпроцессное взаимодействие, слайд №11Межпроцессное взаимодействие, слайд №12Межпроцессное взаимодействие, слайд №13Межпроцессное взаимодействие, слайд №14Межпроцессное взаимодействие, слайд №15

Вы можете ознакомиться и скачать презентацию на тему Межпроцессное взаимодействие. Доклад-сообщение содержит 15 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Архитектура ЭВМ.
Операционные системы
Власов Евгений
Описание слайда:
Архитектура ЭВМ. Операционные системы Власов Евгений

Слайд 2





Для достижения поставленной цели различные процессы (возможно, даже принадлежащие разным пользователям) могут исполняться псевдопараллельно на одной вычислительной системе или параллельно на разных вычислительных системах, взаимодействуя между собой.
Для достижения поставленной цели различные процессы (возможно, даже принадлежащие разным пользователям) могут исполняться псевдопараллельно на одной вычислительной системе или параллельно на разных вычислительных системах, взаимодействуя между собой.
Для чего процессам нужно заниматься совместной деятельностью? Какие существуют причины для их кооперации?
Повышение скорости работы. Пока один процесс ожидает наступления некоторого события (например, окончания операции ввода-вывода), другие могут заниматься полезной работой, направленной на решение общей задачи. В многопроцессорных вычислительных системах программа разбивается на отдельные кусочки, каждый из которых будет исполняться на своем процессоре.
Совместное использование данных. Различные процессы могут, к примеру, работать с одной и той же динамической базой данных или с разделяемым файлом, совместно изменяя их содержимое.
Модульная конструкция какой-либо системы. Типичным примером может служить микроядерный способ построения операционной системы, когда различные ее части представляют собой отдельные процессы, взаимодействующие путем передачи сообщений через микроядро.
Наконец, это может быть необходимо просто для удобства работы пользователя, желающего, например, редактировать и отлаживать программу одновременно. В этой ситуации процессы редактора и отладчика должны уметь взаимодействовать друг с другом.
Описание слайда:
Для достижения поставленной цели различные процессы (возможно, даже принадлежащие разным пользователям) могут исполняться псевдопараллельно на одной вычислительной системе или параллельно на разных вычислительных системах, взаимодействуя между собой. Для достижения поставленной цели различные процессы (возможно, даже принадлежащие разным пользователям) могут исполняться псевдопараллельно на одной вычислительной системе или параллельно на разных вычислительных системах, взаимодействуя между собой. Для чего процессам нужно заниматься совместной деятельностью? Какие существуют причины для их кооперации? Повышение скорости работы. Пока один процесс ожидает наступления некоторого события (например, окончания операции ввода-вывода), другие могут заниматься полезной работой, направленной на решение общей задачи. В многопроцессорных вычислительных системах программа разбивается на отдельные кусочки, каждый из которых будет исполняться на своем процессоре. Совместное использование данных. Различные процессы могут, к примеру, работать с одной и той же динамической базой данных или с разделяемым файлом, совместно изменяя их содержимое. Модульная конструкция какой-либо системы. Типичным примером может служить микроядерный способ построения операционной системы, когда различные ее части представляют собой отдельные процессы, взаимодействующие путем передачи сообщений через микроядро. Наконец, это может быть необходимо просто для удобства работы пользователя, желающего, например, редактировать и отлаживать программу одновременно. В этой ситуации процессы редактора и отладчика должны уметь взаимодействовать друг с другом.

Слайд 3





Межпроцессное взаимодействие
(англ. inter-process communication, IPC) — обмен данными между потоками одного или разных процессов. Реализуется посредством механизмов, предоставляемых ядром ОС или процессом, использующим механизмы ОС и реализующим новые возможности IPC. Может осуществляться как на одном компьютере, так и между несколькими компьютерами сети.
Описание слайда:
Межпроцессное взаимодействие (англ. inter-process communication, IPC) — обмен данными между потоками одного или разных процессов. Реализуется посредством механизмов, предоставляемых ядром ОС или процессом, использующим механизмы ОС и реализующим новые возможности IPC. Может осуществляться как на одном компьютере, так и между несколькими компьютерами сети.

Слайд 4





Условно все IPC  можно разделить на обмен данными и синхронизацию обмена.
Условно все IPC  можно разделить на обмен данными и синхронизацию обмена.
Более детально IPC делятся на следующие:
механизмы обмена сообщениями;
механизмы синхронизации;
механизмы разделения памяти;
механизмы удалённых вызовов (RPC).
Межпроцессное взаимодействие, наряду с механизмами адресации памяти, является основой для разграничения адресного пространства между процессами.
Описание слайда:
Условно все IPC можно разделить на обмен данными и синхронизацию обмена. Условно все IPC можно разделить на обмен данными и синхронизацию обмена. Более детально IPC делятся на следующие: механизмы обмена сообщениями; механизмы синхронизации; механизмы разделения памяти; механизмы удалённых вызовов (RPC). Межпроцессное взаимодействие, наряду с механизмами адресации памяти, является основой для разграничения адресного пространства между процессами.

Слайд 5





Сигнальные IPC
Передается минимальное количество информации – один бит, "да" или "нет". Используются, как правило, для извещения процесса о наступлении какого-либо события. Степень воздействия на поведение процесса, получившего информацию, минимальна. Все зависит от того, знает ли он, что означает полученный сигнал, надо ли на него реагировать и каким образом. Неправильная реакция на сигнал или его игнорирование могут привести к трагическим последствиям.
Описание слайда:
Сигнальные IPC Передается минимальное количество информации – один бит, "да" или "нет". Используются, как правило, для извещения процесса о наступлении какого-либо события. Степень воздействия на поведение процесса, получившего информацию, минимальна. Все зависит от того, знает ли он, что означает полученный сигнал, надо ли на него реагировать и каким образом. Неправильная реакция на сигнал или его игнорирование могут привести к трагическим последствиям.

Слайд 6





Канальные IPC
Обмен данными между процессами происходит через линии связи, предоставленные операционной системой, и напоминает общение людей по телефону, с помощью записок, писем или объявлений. Объем передаваемой информации в единицу времени ограничен пропускной способностью линий связи. С увеличением количества информации возрастает и возможность влияния на поведение другого процесса.
Описание слайда:
Канальные IPC Обмен данными между процессами происходит через линии связи, предоставленные операционной системой, и напоминает общение людей по телефону, с помощью записок, писем или объявлений. Объем передаваемой информации в единицу времени ограничен пропускной способностью линий связи. С увеличением количества информации возрастает и возможность влияния на поведение другого процесса.

Слайд 7





Два или более процессов могут совместно использовать некоторую область адресного пространства. Созданием разделяемой памяти занимается операционная система (если, конечно, ее об этом попросят). "Общение" процессов напоминает совместное проживание студентов в одной комнате общежития. Возможность обмена информацией максимальна, как, впрочем, и влияние на поведение другого процесса, но требует повышенной осторожности (если вы переложили на другое место вещи вашего соседа по комнате, а часть из них еще и выбросили). Использование разделяемой памяти для передачи/получения информации осуществляется с помощью средств обычных языков программирования, в то время как сигнальным и канальным средствам коммуникации для этого необходимы специальные системные вызовы. Разделяемая память представляет собой наиболее быстрый способ взаимодействия процессов в одной вычислительной системе.
Два или более процессов могут совместно использовать некоторую область адресного пространства. Созданием разделяемой памяти занимается операционная система (если, конечно, ее об этом попросят). "Общение" процессов напоминает совместное проживание студентов в одной комнате общежития. Возможность обмена информацией максимальна, как, впрочем, и влияние на поведение другого процесса, но требует повышенной осторожности (если вы переложили на другое место вещи вашего соседа по комнате, а часть из них еще и выбросили). Использование разделяемой памяти для передачи/получения информации осуществляется с помощью средств обычных языков программирования, в то время как сигнальным и канальным средствам коммуникации для этого необходимы специальные системные вызовы. Разделяемая память представляет собой наиболее быстрый способ взаимодействия процессов в одной вычислительной системе.
Описание слайда:
Два или более процессов могут совместно использовать некоторую область адресного пространства. Созданием разделяемой памяти занимается операционная система (если, конечно, ее об этом попросят). "Общение" процессов напоминает совместное проживание студентов в одной комнате общежития. Возможность обмена информацией максимальна, как, впрочем, и влияние на поведение другого процесса, но требует повышенной осторожности (если вы переложили на другое место вещи вашего соседа по комнате, а часть из них еще и выбросили). Использование разделяемой памяти для передачи/получения информации осуществляется с помощью средств обычных языков программирования, в то время как сигнальным и канальным средствам коммуникации для этого необходимы специальные системные вызовы. Разделяемая память представляет собой наиболее быстрый способ взаимодействия процессов в одной вычислительной системе. Два или более процессов могут совместно использовать некоторую область адресного пространства. Созданием разделяемой памяти занимается операционная система (если, конечно, ее об этом попросят). "Общение" процессов напоминает совместное проживание студентов в одной комнате общежития. Возможность обмена информацией максимальна, как, впрочем, и влияние на поведение другого процесса, но требует повышенной осторожности (если вы переложили на другое место вещи вашего соседа по комнате, а часть из них еще и выбросили). Использование разделяемой памяти для передачи/получения информации осуществляется с помощью средств обычных языков программирования, в то время как сигнальным и канальным средствам коммуникации для этого необходимы специальные системные вызовы. Разделяемая память представляет собой наиболее быстрый способ взаимодействия процессов в одной вычислительной системе.

Слайд 8





Для оценки производительности различных механизмов IPC используют следующие параметры:
Для оценки производительности различных механизмов IPC используют следующие параметры:
пропускная способность (количество сообщений в единицу времени, которое ядро ОС или процесс способна обработать);
задержки (время между отправкой сообщения одним потоком и его получением другим потоком).
Описание слайда:
Для оценки производительности различных механизмов IPC используют следующие параметры: Для оценки производительности различных механизмов IPC используют следующие параметры: пропускная способность (количество сообщений в единицу времени, которое ядро ОС или процесс способна обработать); задержки (время между отправкой сообщения одним потоком и его получением другим потоком).

Слайд 9





Условия Бернстайна
Необходимость синхронизации обмена данными можно установить с помощью достаточных условий. Если {W} – множество операций записи процесса, а {R} – множество операций чтения процесса, то выполнение
служит достаточным для понимания синхронизации двух процессов или потоков.
Описание слайда:
Условия Бернстайна Необходимость синхронизации обмена данными можно установить с помощью достаточных условий. Если {W} – множество операций записи процесса, а {R} – множество операций чтения процесса, то выполнение служит достаточным для понимания синхронизации двух процессов или потоков.

Слайд 10





ошибка проектирования многопоточной системы или приложения, при которой работа системы или приложения зависит от того, в каком порядке выполняются части кода. 
ошибка проектирования многопоточной системы или приложения, при которой работа системы или приложения зависит от того, в каком порядке выполняются части кода.
Описание слайда:
ошибка проектирования многопоточной системы или приложения, при которой работа системы или приложения зависит от того, в каком порядке выполняются части кода. ошибка проектирования многопоточной системы или приложения, при которой работа системы или приложения зависит от того, в каком порядке выполняются части кода.

Слайд 11





Критическая секция
это часть программы, исполнение которой может привести к возникновению race condition для определенного набора программ. Чтобы исключить эффект гонок по отношению к некоторому ресурсу, необходимо организовать работу так, чтобы в каждый момент времени только один процесс мог находиться в своей критической секции, связанной с этим ресурсом. Иными словами, необходимо обеспечить реализацию взаимоисключения для критических секций программ. Реализация взаимоисключения для критических секций программ с практической точки зрения означает, что по отношению к другим процессам, участвующим во взаимодействии, критическая секция начинает выполняться как атомарная операция.
Описание слайда:
Критическая секция это часть программы, исполнение которой может привести к возникновению race condition для определенного набора программ. Чтобы исключить эффект гонок по отношению к некоторому ресурсу, необходимо организовать работу так, чтобы в каждый момент времени только один процесс мог находиться в своей критической секции, связанной с этим ресурсом. Иными словами, необходимо обеспечить реализацию взаимоисключения для критических секций программ. Реализация взаимоисключения для критических секций программ с практической точки зрения означает, что по отношению к другим процессам, участвующим во взаимодействии, критическая секция начинает выполняться как атомарная операция.

Слайд 12





Взаимная блокировка
Описание слайда:
Взаимная блокировка

Слайд 13


Межпроцессное взаимодействие, слайд №13
Описание слайда:

Слайд 14





Неименованные каналы - pipe
Для обмена между родственными процессами используют pipe. Pipe представляет собой два файловых дескриптора: один для чтения, другой для записи.
Описание слайда:
Неименованные каналы - pipe Для обмена между родственными процессами используют pipe. Pipe представляет собой два файловых дескриптора: один для чтения, другой для записи.

Слайд 15





Каналы не поддерживают произвольный доступ, т. е. данные могут считываться только в том же порядке, в котором они записывались.
Каналы не поддерживают произвольный доступ, т. е. данные могут считываться только в том же порядке, в котором они записывались.
#include <stdio.h> 
#include <string.h> 
#include <sys/types.h>
 int main (int argc, char * argv[]) { 
	int pipedes[2]; 
	pid_t pid; 
	pipe(pipedes); 
	pid = fork(); 
	if ( pid > 0 ) { 
		char *str = "String passed via pipe\n"; 
		close(pipedes[0]); 
		write(pipedes[1], (void *) str, strlen(str) + 1); 
		close(pipedes[1]); 
	} else { 
		char buf[1024]; 
		int len; 
		close(pipedes[1]); 
		while ((len = read(pipedes[0], buf, 1024)) != 0) 
		write(2, buf, len); 
		close(pipedes[0]); 
	} 
	return 0; 
}
Описание слайда:
Каналы не поддерживают произвольный доступ, т. е. данные могут считываться только в том же порядке, в котором они записывались. Каналы не поддерживают произвольный доступ, т. е. данные могут считываться только в том же порядке, в котором они записывались. #include <stdio.h> #include <string.h> #include <sys/types.h> int main (int argc, char * argv[]) { int pipedes[2]; pid_t pid; pipe(pipedes); pid = fork(); if ( pid > 0 ) { char *str = "String passed via pipe\n"; close(pipedes[0]); write(pipedes[1], (void *) str, strlen(str) + 1); close(pipedes[1]); } else { char buf[1024]; int len; close(pipedes[1]); while ((len = read(pipedes[0], buf, 1024)) != 0) write(2, buf, len); close(pipedes[0]); } return 0; }



Похожие презентации
Mypresentation.ru
Загрузить презентацию