Кафедра К3 Прикладная математика, информатика
и вычислительная техника

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

Преподаватель: Чернышов Александр Викторович

Направление подготовки: 654600 «Информатика и вычислительная техника»
Специальность: 230101 (220100) «Вычислительные машины, комплексы, системы и сети»
Семестры: 4, 5
Вид итогового контроля:
зачет — 4 семестр
экзамен — 5 семестр

Содержание курса:

  1. Введение. История развития ОС
    • Назначение и функции ОС (неформальное введение).
    • История зарождения и развития ОС.
    • Операционные системы на современном этапе развития вычислительной техники.
    • Классификация ОС.
    • Универсальные ОС и ОС специального назначения.
    • ОС пакетные, обработки транзакций, разделения времени, реального времени.
  2. Назначение и функции ОС
    • Подробное описание назначения и функций ОС.
    • Зависимость возможностей и функций ОС от аппаратуры ЭВМ (система команд и архитектура процессора, часы раельного времени и системный таймер, контроллер обработки прерываний, каналы ввода-вывода и т. п.).
    • Способы реализации мультипрограммирования.
    • Понятие событийного программирования.
    • Многопользовательский режим работы.
    • Средства обработки сигналов.
    • Модульная структура построения ОС и их переносимость.
  3. Управление процессами в ОС
    • Понятие процесса.
    • Структура контекста процесса.
    • Идентификатор и дескриптор процесса.
    • Иерархия процессов.
    • Понятия приоритета и очереди процессов.
    • Понятие ядра ОС.
    • Диспетчеризация и синхронизация процессов.
    • Способы реализации мультипрограммирования.
    • Управление процессором.
    • Режимы пользователя и супервизора.
    • Привелегированные команды.
    • Системные вызовы.
    • Средства коммуникации между процессами.
    • Средства обработки сигналов.
    • Взаимоисключение и критические секции.
    • Алгоритмы Деккера и Петерсена.
    • Семафоры.
    • Мониторы.
    • Тупики в ОС.
    • Необходимые условия возникновения.
    • Методы борьбы с тупиками.
  4. Управление оперативной памятью в ОС
    • История развития методов управления оперативной памятью.
    • Управление памятью с фиксированными разделами.
    • Управление памятью с переменными разделами.
    • Начальный и устоявшийся режим работы.
    • Дыры.
    • Стратегии поиска подходящей дыры.
    • Свопинг.
    • Принципы управления процессами и оперативной памятью.
    • Использование технологии оверлейного программирования.
    • Механизм реализации виртуальной памяти.
    • Необходимая аппаратная поддержка.
    • Принцип трансляции виртуальных адресов в физические.
    • Страничный метод организации виртуальной памяти.
    • Особенности механизма трансляции адресов.
    • Защита памяти.
    • Совместное использование памяти.
    • Сегментный метод организации виртуальной памяти.
    • Сегментно-страничный метод организации виртуальной памяти.
    • Защита памяти.
    • Совместное использование памяти.
    • Стратегия подкачки страниц.
    • Стратегии вталкивания, размещения и выталкивания страниц.
    • Влияние на производительность.
    • Понятия пробуксовки и рабочего множества.
    • Сегментация виртуального адресного пространства процесса.
    • Организация межпроцессного взаимодействия.
    • Особенности разработки программ для запуска на системах с виртуальной памятью.
    • Кеширование.
  5. Управление внешней памятью в ОС
    • Иерархия устройстви памяти.
    • Типы устройств внешней памяти.
    • Ввод и вывод данных.
    • Каналы ввода-вывода.
    • Буферизация.
    • Магнитные диски.
    • Основные принципы устройства и функционирования.
    • Возможность и необходимость оптимизации обработки запросов.
    • Стратегии оптимизации.
    • Файловые системы.
    • Назначение и функции.
    • Варианты организации файловых систем.
    • Методы доступа к файлам в файловых системах.
    • Концепция доступа к устройствам через псевдофайлы.
    • Драйверы ОС.
    • Многоуровневая иерархия драйверов в ОС.
    • Модульная структура драйверов современных ОС.
  6. Мультипроцессорные ОС
    • Варианты построения мультипроцессорных структур.
    • Особенности их функционирования и сопровождения.
    • Особенности программирования для мультипроцессоров.
    • Особенности мультипроцессорных ОС.
  7. Сетевые ОС и распределённая обработка
    • История возникновения и развития сетевого ПО.
    • Необходимость появления поддержки сетей в составе ОС.
    • Современные сетевые ОС.
    • Сетевые ОС.
    • Базовые службы сетевых ОС.
    • Принципы организации межпроцессного взаимодействия.
    • Защита от сбоев и несанкционированного доступа.
    • Распределённые ОС.
    • Новая парадигма организации вычислений и обработки информации.
    • Необходимые базовые службы.
    • Защита от сбоев и несанкционированного доступа.
    • Кластеры компьютеров в локальных сетях.
    • Кластерные супервычислители.
    • Организация многопроцессорных вычислений на кластере с использованием свободно распространяемого ПО.
  8. Производительность ОС
    • Понятие производительности вычислительной системы.
    • Этапы оценки производительности.
    • Цели, методы и способы оценки производительности.
    • Эффективность вычислительной системы.
    • Методы оценки эффективности.
    • Измерение и оптимизация производительности вычислительной системы.
  9. Локализация в ОС
    • Понятие локализации в ОС.
    • Необходимость локализации.
    • Исторический аспект.
    • Национальные стандарты и традиции.
    • Кодовые таблицы символов. Стандарт UNICODE.
  10. Современные тенденции развития ОС
    • Мировая тенденция к переходу на национальные ОС, базирующиеся на открытых международных стандартах и открытых кодах.

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

  1. Олифер В. Г., Олифер Н. А. Сетевые операционные системы. — СПб.: Питер, 2003. — 384 с.
  2. Дейтел Х. М., Дейтел П. Д., Чофнес Д. Р. Операционные системы. Основные принципы. Третье издание. — М.: ООО «Бином-Пресс», 2006. — 1024 с.
  3. Столлингс В. Операционные системы. Внутреннее устройство и принципы проектирования. — М.: Вильямс, 2002. — 844 с.

