• A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site
Article
Statistical testing of segment homogeneity in classification of piecewise-regular objects

Savchenko A., Belova N. S.

International Journal of Applied Mathematics and Computer Science. 2015. Vol. 25. No. 4. P. 915-925.

Article
Reconstruction of a word from a finite set of its subwords under the unit shift hypothesis. I. Reconstruction without for bidden words1

Smetanin Y., Ulyanov M.

Cybernetics and Systems Analysis. 2015. Vol. 50. No. 1. P. 148-156.

Article
VTMine Framework as Applied to Process Mining Modeling

Sergey Andreevich Shershakov.

International Journal of Computer and Communication Engineering. 2015. Vol. 4. No. 3. P. 166-179.

Operating Systems

2020/2021
Academic Year
RUS
Instruction in Russian
4
ECTS credits
Type:
Compulsory course
When:
2 year, 3, 4 module

Instructors

Карнов Алексей Александрович

Карнов Алексей Александрович

Кричанов Михаил Юрьевич

Кричанов Михаил Юрьевич

Чиликин Дмитрий Сергеевич

Чиликин Дмитрий Сергеевич

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

Аннотация

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

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

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

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

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

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

  • Введение в дисциплину
    Цели и задачи курса. Понятие о вычислительном комплексе. Системное программное обеспечение и операционные системы. Краткая история эволюции вычислительных систем. Взаимное влияние software и hardware. Автономные, сетевые и распределенные операционные системы. Классификация автономных операционных систем по их назначению и структуре. Знакомство с операционной системой UNIX. Системные вызовы и библиотека libc. Понятия login и password. Упрощенное устройство файловой системы в UNIX. Полные имена файлов. Текущая директория. Относительные имена файлов. Домашняя директория пользователя. Команда man – универсальный справочник. Команды cd и ls. Перенаправление стандартного ввода и стандартного вывода. Простейшие команды работы с файлами – cat, cp, mkdir, mv, rm. Шаблоны имен файлов. Пользователь и группа. Системные вызовы getuid() и getgid(). Команды chown и chgrp. Права доступа к регулярному файлу и к директории. Команда chmod. Маска создания файлов. Команда umask. Редактирование файлов, компиляция и запуск программ.
  • Процессы в операционной системе
    Понятие процесса. Процесс и программа. Состояния процесса. Управляющий блок процесса и его контекст. Операции над процессами. Переключение контекста. Понятие процесса в UNIX, его контекст. Идентификация процесса. Краткая диаграмма состояний процессов в UNIX. Иерархия процессов. Системные вызовы getpid() и getppid(). Создание процесса в UNIX. Системный вызов fork(). Завершение процесса. Функция exit(). Параметры функции main() в языке C. Переменные среды и аргументы командной строки. Изменение пользовательского контекста процесса. Семейство функций для системного вызова exec().
  • Кооперация процессов
    Взаимодействующие и независимые процессы. Категории средств связи. Установление и завершение связи. Прямая и косвенная адресация. Информационная валентность процессов и средств коммуникации. Симплексная, дуплексная и полудуплексная связь. Потоки ввода вывода и сообщения. Буферизация данных. Надежность обмена информацией. Нити исполнения и их отличие от процессов. Interleaving, race condition и взаимоисключе-ния. Условия Бернстайна. Понятие критической секции процесса. Программные алгоритмы организации взаимодействия процессов и предъявляемые к ним требования. Семафоры, мониторы Хора и сообщения, их эквивалентность. Понятие потока ввода-вывода в операционной системе UNIX. Работа с файлами через системные вызовы и через функции стандартной библиотеки. Файловый дескриптор. Наследование файловых дескрипторов при системных вызовах fork() и exec(). Системные вызовы open(), read(), write(), close(). FIFO и pipe. Системные вызовы pipe(), mknod(), функция mkfifo(). Особенности системных потоковых вызовов при работе с FIFO и pipe. Преимущества и недостатки потокового обмена данными. IPC в UNIX. Пространство имен. Адресация в System V IPC. Функция ftok(). Дескрипторы System V IPC. Разделяемая память. Системные вызовы shmget(), shmat(), shmdt(), shmctl(). Команды ipcs и ipcrm. Нить исполнения (thread) в UNIX, ее идентификатор. Функция pthread_self(). Создание и завершение нити исполнения. Функции pthread_create(), pthread_exit(), pthread_join(). Семафоры в UNIX. Отличие операций над UNIX семафорами от классических операций. Системные вызовы semget(), semop(), semctl(). Понятие о POSIX семафорах. Очереди сообщений в UNIX. Системные вызовы msgget(), msgsnd(), msgrcv(), msgctl(). Понятие мультиплексирования. Мультиплексирование сообщений. Модель взаимодействия процессов клиент–сервер. Неравноправность клиента и сервера.
  • Планирование процессов
    Уровни планирования процессов. Критерии планирования и требования к алгоритмам планирования. Параметры планирования. Вытесняющее и невытесняющее планирование. Алгоритмы планирования: FCFS, RR, SJF, гарантированное планирование, приоритетное планирование, многоуровневые очереди, многоуровневые очереди с обратной связью.
  • Простейшие схемы управления памятью
    Иерархия памяти. Принцип локальности. Символьное, логическое и физическое адресное пространства памяти. Проблема разрешения адресов. Связывание адресов. Простейшие схемы управления памятью: схема с фиксированными разделами, схема с переменными разделами. Внешняя и внутренняя фрагментации. Проблема размещения больших программ. Сегментная, страничная и сегментно-страничная организации памяти. Таблицы сегментов и страниц.
  • Виртуальная память
    Организация больших таблиц страниц. Ассоциативная память. Понятие о виртуальной памяти. Исключительные ситуации при работе с памятью. Стратегии управления страничной памятью: выборки, размещения и замещения страниц. Алгоритмы замещения страниц: FIFO, OPT, LRU и другие. Трэшинг (thrashing). Алгоритм границ. Модель рабочего множества.
  • Файлы и файловые системы
    Имена, структура, типы и атрибуты файлов. Операции над файлами. Директории. Операции над директориями. Защита файлов. Методы выделения дискового пространства: непрерывная последовательность блоков, связный список, связный список с индексацией, индексные узлы. Управление свободным и занятым дисковым пространством: битовый вектор, связный список. Разделы носителя информации (partitions) в UNIX. Логическая структура файловой системы и типы файлов в UNIX. Организация файла на диске в UNIX на примере файловой системы s5fs. Понятие индексного узла (inode). Организация директорий (каталогов) в UNIX. Понятие суперблока. Указатель текущей позиции в файле. Системная таблица файлов и таблица индексных узлов открытых файлов. Операции над файлами и директориями. Понятие жестких и мягких связей. Системные вызовы и команды для выполнения операций над файлами и директориями: chmod, chown, chgrp, open(), creat(), read(), write(), close(), stat(), fstat(), lstat(), ftruncate(), lseek(), link(), symlink(), unlink(). Функции для изучения содержимого директорий opendir(), readdir(), rewinddir(), closedir(). Понятие о файлах, отображаемых в память (memory mapped файлах). Системные вызовы mmap(), munmap(). Понятие виртуальной файловой системы. Монтирование файловых систем в UNIX.
  • Система управления вводом-выводом.
    Общие сведения об архитектуре компьютера. Структура контроллера устройства. Опрос устройств и прерывания. Исключительные ситуации и системные вызовы. Прямой доступ к памяти (Direct Memory Access – DMA). Структура системы ввода-вывода. Систематизация внешних устройств и интерфейс между базовой подсистемой ввода-вывода и драйверами. Функции базовой подсистемы ввода-вывода. Блокирующиеся, не блокирующиеся и асинхронные системные вызовы. Буферизация и кэширование. Spooling и захват устройств. Обработка прерываний и ошибок. Планирование запросов. Алгоритмы планирования запросов к жесткому диску: FCFS, SSTF, SCAN, C-SCAN, LOOK, C-LOOK. Блочные и символьные устройства в UNIX. Понятие драйвера. Блочные, символьные драйверы, драйверы низкого уровня. Файловый интерфейс к драйверам. Коммутатор устройств. Старший и младший номер устройства. Понятие сигнала в UNIX. Способы возникновения сигналов и виды их обработки. Понятия группы процессов, сеанса, лидера группы, лидера сеанса, управляющего терминала сеанса, текущей и фоновой групп процессов. Системный вызов kill() и команда kill(). Особенности получения терминальных сигналов текущей и фоновой группой процессов. Получение сигнала SIGHUP процессами при завершении лидера сеанса. Системный вызов signal(). Установка собственного обработчика сигнала. Сигналы SIGUSR1 и SIGUSR2. Использование сигналов для синхронизации процессов. Понятие о надежности сигналов.
  • Сети и сетевые операционные системы
    Причины объединения компьютеров в сети. Сетевые и распределенные операционные системы. Взаимодействие удаленных процессов как основа работы вычислительных сетей. Многоуровневая модель построения сетевых вычислительных систем. Семейства и стеки протоколов. Эталонная модель OSI/ISO. Удаленная адресация и разрешение адресов. Понятие о DNS. Локальная адресация. Понятие порта. Полные адреса. Понятие сокета (socket). Фиксированная, виртуальная и динамическая маршрутизация. Связь с установлением логического соединения и передача данных с помощью сообщений.
  • Проблемы безопасности операционных систем
    Классификация угроз. Формализация подхода к обеспечению информационной безопасности. Классы безопасности. Политика безопасности. Криптография как одна из базовых технологий безопасности ОС. Шифрование с симметричными и ассиметричными ключа-ми. Правило Кирхгофа. Алгоритм RSA. Идентификация и аутентификация. Пароли, уязвимость паролей. Авторизация. Разграничение доступа к объектам ОС. Домены безопасности. Матрица доступа. Недопустимость повторного использования объектов. Аудит, учет использования системы защиты.
