Онлайн-курс является упрощенной и укороченной версией курса ОС, читаемого в Академическом университете. Но несмотря на небольшую продолжительность курс довольно детально покрывает следующие темы:
управление памятью (разделение на физическую и логическую память, аппаратные средства организации логической памяти, алгоритмы аллокации)
планирование и многозадачность (вытесняющая и невытесняющая многозадачность, критерии планирования, переключение потоков управления)
средства синхронизации потоков (взаимное исключение, реализация примитивов взаимного исключения, дедлоки и средства борьбы с ними)
пространство пользователя и системные вызовы (реализации системных вызовов, структура исполняемого файла, запуск приложений)
Предполагается, что информации, данной в курсе, достаточно для написания простейшей многозадачной ОС, но так как проверять подобные задания в полностью автоматическим режиме довольно тяжело, то мы не будем просить вас это делать. Вместо этого по мере прохождения мы просто будем предоставлять вам доступ к исходным кодам, демонстрирующим информацию из курса на примере простейшей учебной ОС. Для того чтобы работать с примерами, вам понадобятся средства разработки GNU (компилятор языка С и компоновщик) и утилита make.
1 Введение
1.1 Введение
1.2 Язык ассемблера 1
1.3 Язык ассемблера 2
1.4 Прерывания
1.5 Загрузка ОС
2 Управление памятью
2.1 Физическая память
2.2 Логическая память
2.3 Сегментация
2.4 Страничная организация памяти
2.5 Простой подход к аллокации памяти
2.6 Buddy аллокатор
2.7 SLAB аллокатор
3 Планирование и многозадачность
3.1 Потоки исполнения и многопоточность
3.2 Переключение потоков
3.3 Кооперативная и вытесняющая многозадачности
3.4 Планирование и критерии планирования
3.5 Реалистичное планирование
4 Средства синхронизации потоков
4.1 Состояние гонки по данным и взаимное исключение
4.2 Взаимное исключение с использованием RW регистров, часть 1
4.3 Взаимное исключение с использованием RW регистров, часть 2
4.4 Взаимное исключение с использованием RMW регистров
4.5 Прочие примитивы синхронизации
4.6 Deadlock-и и средства борьбы с ними
5 Пространство пользователя
5.1 Исполняемые файлы и процессы
5.2 Динамические библиотеки
5.3 Системные вызовы
5.4 Средства управления процессами
5.5 Средства межпроцессного взаимодействия
операционные системы, управление памятью, многозадачность, язык ассемблера
Комментарии