Дополнительная литература:

  1. Робачевский А. Операционная система UNIX. — СПб.: БХВ, 1999. — 528 с.
  2. Тейнсли Д. Linux и UNIX: программирование в shell. — Киев: БХВ, 2001. — 464 с.
  3. Лацис А. Как построить и использовать суперкомпьютер. — М.: Бестселлер, 2003. — 240 с.

Учебные и учебно-методические пособия:

  1. Чернышов А. В. Планирование процессов. Практикум к выполнению лабораторных работ для студентов специальности 220100. Часть 1. — М.: ГОУ ВПО МГУЛ, 2004. — 24 с.
  2. Чернышов А. В. Управление ресурсами ЭВМ. Практикум к выполнению лабораторных работ для студентов специальности 220100. Часть 2. — М.: ГОУ ВПО МГУЛ, 2004. — 32 с
  3. Чернышов А. В. Работа за X-терминалом. Учебное пособие для студентов специальностей 230100, 230101. — М.: ГОУ ВПО МГУЛ, 2005. — 87 с.
  4. Кнут Д. Е. Искусство программирования. Том 1. Основные алгоритмы. 3-е изд. — М.: Вильямс, 2000. — 720 с.
  5. Кнут Д. Е. Искусство программирования. Том 2. Получисленные алгоритмы. 3-е изд. — М.: Вильямс, 2000. — 830 с.
  6. Кнут Д. Е. Искусство программирования. Том 3. Сортировка и поиск. 2-е изд. — М.: Вильямс, 2000. — 824 с.

Нормативные документы:

  1. ГОСТ 19.701-90 (ИСО 5807-85) Схемы алгоритмов, программ, данных и систем.
  2. ГОСТ 19781-90 Обеспечение систем обработки информации программное. Термины и определения.

Интернет-ресурсы:

  1. www.linuxcenter.ru
  2. www.linuxformat.ru

Учебные материалы: Вопросы к экзамену