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

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

Статус: Курс обязательный (Информатика и вычислительная техника)
Направление: 09.03.01. Информатика и вычислительная техника
Когда читается: 3-й курс, 1, 2 модуль
Формат изучения: без онлайн-курса
Преподаватели: Сорокин Игорь Михайлович, Фомин Сергей Сергеевич, Чернышов Лев Николаевич
Язык: русский
Кредиты: 4

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

Аннотация

Курс «Операционные системы» позволяет студентам получить базовые знания принципов построения и использования современных операционных систем. Курс использует в качестве базы современные Unix- подобные операционные системы. В ходе изучения курса студент приобретает навыки: применения командного языка, разработки командных процедур, обслуживания файловой системы, разработки программ, использующих средства взаимодействия процессов.
Цель освоения дисциплины

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

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

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

  • Знать назначение, состав, функции, классификацию операционных систем различного типа.
  • Знать основные свойства Unix, концептуальную модель Unix, архитектуру ОС Unix.
  • Знать архитектуруОС Unix. Уметь работать с базовым набором команд ОС Unix.
  • Уметь разрабатывать командные процедуры.
  • Знать структуру файловой системы ОС Unix. Уметь разрабатывать программы, работающие со структурными компонентами файловой системы.
  • Знать диаграмму состояния процессов, свойства процессов иоперации над ними.
  • Знать особенности управления процессами в ОС Unix.Уметь разрабатывать программы с использованием именованных и неименованных программных каналов.
  • Знать средства меж процессного взаимодействия (IPC).
  • Знать алгоритмы планирования процессов.
  • Знать основы управления памятью.
  • Знать организацию виртуальной памяти.
  • Знать основы ОС реального времени, применение ОС РВ для работы с микроконтроллерами.
