• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Бакалавриат 2023/2024

Операционные системы

Статус: Курс по выбору (Программная инженерия)
Направление: 09.03.04. Программная инженерия
Когда читается: 2-й курс, 3, 4 модуль
Формат изучения: без онлайн-курса
Охват аудитории: для своего кампуса
Язык: русский
Кредиты: 4
Контактные часы: 60

Программа дисциплины

Аннотация

В лекционной части курса рассматриваются фундаментальные принципы построения и особенности проектирования современных операционных систем. Теоретическое изложение не привязано к конкретной операционной системе. Практическая часть курса показывает, как изложенные теоретические положения реализуются в операционной системе Linux.
Цель освоения дисциплины

Цель освоения дисциплины

  • Освоение студентами знаний в области построения и функционирования современных операционных систем.
  • Осмысленное применение полученных знаний при изучении других дисциплин
Планируемые результаты обучения

Планируемые результаты обучения

  • Знать историю эволюции вычислительных систем, основные функции, выполняемые современными операционными системами, принципы их внутреннего построения
  • Знать концепцию нитей исполнения и их отличие от обычных процессов
  • Знать концепцию процессов в операционных системах
  • Знать логические основы взаимодействия процессов
  • Знать организацию управления виртуальной памятью и использующиеся при этом алгоритмы
  • Знать организацию управления устройствами ввода-вывода на уровне как технического, так и программного обеспечения, основные функции подсистемы ввода-вывода
  • Знать основные алгоритмы планирования процессов
  • Знать основные механизмы синхронизации в операционных системах и способы их применения для решения задач синхронизации
  • Знать основные принципы построения памяти в вычислительных системах и простейшие механизмы управления памятью
  • Знать основные проблемы безопасности операционных систем и подходы к их решению
  • Знать понятия файла, файловой системы, операции над ними и основные принципы управления файловыми системами
  • Знать принципы сетевого взаимодействия вычислительных систем и построения работы сетевых частей операционных систем
  • Знать программные алгоритмы организации взаимодействия процессов и предъявляемые к ним требования
  • Уметь использовать семафоры для синхронизации работы процессов и нитей исполнения
  • Уметь использовать системные вызовы для работы с файловой системой
  • Уметь обрабатывать сигналя, приходящие процессам, использовать сигналы для синхронизации работы процессов
  • Уметь организовывать взаимодействие процессов через потоковые средства связи и очереди сообщений
  • Уметь организовывать корректное взаимодействие процессов через разделяемую память и нитей исполнения через глобальные переменные
  • Уметь пользоваться командами командного интерпретатора операционной системы Linux
  • Уметь порождать новые нити исполнения и правильно завершать их функционирование
  • Уметь порождать новые процессы, запускать новые программы и правильно завершать их функционирование
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Введение в дисциплину
  • Процессы в операционной системе
  • Кооперация процессов
  • Планирование процессов
  • Простейшие схемы управления памятью
  • Виртуальная память
  • Файлы и файловые системы
  • Система управления вводом-выводом.
  • Сети и сетевые операционные системы
  • Проблемы безопасности операционных систем
Элементы контроля

Элементы контроля

  • неблокирующий Индивидуальное задание № 1. Применение каналов при обработке строк символов
    Разработка программы, осуществляющей взаимодействие между процессами посредством каналов.
  • неблокирующий Индивидуальное задание №2. Взаимодействие параллельных процессов и их синхронизация
    Разработка приложения, осуществляющего взаимодействие и синхронизацию параллельных процессов с использованием семафоров и других базовых синхропримитивов ОС.
  • неблокирующий Индивидуальное задание №3. Разработка многопоточного приложения с использованием синхропримитивов
    Создание многопоточного приложения, осуществляющего корректное взаимодействие потоков посредством использования методов синхронизации, имеющихся в изучаемой ОС.
  • неблокирующий Индивидуальное задание №4. «Сетевые взаимодействия с применением транспортных протоколов TCP и UDP
    Разработка клиент–серверного приложения, в котором сервер (или серверы) и клиенты обеспечивают совместно решение поставленной задачи используя различные сетевые протоколы и методы их применения.
  • неблокирующий Выполнение домашних заданий
    Выполнение домашних заданий, выдаваемых по материалам, рассмотренным в лекционном курсе и на семинарах.
  • неблокирующий Текущая работа на семинарах
    Посещение семинаров и работа на них.
  • неблокирующий Итоговый экзамен по дисциплине
    Допуск к итоговому экзамену определяется в соответствии с регламентом, представленным в формуле оценки.
Промежуточная аттестация

Промежуточная аттестация

  • 2023/2024 учебный год 4 модуль
    0.08 * Выполнение домашних заданий + 0.15 * Индивидуальное задание № 1. Применение каналов при обработке строк символов + 0.15 * Индивидуальное задание №2. Взаимодействие параллельных процессов и их синхронизация + 0.15 * Индивидуальное задание №3. Разработка многопоточного приложения с использованием синхропримитивов + 0.15 * Индивидуальное задание №4. «Сетевые взаимодействия с применением транспортных протоколов TCP и UDP + 0.2 * Итоговый экзамен по дисциплине + 0.12 * Текущая работа на семинарах
Список литературы

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

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

  • Основы операционных систем : курс лекций: учеб. пособие для вузов, Карпов, В. Е., 2019

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

  • Операционные системы. Т.1: Основы и принципы, Дейтел, Х. М., 2009
  • Современные операционные системы, Таненбаум, Э., 2012