• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
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 module
    0.4 * Практическое задание + 0.5 * Практическое задание + 0.1 * опросы на занятиях
Список литературы

Список литературы

Рекомендуемая основная литература

  • Linux. Системное программирование, Лав, Р., 2014
  • UNIX. Профессиональное программирование, Стивенс, У. Р., 2018
  • Современные операционные системы, Таненбаум, Э., 2018

Рекомендуемая дополнительная литература

  • Язык C. Мастерство программирования : принципы, практики и паттерны, Прешерн, К., 2023

Авторы

  • Романова Ирина Ивановна
  • Башун Владимир Владимирович