Оцените презентацию от 1 до 5 баллов!
Тип файла:
ppt / pptx (powerpoint)
Всего слайдов:
11 слайдов
Для класса:
1,2,3,4,5,6,7,8,9,10,11
Размер файла:
84.31 kB
Просмотров:
63
Скачиваний:
1
Автор:
неизвестен
Слайды и текст к этой презентации:
№1 слайд![Взаимодействие процессов в](/documents_6/d7b36fd928dcf73f7d81c8cc2923b0fe/img0.jpg)
Содержание слайда: Взаимодействие процессов в UNIX
№2 слайд![IPC PIPE Канал](/documents_6/d7b36fd928dcf73f7d81c8cc2923b0fe/img1.jpg)
Содержание слайда: IPC PIPE
Канал – однонаправленная передача данных между двумя процессами.
Low level Piping
int pipe(int fd[2]);
int filedes[2]={outdes,indes};
Formatted Piping
FILE *popen(char *command, char *type);
pclose(FILE *stream);
№3 слайд![Low-level piping](/documents_6/d7b36fd928dcf73f7d81c8cc2923b0fe/img2.jpg)
Содержание слайда: Low-level piping
№4 слайд![FIFO int mknod char pathname,](/documents_6/d7b36fd928dcf73f7d81c8cc2923b0fe/img3.jpg)
Содержание слайда: FIFO
int mknod(char *pathname, int mode, int dev);
pathname – имя FIFO
mode – флаг S_IFIFO, а также флаги владения, прав доступа и т.д.
dev – игнорируется
№5 слайд![Каналы При чтении меньшего](/documents_6/d7b36fd928dcf73f7d81c8cc2923b0fe/img4.jpg)
Содержание слайда: Каналы
При чтении меньшего числа байт, чем есть в канале, остаток сохраняется
При чтении большего числа байт, чем есть в канале, возвращается доступное число байт
Если канал пуст и ни один процесс не открыл его на запись, будет возвращено 0 байт. Если какой-либо процесс открыл канал на запись, то read будет переведен в состояние ожидания (если канал не работает в режиме NO_DELAY).
Запись числа байт, меньше емкости канала гарантировано атомарно.
При записи числа байт, больше емкости канала, write блокируется, атомарность не гарантируется
№6 слайд![IPC FIFO mknod myfifo , S](/documents_6/d7b36fd928dcf73f7d81c8cc2923b0fe/img5.jpg)
Содержание слайда: IPC FIFO
mknod(“myfifo”, S_IFIFO | 0666, 0);
open(“myfifo”, O_RDONLY);
open(“myfifo”, O_WRONLY);
read(handle, buff, MAXBUFF);
write(handle, “Hello, world!”);
close(handle);
unlink(“myfifo”);
№7 слайд![Взаимодействие потоков в Win](/documents_6/d7b36fd928dcf73f7d81c8cc2923b0fe/img6.jpg)
Содержание слайда: Взаимодействие потоков в Win32
№8 слайд![Unnamed pipes Неименованные](/documents_6/d7b36fd928dcf73f7d81c8cc2923b0fe/img7.jpg)
Содержание слайда: Unnamed pipes
Неименованные каналы
Однонаправленный локальный механизм взаимодействия
BOOL CreatePipe(
PHANDLE phRead,
PHANDLE phWrite,
LPSECURITY_ATTRIBUTES lpsa,
DWORD cbPipe );
№9 слайд![Named pipes Именованные](/documents_6/d7b36fd928dcf73f7d81c8cc2923b0fe/img8.jpg)
Содержание слайда: Named pipes
Именованные каналы
Двунаправленный механизм взаимодействия, может использоваться локально и удаленно
HANDLE CreateNamedPipe(
LPCTSTR lpszPipeName,
DWORD fdwOpenMode,
DWORD fdwPipMode,
DWORD nMaxInstances,
DWORD cbOutBuf,
DWORD cbInBuf,
DWORD dwTimeOut,
LPSECURITY_ATTRIBUTES lpsa );
№10 слайд![Named pipes Именованные](/documents_6/d7b36fd928dcf73f7d81c8cc2923b0fe/img9.jpg)
Содержание слайда: Named pipes
Именованные каналы
m_hPipe = ::CreateNamedPipe (
"\\\\.\\pipe\\ipcdemo", // Имя канала
PIPE_ACCESS_OUTBOUND, // Доступ только для записи
PIPE_TYPE_BYTE | PIPE_NOWAIT, // Запись байтов, без ожидания
1, // По одному экземпляру за один раз
0, // Размер выходного буфера (байт)
0, // Размер входного буфера (байт)
0, // Время ожидания (мс)
NULL // Использовать дескриптор безопасности
// по умолчанию
);
№11 слайд![Named pipes Именованные](/documents_6/d7b36fd928dcf73f7d81c8cc2923b0fe/img10.jpg)
Содержание слайда: Named pipes
Именованные каналы
CString string = "\\\\" + strServerName + "\\pipe\\ipcdemo";
hPipe = CreateFile(
string,
GENERIC_READ,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);