Содержание учебной дисциплины

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

  • Введение в операционные системы
    Введение в операционные системы. Определение, назначение, состав, функции, классификация операционных систем, основные функции и назначения операционных систем пакетной обработки, разделения времени и реального времени.
  • Введение в ОС Unix. Архитектура ОС UNIX
    История создания Unix. Основные свойства Unix (мобильность, файловая система, командный язык). Концептуальная модель Unix. Современные версии Unix. Архитектура ОС Unix. Архитектура ядра Unix. Пользователь, интерфейс пользователя, привилегированный пользователь, программы, команды, процессы. Вход в систему: ввод идентификатора и пароля. Интерпретатор команд (общие сведения); формат команд; порождение имен файлов; стиль общения с системой. Файловая система: структура файловой системы, типы файлов, состав стандартных каталогов, монтирование файловой системы.
  • Базовый набор команд ОС Unix
    Формат команд. Порождение имён файлов. Стиль общения с Unix. Минимальный набор команд. Дополнительные возможности интерпретатора команд: перенаправление ввода-вывода. Конвейеры. Фоновые команды. Группирование команд. Создание файлов с помощью текстовых редакторов (команды vi и joe). Создание программ на языке Си.
  • Основы программирования на командном языке ОС Unix
    Версии Shell. Переменные Shell. Присваивание значений переменным. Вывод содержимого переменных. Подстановка значений переменных. Использование переменных Shell. Специальные символы (кавычки, двойные кавычки, апострофы, обратные апострофы). Аргументы Shell-программы. Специальные параметры интерпретатора команд. Простые условные операторы (условное ИЛИ, условное И). Команда test (сравнение строк, сравнение чисел, проверка состояния файла). Использование команды test в операторе if. Управляющие конструкции высокого уровня (условный оператор (if), операторы цикла (for и while)). Операторы break и continue. Оператор выбора case. Арифметические операции с переменными Shell. Стандартные переменные Shell. Экспортирование переменных. Встроенные команды интерпретатора sh. Системные файлы. Запуск и режимы работы sh.
  • Файловая система ОС Unix
    Свойства современной файловой системы. Особенности файловой системы UNIX. Структура канонической файловой системы (суперблок, индексный файл, блоки файлов, область выгрузки). Структура суперблока и индексного дескриптора. Схема адресации блоков файла. Другие типы файловых систем UNIX.Особенности файловой системы s5fs. Файловая система BSDUnix (ffs). Архитектура виртуальной файловой системы. Целостность файловой системы. Классификация ошибок в файловой системе. Правила проверки целостности файловой системы. Оценка свободного пространства в файловой системе (команды df, du, quot). Монтирование файловой системы. Восстановление «хорошей» организации файловой системы. Устройства, на которых создаются файловые системы и архивы данных. Создание архивов на гибких и жёстких дисках (утилиты cpio и tar). Создание файловых систем на гибких и жёстких дисках. Права доступа к файлам. Флаги доступа к файлу. Системные вызовы для работы с файлами и каталогами.
  • Введение в управление процессами
    Понятие процесса. Описание процессов. Состояния и свойства процессов. Представление процессов в вычислительных системах. Операции над процессами и связанные с ними понятия. Набор операций. Process Control Block и контекст процесса. Одноразовые операции. Многоразовые операции. Переключение контекста. Резюме
  • Управление процессами в ОС Unix
    Ядро Unix и процессы. Функции ядра. Системные ресурсы. Системные вызовы. Защита от вмешательства пользователя. Понятие процесса. Виртуальное адресное пространство процесса. Сегменты объектного модуля. Схема подчиненности процессов. Порождение процессов. Образ процесса. Системный вызов fork(). Идентификатор процесса. Наследование знаний о среде выполнения процесса. Системные вызовы wait(), exit(), execl(). Замена процедурного сегмента в порожденном процессе. Методы организации параллельных процессов. Пример асинхронного копирования файлов. Сигналы. Система прерываний процесса. Типичные события при выполнении процесса. Сигналы ОС Unix. Синхронные и асинхронные сигналы. Реакция процесса на сигнал. Посылка сигнала процессу и обработка сигнала. Системные вызовы kill() и signal(). Пример обмена сигналами между родственными процессами. Неименованные программные каналы. Программный канал как однонаправленное асинхронное средство связи. Свойства программных каналов. Установка программных каналов. Системный вызов pipe(). Этапы установки программного канала. Соотношение между дескрипторами файлов и каналов. Организация пересылки файлов через программный канал между родственными процессами. Перенаправление стандартного ввода-вывода. Ассоциирование канала с потоком. Пример взаимодействия родственных процессов в дуплексном режиме и переназначение стандартного ввода-вывода. Пример программной организации конвейера.
  • Управление процессами в ОС UNIX (продолжение)
    Преимущества и недостатки потокового обмена данными. Понятие System V IPC. Пространство имен. Адресация в System V IPC. Функция ftok(). Дескрипторы System V IPC. Разделяемая память.Организация работы с разделяемой памятью в UNIX.Системные вызовы shmget(), shmat(), shmdt(). Команды ipc и ipcrm. Использование системного вызова shmctl() для освобождения ресурса. Разделяемая память и системные вызовы fork(), exec() и функция exit(). Семафоры.Семафоры в UNIX. Отличие операций над UNIX-семафорами от классических операций. Создание массива семафоров или доступ к уже существующему массиву. Системный вызов semget(). Выполнение операций над семафорами. Системный вызов semop(). Удаление набора семафоров из системы с помощью команды ipcrm или системного вызова semctl(). Понятие о POSIX-семафорах. Очереди.Сообщения как средства связи и средства синхронизации процессов. Очереди сообщений в UNIX как составная часть System V IPC. Создание очереди сообщений или доступ к уже существующей. Системный вызов msgget(). Реализация примитивов send и receive. Системные вызовы msgsnd() и msgrcv(). Удаление очереди сообщений из системы с помощью команды ipcrm или системного вызова msgctl().Использование очередей сообщений для синхронизации работы процессов. Файлы, отображаемые в адресное пространство процесса. Понятие о файлах, отображаемых в память (memory mapped файлах). Системные вызовы mmap(), munmap(). Нити исполнения. Понятие о нити исполнения (thread) в UNIX. Идентификатор нити исполнения. Функцияpthread_self(). Созданиеизавершениеthread'а. Функцииpthread_create(), pthread_exit(), pthread_join(). Необходимость синхронизации процессов и нитей исполнения, использующих общую память.
  • Планирование процессов
    Уровни планирования. Критерии планирования и требования к алгоритмам. Параметры планирования. Вытесняющее и невытесняющее планирование. Алгоритмы планирования. First-Come, First-Served (FCFS). RoundRobin (RR). Shortest-Job-First (SJF). Гарантированное планирование. Приоритетное планирование. Многоуровневые очереди (Multilevel Queue). Многоуровневые очереди с обратной связью (Multilevel Feedback Queue).
  • Управление памятью
    Введение. Связывание адресов. Простейшие схемы управления памятью. Схема с фиксированными разделами. Один процесс в памяти. Оверлейная структура. Свопинг. Мультипрограммирование с переменными разделами. Системные вызовы для работы с памятью.
  • Виртуальная память
    Проблема размещения больших программ. Понятие виртуальной памяти. Архитектурные средства поддержки виртуальной памяти. Страничная память. Сегментная и сегментно-страничная организации памяти. Таблица страниц. Ассоциативная память. Иерархия памяти. Размер страницы.
  • Введение в операционные системы реального времени
    Назначение, область применения и свойства систем реального времени.Классификация интегральных схем (ПЛИС, Arduino, микроконтроллеры).ОСРВ для микроконтроллеров серии К1986ВЕ92QI (фирма Миландр).Архитектура ОС RTOS (управление процессами, управление памятью). Организация программ для микроконтроллеров.
Элементы контроля

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

  • неблокирующий Экзамен
  • неблокирующий Практическая работа 1
  • неблокирующий Практическая работа 2
  • неблокирующий Практическая работа 3
  • неблокирующий Практическая работа 4
  • неблокирующий Домашняя работа
    Срок выдачи задания – 1 неделя 2 модуля, срок сдачи – 7 неделя 2 модуля. По результатам домашней работы подготавливается отчет.
Промежуточная аттестация

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

  • Промежуточная аттестация (2 модуль)
    0.12 * Домашняя работа + 0.12 * Практическая работа 1 + 0.12 * Практическая работа 2 + 0.12 * Практическая работа 3 + 0.12 * Практическая работа 4 + 0.4 * Экзамен
Список литературы

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

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

  • Назаров С.В., Широков А.И. - Современные операционные системы - Национальный Открытый Университет "ИНТУИТ" - 2016 - 351с. - ISBN: 978-5-9963-0416-5 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/100498
  • Основы операционных систем : курс лекций: учеб. пособие для вузов, Карпов, В. Е., Коньков, К. А., 2019

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

  • Современные операционные системы, Таненбаум, Э., 2012