Элементы контроля

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

  • неблокирующий Работа на семинаре (Опракт)
  • неблокирующий Контрольная работа (Окр)
  • неблокирующий Экзамен (Оэкз)
    Экзамен письменный, совмещен с письменной контрольной за 3-й модуль. Экзамен проходит с прокторингом через Examus в системе Moodle. Студенты получают задание, решают на бумаге, в конце загружают фотографии/сканы решений. Продолжительность экзамена 1.5 астрономических часа (вместе со временем, необходимым для загрузки решений). Во время экзамена разрешено смотреть в условия задач, использовать любые подготовленные рукописные материалы (конспекты лекций, шпаргалки) и писать на листах бумаги, которые были чистыми до начала экзамена. При решении задач категорически запрещается использовать любые печатные тексты, в том числе распечатки презентаций лекций, ксерокопии, фотографии, сканы, сторонние интернет-ресурсы. Допустимо использование простых калькуляторов. Если у студента случилось не более 2-х обрывов связи общей продолжительностью менее пяти минут, он может продолжить написание экзамена (дополнительное время при этом не предоставляется). Если случился большее количество обрывов связи, или их суммарная продолжительность превысит 5 минут, то считается, что студент пропустил экзамен. В этом случае ему выставляется неявка на экзамен, и он пересдает его как при обычной неявке.
