Компьютерные науки

Многопоточное программирование с использованием POSIX Threads

В программе рассматривается разработка многопоточных приложений на C/C++ в UNIX/Linux. Изучаются создание нитей, механизмы синхронизации, асинхронный ввод-вывод и событийно-ориентированная архитектура.
Студентов 750 Выпускников 61 Для специалистов
690 ₽ 1 200 ₽
или любая сумма на ваше усмотрение
Вы можете оплатить любую сумму, чтобы поддержать наш проект и авторов программы. Объем услуг не зависит от размера вашей оплаты.
Темы:
Программирование
Объем

36 час.
Длительность

30 дней
Нагрузка в неделю

9 час.
Формат обучения

Дистанционно (самостоятельно)
Описание Учебная программа раскрывает принципы написания эффективного конкурентного кода с использованием библиотеки POSIX Threads. В учебной программе рассматриваются управление потоками, предотвращение состояний гонки и взаимных блокировок, методы мультиплексирования сетевых соединений, работа с блокировками чтения-записи и условными переменными. Особое внимание уделено проектированию масштабируемых событийно-ориентированных архитектур для решения практических задач конкурентного программирования. Учебная программа ориентирована на системных программистов и разработчиков сетевых сервисов.
Цели
  • Познакомить с интерфейсом программирования POSIX Threads API.
  • Сформировать понимание механизмов синхронизации в многопоточной среде.
  • Раскрыть архитектурные паттерны разработки высоконагруженных сетевых приложений.
Чему я научусь?
  • Разрабатывать многопоточные программы на языках C/C++ для ОС семейства UNIX.
  • Применять мьютексы, семафоры и условные переменные для синхронизации потоков.
  • Использовать механизмы асинхронного ввода-вывода и мультиплексирования.

Авторы

Иртегов Дмитрий Валентинович
Иртегов Дмитрий Валентинович
Заведующий экспериментальной лабораторией ФИТ НГУ, доцент кафедры общей информатики ФИТ НГУ.
Чему я научусь?
  • Разрабатывать многопоточные программы на языках C/C++ для ОС семейства UNIX.
  • Применять мьютексы, семафоры и условные переменные для синхронизации потоков.
  • Использовать механизмы асинхронного ввода-вывода и мультиплексирования.

Учебный план

