КурсОперационныеСистемы/ПрактикумPosixThreads/PthreadLectures

Учебное пособие подготовлено по заказу и при поддержке ООО «Сан Майкросистемс СПБ»

Содержание

Оглавление документа Лекция 1
1. Что такое потоки
2. Зачем нужны многопоточные программы
2.1. Улучшение времени реакции интерактивных программ
2.2. Улучшение времени реакции серверных приложений
3. Проблемы многопоточности

Оглавление документа Лекция 2
1. Реализации POSIX Threads
1.1. Пользовательские нити
1.2. Системные нити
1.3. Гибридная реализация
2. Сборка приложений с POSIX Threads
3. Программы для экспериментов

Оглавление документа Лекция 3
1. Создание нитей с атрибутами по умолчанию
2. Передача параметров нити
3. Завершение нити
4. Ожидание завершения нити
5. Принудительное завершение нити (прерывание)
6. Обработка прерывания нити

Оглавление документа Лекция 4
1. Атрибуты нитей
2. Дополнительные функции по управлению нитями
3. Приватные данные нити
4. Мониторинг и отладка
4.1. Отладка многопоточных программ в gdb
4.2. Отладка многопоточных программ в dbx
4.3. Отладка многопоточных программ в Sun Studio?

Оглавление документа Лекция 5
1. Нити и стандартные библиотеки Unix

Оглавление документа Лекция 6
1. Примитивы синхронизации – мутексы и блокировки чтения/записи

Оглавление документа Лекция 7?

Оглавление документа Лекция 8?

Оглавление документа Лекция 9?

Оглавление документа Лекция 10
1. Многопроцессные приложения с автономными процессами
2. Многопроцессные приложения, взаимодействующие через сокеты, трубы и очереди сообщений System V IPC
3. Многопроцессные приложения, взаимодействующие через разделяемую память
4. Собственно многопоточные приложения
5. Событийно-ориентированные архитектуры
6. Гибридные архитектуры

Musom (Старая структура)

Лекция 1. Введение (текст существенно переделан)
Лекция 2. POSIX threads (обзор архитектуры, реализация в Solaris 10, обзор реализаций в других Unix-системах)
Лекция 3. Cоздание и удаление нитей (pthread_create, pthread_exit, pthread_join/detach, pthread_cancel)
Лекция 4. Дополнительные свойства нити (pthread_attr_t и операции над ним. Приоритеты нитей.)
Лекция 5. Нити и стандартные библиотеки Unix
Лекция 6. Другие свойства нити. Мониторинг поведения и отладка многопоточной программы
Лекция 7. Примитивы синхронизации – мутексы и блокировки чтения/записи
Лекция 8. Примитивы синхронизации – условные переменные (зачем это нужно на примере задачи производитель-потребитель, создание, уничтожение, использование)
Лекция 9. Примитивы синхронизации – семафоры-счетчики
Лекция 10. Альтернатива многопоточности – асинхронный ввод/вывод
Лекция 11. Альтернатива многопоточности – select/poll
Лекция 12. Событийно-ориентированная архитектура сетевого сервера (продолжение лекции 11)
Лекция 13. Архитектура worker threads (гибрид многопоточной и событийно-ориентированной архитектур)
Архитектуры многопоточных приложений

Курс рассчитан на 1/2 семестра лекций (1 пара через неделю) и параллельно проводящийся семестровый практикум (1 пара в неделю). По часам это приблизительно соответствует пятидневному интенсивному курсу по шесть часов в день.