Магистратура
2023/2024
Конструирование ядра операционных систем
Статус:
Курс обязательный (Системное программирование)
Направление:
09.04.04. Программная инженерия
Где читается:
Факультет компьютерных наук
Когда читается:
1-й курс, 3, 4 модуль
Формат изучения:
без онлайн-курса
Охват аудитории:
для своего кампуса
Преподаватели:
Хорошилов Алексей Владимирович
Прогр. обучения:
Системное программирование
Язык:
русский
Кредиты:
6
Контактные часы:
64
Программа дисциплины
Аннотация
Курс "Конструирование ядра операционных систем" посвящен изучению основных принципов внутреннего устройства ядра операционной системы, механизмов аппаратной поддержки работы ядра, а также получению навыков проектирования и программирования компонентов ядра операционной системы и отладки программ в привилегированном режиме работы процессора. Курс предназначен для будущих специалистов в области системного программирования и разработке систем параллельного и распределенного программирования.
Цель освоения дисциплины
- Целью освоения дисциплины является изучение основных принципов внутреннего устройства ядра операционной системы, механизмов аппаратной поддержки работы ядра, а также получение навыков проектирования и программирования компонентов ядра операционной системы и отладки программ в привилегированном режиме работы процессора.
Планируемые результаты обучения
- Иметь представление о том, что включает в себя ОС
- Уметь реализовывать алгоритмы основных системные вызовы
- Уметь реализовывать виртуальную память
- Уметь реализовывать механизмы синхронизации процессов
- Уметь реализовывать создание процессов и средства межпроцессного взаимодействия
- Уметь реализовывать управление прерываниями
- Уметь реализовывать управление прерываниями и планирование процессов
- Уметь реализовывать управление процессами в ОС
Содержание учебной дисциплины
- Введение. Карта физической памя-ти x86. Процесс загрузки и иници-ализации PC. BIOS, инициализа-ция основных устройств. Загрузчик JOS. Загрузка ядра.
- Устройство ядра JOS. Отладка кода ядра JOS. Компиляция первой соб-ственной функции, вывод строк на консоль.
- Описатели процессов в JOS. Создание процессов в JOS, загрузка приложений в память из бинарных секций образа ядра. Переключение контекстов. Кооперативное разделение времени. Примитивный планировщик FIFO без приоритетов.
- Прерывания в x86. Инициализация IDT. Обработка прерываний таймера. Вытесняющее разделение времени. Примитивный планировщик Round Robin без приоритетов.
- Обработка вложенных прерываний в x86. Средства синхронизации, состояние гонок, деадлоки. Запрет прерываний, семафоры.
- Управление распределением физических страниц. Виртуальная память. Сегментная и страничная трансляция. Таблицы трансляции.
- Переключение между режимами работы процессора. Прерывания и системные вызовы. Вложенные прерывания. Изменения в создании процессов, переключении между контекстами. Передача данных между программой и ядром.
- Управление процессами. Системный вызов fork(). Механизмы межпроцессного взаимодействия.
- Примитивная файловая система. Реализация системных вызовов open(), close(), read(), write(), exec().
Элементы контроля
- Домашняя работа (ДР)
- Лабораторные работы (ЛР)В рамках курса слушателям предлагается выполнить 12 лабораторных работ. Каждая лабораторная работа сдаётся преподавателю или ассистенту посредством демонстрации результатов и устного ответа на вопросы.
- Экзамен (Э)Экзамен проводится в устной форме. Экзамен проводится на платформе meet.jit.si. К экзамену необходимо подключиться за 5 минут до начала. Для участия в экзамене студент обязан: включить камеру и микрофон. Во время экзамена студентам разрешено пользоваться учебными материалами. Кратковременным нарушением связи во время экзамена считается 5-минутное отсутствие связи. Долговременным нарушением связи во время экзамена считается 15-минутное отсутствие связи. При долговременном нарушении связи студент не может продолжить участие в экзамене. Процедура пересдачи аналогична процедуре сдачи.
Промежуточная аттестация
- 2023/2024 учебный год 4 модуль0.42 * Домашняя работа (ДР) + 0.33 * Лабораторные работы (ЛР) + 0.25 * Экзамен (Э)
Список литературы
Рекомендуемая основная литература
- Архитектура компьютера, Таненбаум, Э., 2014
- Операционная система UNIX : учеб. пособие для вузов, Робачевский, А. М., 2003
- Современные операционные системы, Таненбаум, Э., 2012
Рекомендуемая дополнительная литература
- C. A. R Hoare. (1974). Monitors: An Operating System Structuring Concept. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsbas&AN=edsbas.55879E6F
- Siever, E. (2009). Linux in a Nutshell : A Desktop Quick Reference (Vol. 6th ed). Beijing: Reilly - O’Reilly Media. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=415617