Next:
Процессы
Up:
mainfile
Previous:
Введение
Contents
Локальные и удаленные средства межпроцессного взаимодействия
Subsections
Процессы
Основные сведения о процессах
Таблица процессов
Создание процессов с помощью вызова
fork()
.
Запуск процессов с помощью вызова
exec()
Сигналы
Понятие о сигналах
Посылка сигналов с помощью
raise()
и
kill()
Работа с сигналами в Linux
Применение сигналов для IPC
Трубы (pipes)
Использование труб
Функция
popen()
FIFO - именованные каналы
Блокировка файлов
Необходимость блокировки
Структура
flock
Режимы блокировки
Блокировка частей файла и тупики
Очереди сообщений
Общие сведения
Структуры данных очередей сообщений
Создание очередей сообщений
Управление очередями сообщений
Операции над очередями сообщений
Семафоры
Основные сведения
Структуры данных семафоров
Создание множеств семафоров
Управление семафорами через
semctl
Операции над множествами семафоров
Разделяемые сегменты памяти
Общие сведения
Структуры для разделяемых сегментов памяти
Создание разделяемых сегментов памяти
Управление разделяемыми сегментами памяти
Операции над разделяемыми сегментами памяти
Потоки (threads)
Различие между процессами и потоками
Преимущества многопоточности
Уровни потоков
Пользовательские потоки
Потоки уровня ядра
Создание потока
Ожидание завершения потока
Отделение потока
Работа с ключами потока
Остановка потока
Компиляция многопоточного приложения
Отладка многопоточного приложения
Атрибуты потоков
Состояние отделенного потока
Ограничения потока
Дисциплина планирования потока
Размер стека в потоке
Создание собственного стека потока
Синхронизация потоков
Блоки взаимного исключения (мьютексы - mutex)
Инициализация и удаление объекта атрибутов мьютекса
Область видимости мьютекса
Инициализация мьютекса
Запирание мьютекса
Захват мьютекса без блокирования
Удаление мьютекса
Пример использования мьютексов
Иерархическая блокировка
Вложенные блокировки односвязного списка
Переменные состояния
Работа с атрибутами переменных состояния
Видимость переменной состояния
Инициализация переменной состояния
Блокировка через переменную состояния
Сокеты
Общие сведения о сокетах
Создание и именование сокетов
Соединение сокетов
Обмен данными через сокеты
Закрытие сокетов
Приложение архитектуры клиент-сервер с использованием сокетов
Удаленный вызов процедур
Общие сведения
Разработка протокола взаимодействия
Порядок компиляции приложения архитектуры клиент-сервер
Интерфейсные процедуры RPC
Упрощенный интерфейс RPC
Пример
rusers.c
Клиентская часть
Серверная часть
Передача произвольных типов данных
Разработка высокоуровневых приложений RPC
Определение протокола
Разделение данных
Серверная часть
Клиентская часть
Компиляция протоколов и низкоуровневое программирование RPC
Преобразование локальных процедур в удаленные
Передача сложных структур данных
Директивы препроцессора
2004-06-22