2024/2025




Системное программирование
Статус:
Маго-лего
Кто читает:
Департамент компьютерной инженерии
Когда читается:
3, 4 модуль
Охват аудитории:
для своего кампуса
Язык:
русский
Кредиты:
6
Программа дисциплины
Аннотация
Из этого курса студент узнает, как создавать программное обеспечение, позволяющее выделять и совместно использовать ресурсы, получать доступ к устройствам, обеспечивать среду для разработки, запуска и выполнения других программ. В рамках курса студент познакомится с операционными системами, взаимодействием с ядром и памятью, работой с файлами, управлением потоками и пользователями в ОС. На практике студенты решат 5 задач для развития ключевых навыков системного программирования: реализация многозадачности, настройка межпроцессного взаимодействия, понимание работы файловых систем, реализация многопоточности, настройка взаимодействия через сокеты.
Цель освоения дисциплины
- Изучение основ взаимодействия с операционной системой
- Формирование навыков работы с системными ресурсами
- Освоение технологий межпроцессного и сетевого взаимодействия
- Развитие практических навыков системного программирования
- Углубленное понимание операционных систем
Планируемые результаты обучения
- Знает принципы работы Unix-подобных операционных систем.
- Знает основы взаимодействия с ядром ОС.
- Знает организацию памяти (виртуальной и физической) и методы взаимодействия с ней.
- Знает подходы к реализации многозадачности и её применения.
- Умеет реализовывать многозадачность с использованием корутин.
- Владеет навыками анализа и оптимизации системных программ для повышения их производительности.
- Владеет методами отладки и устранения ошибок в системных приложениях.
- Знает основные виды межпроцессного взаимодействия (IPC) и их применение.
- Знает структуру и взаимодействие с файловой системой в ОС.
- Знает механизмы работы с потоками и способы их синхронизации.
- Умеет настраивать и реализовывать межпроцессное взаимодействие.
- Умеет создавать интерфейсы для работы с файловыми системами.
- Владеет приёмами решения задач системного программирования в реальных сценариях:
- Умеет организовывать обмен данными через сокеты.
Содержание учебной дисциплины
- Lesson 0
- Lesson 1
- Lesson 3
- Lesson 2
- Lesson 4
- Lesson 5
- Lesson 6
- Lesson 7
- Lesson 8
- Lesson 9
- Lesson 10
Промежуточная аттестация
- 2024/2025 4th module0.4 * Практическое задание + 0.5 * Практическое задание + 0.1 * опросы на занятиях
Список литературы
Рекомендуемая основная литература
- Linux. Системное программирование, Лав, Р., 2014
- UNIX. Профессиональное программирование, Стивенс, У. Р., 2018
- Современные операционные системы, Таненбаум, Э., 2018
Рекомендуемая дополнительная литература
- Язык C. Мастерство программирования : принципы, практики и паттерны, Прешерн, К., 2023