Обратная связь
В течение семестра студенты реализуют протокол HTTP для будущего веб-сервера, работу по сети, многопоточность.
В процессе обучения предусмотрены практические занятия по каждой теме, в процессе которых студенты зарабатывают баллы (всего 50), а также самостоятельный проект, который сдается в три этапа (всего 50 баллов).
При пересчете баллов студенты могут получить итоговую оценку: 0–59 неудовлетворительно, 60-79 удовлетворительно, 80-99 хорошо, 100 отлично.
Цель курса — формирование у студентов практических навыков многопоточного программирования.
Курс представляет собой изучение основ многопоточного программирования. Рассматриваются как классическое создание дочерних процессов (через fork) и использование средств межпроцессного взаимодействия (IPC), различные способы создания многопоточного приложения (pthreads, std::thread, boost::thread), а также и более высокоуровневые средства распараллеливания (OpenMP, Intel TBB). В курсе дополнительно представлены способы работы с сетью и контейнеры (STL, boost). В процессе обучения каждый студент будут делать индивидуальный проект (веб-сервер), который позволит наработать базовые навыки.
Смешанное занятие №1
std::auto_ptr, std::unique_ptr, std::shared_ptr, std::weak_ptr, ccmalloc, dmalloc, tcmalloc, jemalloc, LD_PRELOAD, уплотнение памяти.
4 часа 3 часа СР
Смешанное занятие №2
std::vector, std::array, std::list, std::forward_list, std::deque, std::set, std::map, std::unordered_set, std::unordered_map, boost::circular_buffer.
4 часа 3 часа СР
Смешанное занятие №5
Библиотеки для асинхронной работы с сетью.
4 часа 1 часа СР
Смешанное занятие №8
Межпроцессное взаимодействие. Каналы
SysV: Очереди сообщений, семафоры, общая память.
4 часа 3 часа СР
Смешанное занятие №9
Продвинутые приемы синхронизации
POSIX: Очереди сообщений, семафоры, общая память.
4 часа 2 часа СР
Смешанное занятие №10
Кооперативная многозадачность.
POSIX: Потоки и примитивы синхронизации в C и C++.
4 часа 1 часа СР