Автор: Дмитрий Иртегов | Новосибирский Государственный Университет
Форма обучения:
дистанционная
Стоимость самостоятельного обучения:
бесплатно
Доступ:
свободный
Документ об окончании:
 
Уровень:
Специалист
Длительность:
10:54:00
Студентов:
623
Выпускников:
50
Качество курса:
4.62 | 4.24
Курс посвящен разработке многопоточных приложений на языках C/C++ с использованием POSIX Thread Library.
Основное внимание уделяется разработке ориентированных на ввод-вывод приложений и сетевых сервисов, но рассматриваются также некоторые вопросы, связанные с разработкой вычислительных программ с разделяемой памятью и приложений реального времени. Примеры программ тестировались под ОС Solaris 10 с использованием Sun Studio 11.
 

План занятий

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