Промежуточная аттестация

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

  • Промежуточная аттестация (4 модуль)
    Оценка Опракт выставляется преподавателем по итогам работы на практических занятиях. Каждая практическая задача при полном правильном и своевременном решении оценивается в определенное количество баллов от 5 до 25. Баллы за полностью правильное решение определяются преподавателями и утверждаются лектором. Процент суммарно набранных баллов за все занятия от максимально возможного количества баллов определяет десятибалльную оценку Опракт за практические знания студента по следующей таблице: отлично (10) - более 88% отлично (9) - от 78% до 88% включительно отлично (8) - от 68% до 78% включительно хорошо (7) - от 58% до 68% включительно хорошо (6) - от 48% до 58% включительно удовлетворительно (5) - от 38% до 48% включительно удовлетворительно (4) - от 28% до 38% включительно неудовлетворительно (3) - от 18% до 28% включительно неудовлетворительно (2) - от 8% до 18% включительно неудовлетворительно (1) - от 0 до 8% включительно неудовлетворительно (0) - нет сданных задач Контрольная работа и письменный экзамен длительностью 2 академических часа состоят из 4-6 контрольных вопросов по теории с различными баллами от 2 до 18 за полностью правильный ответ для каждого вопроса, в зависимости от сложности. Перечень контрольных вопросов для контрольной работы, письменного экзамена и баллы за полностью правильный ответ утверждаются лектором. За каждый контрольный вопрос из контрольной работы и письменного экзамена студент получает от 0 до максимального балла в зависимости от полноты представленного ответа (решения). Критерии проставления баллов утверждаются на заседании учебно-методической комиссии кафедры. Процент суммарно набранных баллов от максимально возможного количества определяет десятибалльные оценки за контрольную работу Окр и за письменный экзамен Оэкз по вышеприведенной таблице. Общая оценка за теоретические знания Отеор выводится как (Окр+Оэкз)/2 - без округления. Окончательная оценка Орез строится как среднее гармоническое между теорией и практикой Орез = 2*Опракт*Отеор/(Опракт+Отеор). При этом, если результирующая оценка лежит в диапазоне от 0 до 4, то округление производится в большую сторону - в пользу студента. Если результирующая оценка лежит в диапазоне от 4 до 10, то округление производится по стандартным математическим правилам - в сторону ближайшего целого.
Список литературы

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

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

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

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

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