Программа курса лекций (2 курс, 4 сем., 32 ч., экзамен) Ассистент Дмитрий Валентинович Иртегов Классификация операционных систем. Понятие приложения реального времени

Вид материалаПрограмма курса
Подобный материал:

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

Программа курса лекций
(2 курс, 4 сем., 32 ч., экзамен)


Ассистент Дмитрий Валентинович Иртегов
  1. Классификация операционных систем. Понятие приложения реального времени.
  2. Обзор архитектуры фон-неймановского процессора (на примере x86, SPARC). Режимы адресации: регистровый, литеральный, базовая, индексная и базово-индексная адресация, относительная адресация. Позиционно-независимый код. Ассемблер. Одно-, двух- и многопроходное ассемблирование. Таблица символов.
  3. Загрузка программ. Абсолютный загрузчик. Относительный загрузчик. Сборка программ. Редактор связей. Архивные библиотеки. Разделяемые библиотеки. Позиционно-независимые разделяемые библиотеки ELF. Загрузка операционной системы. Первичный, вторичный и последующие загрузчики. Процесс загрузки Windows NT. Процесс загрузки SunSoft Solaris.
  4. Управление памятью (открытая память). Статическое, динамическое и стековое распределение памяти. Внешняя и внутренняя фрагментация. Стратегии выделения памяти: первый подходящий, наиболее подходящий, наименее подходящий. Алгоритм парных меток. Алгоритм близнецов. Алгоритм GNU Malloc
  5. Виртуальная память. Базовая адресация. Сегментная и страничная виртуальная память. Уровни привилегий. Виртуальная память VAX. Виртуальная память x86. Виртуальная память SPARC v9. Страничный обмен. Поиск жертвы. Алгоритм LRU. Clock-алгоритм. Приближения к clock-алгоритму. Стратегия управления памятью в VAX/VMS и Windows NT.
  6. Внешние события. Опрос. Прерывания. Обзор многопроцессорных архитектур. Канальные процессоры. Симметричные многопроцессорные системы. NUMA-архитектуры.
  7. Параллелизм с точки зрения программиста. Постановка задачи. Понятие критической секции. Реентерабельные процедуры. Взаимоисключение. Примитивы взаимоисключения. Спинлоки. Семафоры Дейкстры. Мертвая и живая блокировки. Обзор стратегий избежания блокировок. Понятие транзакции. Мониторные процессы. Гармонически взаимодействующие процессы.
  8. Реализация параллелизма на однопроцессорном компьютере. Кооперативная многозадачность (сопрограммы). Вытесняющая многозадачность. Контекст процесса. Планировщик с приоритетами. Кооперативная и вытесняющая многозадачность внутри ядра (монолитное ядро и микроядро). Управляемая событиями архитектура.
  9. Подсистема ввода-вывода. Драйверы внешних устройств. Архитектура драйвера. Многоуровневые драйверы. Синхронный и асинхронный ввод/вывод. Опережающее чтение и отложенная запись. Дисковый кэш. Дисковая подсистема. RAID.
  10. Файловые системы. Понятия файла и каталога. Операции над файлами. Простые файловые системы (tar, RT-11). Сложные файловые системы (UFS, NTFS, HPFS). Жесткие и символические связи. Устойчивость файловой системы к сбоям. Восстановление файловых систем. Журнальные файловые системы.
  11. Вопросы безопасности. Аутентификация и авторизация. Аутентификация паролем. Обзор биометрических методов аутентификации. Криптографическая аутентификация. Полномочия. Setuid и другие механизмы смены идентичности. Списки управления доступом. Вырожденные списки управления доступом (кольца защиты). Троянские программы и защита от них.

Литература

    1. Баррон Д. Ассемблеры и загрузчики. — М.: Мир, 1974.
    2. Дейкстра Э. Дисциплина программирования. — М.: Мир, 1978.
    3. Дейтел Г. Введение в операционные системы. — М.: Мир, 1987.
    4. Кейслер С. Проектирование операционных систем для малых ЭВМ. — М.: Мир, 1986.
    5. Иртегов Д. Введение в операционные системы – Спб: БХВ-Санкт-Петербург, 2002
    6. Керниган Б., Пайк Р. Unix — универсальная среда программирования. — М.: Финансы и статистика, 1992.
    7. Кнут Д. Э. Искусство программирования. — Издательский дом Вильямс, 2000.
    8. Краковяк С. Основы организации и функционирования ОС ЭВМ. — М.: Мир, 1988.
    9. Робачевский А. Операционная система Unix. — СПб.: БХВ — Санкт–Петербург, 1999.
    10. Танненбаум А. Современные операционные системы – М: Вильямс, 2001
    11. Хевиленд К., Грэй Д., Салама Б. Системное программирование в UNIX. — М.: ДМК Пресс, 2000.
    12. Хоар Ч. Взаимодействующие последовательные процессы. — М.: "Мир", 1989.