Занятия
Экзамен экстерном Внимание! Экзамен экстерном не обязательный для сдачи. При желании вы можете его пройти, если хотите подтвердить свои знания по данному курсу без его изучения или поверить свои знания по нему. Экзамен экстерном можно сдать только один раз. 90 мин
1 Введение Задача этого курса – обучить вас разработке многопоточных приложений для Sun Solaris 10. Значительная часть полученных... Задача этого курса – обучить вас разработке многопоточных приложений для Sun Solaris 10. Значительная часть полученных знаний может быть использована для разработки многопоточных приложений для других систем семейства Unix, поддерживающих POSIX threads API. Это такие системы, как Linux (начиная с версии 2.4), Free BSD, SCO Unixware, IBM AIX и др. ещё
2 Реализации POSIX Threads API Рассматриваются различные подходы, которые допускает стандарт POSIX, к реализации многопоточности в рамках одного процесса.
Реализации POSIX Threads API тест для курса Многопоточное программирование с использованием POSIX Threads 60 мин
3 Создание и завершение нитей В ходе этого раздела вы изучите: создание нитей с атрибутами по умолчанию, передачу параметров нити, завершение... В ходе этого раздела вы изучите: создание нитей с атрибутами по умолчанию, передачу параметров нити, завершение нити, ожидание завершения другой нити, принудительное завершение нити, обработку принудительного завершения нити. ещё
4 Атрибуты нитей и управление нитями В ходе этого раздела вы изучите: создание нитей с заданными атрибутами, управление атрибутами нитей, приоритеты нитей... В ходе этого раздела вы изучите: создание нитей с заданными атрибутами, управление атрибутами нитей, приоритеты нитей и классы планирования, вспомогательные функции для управления нитями , мониторинг поведения многопоточной программы, начальные сведения об отладке многопоточных программ. ещё
Атрибуты нитей и управление нитями тест для курса Многопоточное программирование с использованием POSIX Threads 60 мин
5 Нити и стандартные библиотеки Unix По завершении этого раздела вы сможете: использовать стандартные библиотеки или их аналоги в многопоточных программах, находить... По завершении этого раздела вы сможете: использовать стандартные библиотеки или их аналоги в многопоточных программах, находить в документации информацию о том, является ли данная функция или группа функций, использовать сигналы и fork в многопоточных программах. ещё
6 Мутексы В ходе этой лекции вы изучите: задачи, для решения которых необходимы мутексы, создание и уничтожение мутексов,... В ходе этой лекции вы изучите: задачи, для решения которых необходимы мутексы, создание и уничтожение мутексов, атрибуты мутексов, использование мутексов в качестве примитива взаимоисключения, критические секции и взаимоисключение. ещё
Мутексы тест для курса Многопоточное программирование с использованием POSIX Threads 60 мин
7 Блокировки чтения-записи, условные переменные, барьеры и семафоры-счетчики В ходе этой лекции вы изучите использование следующих примитивов взаимоисключения и синхронизации: блокировок чтения-записи, условных переменных,... В ходе этой лекции вы изучите использование следующих примитивов взаимоисключения и синхронизации: блокировок чтения-записи, условных переменных, барьеров, семафоров-счетчиков , блокировки чтения-записи. ещё
8 Мультиплексирование ввода/вывода и асинхронный ввод/вывод В ходе этой лекции вы изучите: использование системного вызова select, использование системного вызова poll, некоторые аспекты... В ходе этой лекции вы изучите: использование системного вызова select, использование системного вызова poll, некоторые аспекты использования select/poll в многопоточных программах, стандартные средства асинхронного ввода/вывода. ещё
Мультиплексирование ввода/вывода и асинхронный ввод/вывод тест для курса Многопоточное программирование с использованием POSIX Threads 60 мин
9 Событийно-ориентированные архитектуры "У многих современных программистов слова ""событийно-ориентированная архитектура"" ассоциируются в первую очередь с библиотеками для разработки графических... "У многих современных программистов слова ""событийно-ориентированная архитектура"" ассоциируются в первую очередь с библиотеками для разработки графических пользовательских интерфейсов - AWT/Swing, Qt и др. В действительности, событийно-ориентированные архитектуры были изобретены гораздо раньше и совсем для других целей, только тогда еще никто не знал, что это так называется. Событийно-ориентированную архитектуру имеют ядра операционных систем (в том числе систем семейства Unix), многие серверные приложения и приложения реального времени. В ходе этой лекции вы изучите событийно-ориентированную архитектуру типичного серверного приложения и получите обзор других подходов к реализации и использованию событийно-ориентированных архитектур." ещё
10 Архитектуры многопоточных приложений В заключение нашего курса рассмотрим реально используемые архитектуры многопоточных приложений.
Архитектуры многопоточных приложений тест для курса Многопоточное программирование с использованием POSIX Threads 60 мин
11 Правила приема задач и выставления оценок
12 Задания практикума Многопоточное программирование
Тренировочный экзамен Внимание! Тренировочный экзамен экстерном не обязательный для сдачи. При желании вы можете его пройти, если хотите проверить свои знания курса перед сдачей экзамена. Тренировочный экзамен можно сдавать сколько угодно один раз. 90 мин
Экзамен 60 мин

Какой документ я получу?

Сертификат

Выдаётся автоматически после успешного завершения программы.

Удостоверение о повышении квалификации

Выдается при наличии среднего специального или высшего образования (необходимые документы).

Стоимость программы

690 ₽ 1 200 ₽
или любая сумма на ваше усмотрение
Вы можете оплатить любую сумму, чтобы поддержать наш проект и авторов программы. Объем услуг не зависит от размера вашей оплаты.