Skip to content

Latest commit

 

History

History
128 lines (91 loc) · 13.5 KB

README.md

File metadata and controls

128 lines (91 loc) · 13.5 KB

NP Сетевые системы и приложения - ВТОРОЙ СЕМЕСТР

Страничка семинаров ПИ22-1 ПИ22-2 ПИ22-3 ПИ22-4

Основные темы практики:

Первый семестр:

Второй семестр:

Материалы курса

Вы можете познакомиться с материалами курса - презентациями к лекциям, методических рекомендациям к лабораторным работам на github.

Плейлист с видео по данному курсу досупен на YouTube.

План семинарных занятий

  • Системы контроля версий

    • Вначале мы изучаем git для совместной разработки
    • Учимся настраивать синхронизацию проектов через GitHub
  • Использование сокетов

    • Затем создаем простейшее серверное приложение, которое отправляет потоковое видео
  • Веб-сервер

    • Развиваем предыдущий опыт в сокетах до создания простейшего http веб-сервера
    • Добавляем функционал многопоточности для http веб-сервера
    • Добавляем функционал многопроцессности для ускорения http веб-сервера
    • Добавляем библиотеки асинхронного программирования для http веб-сервера

Вторая половина семестра

  • Развертывание сетевых приложений
    • Пакуем в контейнер - развертываем http асинхронный параллельный веб-сервер на удаленном ресурсе (hub.docker.com)

БРС

Первая половина семестра

Cеминар/Лекция дата № п/п Вид учебной деятельности Максимум  за семестр
Лекция DO1.0 Лабораторная работа-0.1 Работа с Git 3
Лекция DO1.3 Лабораторная работа-0.2 сделать форк этого репозитория и открыть его в IDE -
Лекция DO1.1 Лабораторная работа-0.3 запушить изменения в проект 1_echo на github -
Домашнее задание DO1.4 Лабораторная работа-0.4 настроить .gitignore, удалить лишнее 2
Семинар DO1.0 от 05.02-11.02 Лабораторная работа-0.5 субмодуль git submodule -
Лекция NP1.1 Лабораторная работа-1.1 echo-server 3
Семинар NP1.1 от 12.02-18.02 Лабораторная работа-1.2 echo-client + telnet/putty -
Домашнее задание NP1.1 Лабораторная работа-1.3 live stream video server -
Семинар NP1.2 Лабораторная работа-5.1 ftp-сервер (файлы output+file1) -
Домашнее задание NP1.2 Лабораторная работа-5.2 файловый менеджер 2
Семинар NP4.4 от 19.02-25.02 Лабораторная работа-4.1 Postman (запросы к ruz.fa.ru и к echo-server) -
Лекция NP4.4 Лабораторная работа-4.2 код http-клиента из Postman 2
Лекция NP4.5 Лабораторная работа-6.1 Низкоуровневая работа с веб 3
Семинар NP4.5 от 26.02-3.03 (2дубль) Лабораторная работа-6.2 Веб-сервер HTTP Часть1 (webserver1) -
Домашнее задание NP4.5 Лабораторная работа-6.3 Веб-сервер HTTP Часть2 (фреймворк+вебсервер) -
Лекция NP2.1 Лабораторная работа-2.2 threaded server 3
Семинар NP2.2 Лабораторная работа-3.2 Веб-сервер HTTP Часть3 (threaded) -
Домашнее задание NP2.1 Лабораторная работа-2.1 threaded+async web-server -
Лекция NP2.2 Лабораторная работа-3.1 multiprocessing 2
Семинар NP2.1 от 11.03-17.03 Лабораторная работа-7.1 UDP/TCP-multiprocess-сервер -

Вторая половина семестра

Cеминар/Лекция дата № п/п Вид учебной деятельности Максимум  за семестр
Лекция DO2.1 Лабораторная работа-0.7 настройка pip 1
Лекция DO2.2 Лабораторная работа-0.6 настройка env 1
Лекция NP4.1 Лабораторная работа-10.1 apache 1
Лекция NP4.1 Лабораторная работа-10.2 nginx 1
Семинар 8.1 Лабораторная работа-8.1 Lets_encrypt -
Лекция Лабораторная работа-8.2 Основные алгоритмы синхронного шифрования 3
Домашнее задание 8.1 Лабораторная работа-8.3 Алгоритмы асимметричного шифрования -
Домашнее задание NP2.2 Лабораторная работа-3.2 Асинхронный сервер -
Лекция DO2.3 Лабораторная работа-13.1 Создание микросервиса 5
Семинар DO2.3 Лабораторная работа-13.2 1_echo_server в docker -
Семинар DO2.3 Лабораторная работа-13.3 5_FTP_server в docker -
Семинар DO2.3 Лабораторная работа-13.4 6_Web_server в docker -
Семинар DO2.4 Лабораторная работа-13.5 Celery_Rabbit -
Лекция NP4.3 Лабораторная работа-11.1 балансировка в docker 2
Семинар DO2.5 Лабораторная работа-11.2 Celery Workers + Queue -
- - Тестовые опросы 5

Пояснение:

  • Доля измеримых видов контроля самостоятельной работы обучающихся, исключающих субъективное суждение = 30 баллов
  • Доля cамостоятельной работы обучающегося = 10 баллов

Выполнение за половину семестра от 7 до 20 баллов, считается аттестованным

Примерные задания для подготовки к экзамену

  1. Напишите программу, которая создает нить. Родительская и вновь созданная нити должны распечатать десять строк текста. README
  2. Напишите простой эхо-сервер, использующий неблокирующие сокеты и клиент к нему.README
  3. Напишите простой многопоточный загрузчик URL. Список URL скрипт принимает как аргументы командной строки.README
  4. Реализуйте простой HTTP-клиент. Он принимает один параметр командной строки - URL. Клиент делает запрос по указанному URL и выдает тело ответа на терминал как текст.
  5. Напишите программу, которая вычисляет число Пи при помощи ряда Эйлера. Количество потоков программы должно определяться параметром командной строки.
  6. Дана функция calculate(x, y). Напишите программу, которая создает пул из 5 процессов и распределяет в этом пуле вычисление функции на промежутке х от 0 до 1 с шагом 0,1. у равняется 2 всегда.README
  7. Напишите программу, которая проверяет все числа от 0 на простоту и выводит простые числа на экран по мере нахождения. Числа должны проверяться в различных потоках (или процессах, по выбору студента) Программа должна работать до тех пор, пока ее не остановит пользователь.
  8. Напишите программу, которая обходит все файлы в директории, переданной ей как параметр и выводит на экран имена тех, чей размер задан как второй параметр. Реализовать рекурсивный обход поддиректорий.README
  9. Напишите программу, которая выводит на экран список номеров открытых портов на данной машине. Использовать команду netstat.
  10. Напишите программу, которая копирует файл с удаленного хоста в текущую папку по SSH. Имя файла и адрес хоста принимать как параметры.

Пример экзаменационного билета

Экзаменационный билет №

  1. Понятие потокобезопасности. Причины, проблематика, способы обеспечения. (20 баллов)
  2. Доступ к общим ресурсам в многопоточной программе. Механизмы блокировки ресурсов модуля threading. (20 баллов)
  3. Напишите программу, которая создает четыре нити, исполняющие одну и ту же функцию. Эта функция должна распечатать последовательность текстовых строк, переданных как параметр. Каждая из созданных нитей должна распечатать различные последовательности строк. (20 баллов)