№ п/п | Название модулей | Разделы и темы лекционных занятий | Содержание |
Аудиторная работа (часы) |
---|---|---|---|---|
1 |
I Подсистемы ядра Linux |
Введение. Состав ПО вычислитетльного комплекса, место ядра ОС, краткий обзор подсистем ядра. |
Введение. Дистрибутив ОС. Системные библиотеки (glibc). Компилятор. Ядро Linux: планирование процессов, управление памятью, ввод-вывод, системные вызовы, сеть, драйверы устройств. Поддержка архитектур. Архитектурно-зависимая и архитектурно-независимая части ядра. |
2 |
2 |
Синхронизация, планирование, файловые системы |
Механизмы синхронизации. Планировщики обменов. Файловые системы. Что происходит при включении питания машины: различные варианты старта системы. |
2 |
|
3 |
Подсистема памяти, подсистема прерываний, системные вызовы
|
<p "text-align: justify;">Виртуальная память, типы исключительных ситуаций, обработка исключений по данным. Прерывания, обработчики прерываний. Системные вызовы: набор входов в таблицы системных вызовов. |
2 |
|
4 |
II Реальное время |
Приложения реального времени и ядро ОС реального времени |
Приложения реального времени. Критерий ОС реального времени. Поддержка режима реального времени в Linux. Патч PREEMPT_RT. Механизмы синхронизации для системы реального времени. Обработка прерываний на специальном потоке ядра. |
2 |
5 |
Оптимизации ядра ОС реального времени |
Оптимизации поддержки режима реального времени в ядре Linux. Патч MCST_RT. |
2 |
|
6 |
Библиотеки для поддержки приложений реального времени |
Системные библиотеки el_phtread, mcst_rt для создания приложений реального времени. Особенности реализации, обзор интерфейсов, пример приложения реального времени. |
2 |
|
7 |
III Драйверы |
Драйверная модель |
<p "text-align: justify;">Сущности device и driver и их взаимодействие в рамках драйверной модели linux. |
2 |
8 |
Драйверы простейших устройств |
Реализация универсального драйвера устройства, использующего порты ввода-вывода общего назначения (GPIO). Реализация обработчика прерывания GPIO. Взаимодействие с программами пользователя через подсистему input layer. Реализация драйвера датчика температуры семейства lm63, являющегося клиентом шины i2c. Подсистема i2c-core. |
4 |
|
9 |
IV Особенности архитектуры E2K и их поддержка в ядре ОС |
Краткий обзор архитектуры «Эльбрус» |
Система команд. Широкая команда. Форматы данных. Стеки. Регистры. Обращения в память. Прерывания. |
2 |
10 |
Прерывания в архитекутре «Эльбрус» |
Реализация обработки прерываний. Регистры TIR. Отложенные прерывания. Устройство cellar. Спекулятивный, неспекулятивный и полуспекулятивный режимы обращения в память. |
2 |
|
11 |
Устройства в процессоре «Эльбрус» |
Устройство Array Prefetch Buffer (APB). Поддержка APB в ядре: обработка исключения page_miss, поддержка полуспекулятивного режима в ядре. Устройство SLT. Реализация механизмов синхронизации в архитектуре «Эльбрус». |
2 |
|
12 |
Поддержка подсистемы памяти в архитеткуре «Эльбрус» |
Виртуальная память, особенности реализации дескриптора станицы. SMP и NUMA системы. Поддержка NUMA (Non Uniform Memory Access) в архитектуре E2K и в ядре Linux Производительность NUMA системы процессоров «Эльбрус». Оптимизация на уровне ядра: раздублирование исполняемого кода ядра Linux по узлам. Библиотека libnuma. Поддержка бинарного компилятора приложений в архитектуре «Эльбрус» и в ядре Linux. Вторичное пространство адресов. Системный вызов sys_el_binary. Устройство MLT (Memory Lock Table). Исключительная ситуация exc_mem_lock. Сохранение точки перезапуска. Использование механизма сигналов. Защищенный режим в архитектуре «Эльбрус».. Тэги. Поддержка защищенного режима в ядре Linux: реализация системных вызовов для защищенного режима, чистка глобальных указателей, откачка/подкачка тэгов. Библиотека libc для защищенного режима. Использование защищенного режима для отладки программ. Контрольные точки в ядре Linux. Алгоритмы создания контрольной точки и восстановления с контрольной точки. Быстрый старт ОС с контрольной точки. |
6 |
|
13 |
V Перспективы развития ядра ОС для архитектуры «Эльбрус» |
Перспективы развития Linux на базе архитектуры «Эльбрус». |
Переходы на новые версии ядра Linux. Использование бинарной трансляции для загрузки закрытых firmware модулей новых устройств. Возможности виртуализации. Управление энергопотреблением. |
2 |