
- •1. Лекция: Понятие операционной системы (ос), цели ее работы. Классификация компьютерных систем
- •Введение
- •Комментарии к списку литературы
- •Краткое содержание курса
- •Почему важно знать операционные системы – мнение эксперта из Microsoft
- •Расцвет ос в 2000-х гг.
- •Ключевые термины
- •Краткие итоги
- •Набор для практики Вопросы
- •Темы для курсовых работ, рефератов, эссе
- •2. Лекция: История ос. Отечественные ос. Диалекты unix. Режимы пакетной обработки, мультипрограммирования, разделения времени
- •Ключевые термины
- •Краткие итоги
- •Набор для практики Вопросы
- •Темы для курсовых работ, рефератов, эссе
- •3. Лекция: Особенности ос для различных классов компьютерных систем. Ос реального времени. Ос для облачных вычислений
- •Введение
- •Особенности ос для персональных компьютеров
- •Параллельные компьютерные системы и особенности их ос.
- •Симметричные и асимметричные мультипроцессорные системы
- •Ключевые термины
- •Краткие итоги
- •Набор для практики Вопросы
- •Упражнения
- •Темы для курсовых работ, рефератов, эссе
- •4. Лекция: Архитектура компьютерной системы
- •Содержание
- •Введение
- •Архитектура компьютерной системы
- •Аппаратная защита адресов памяти в системах с теговой архитектурой
- •Организация аппаратной защиты памяти и процессора
- •Ключевые термины
- •Краткие итоги
- •Набор для практики Вопросы
- •Упражнения
- •Темы для курсовых работ, рефератов, эссе
- •5. Лекция: Архитектура ос. Управление процессами: Основные понятия. Семафоры и мониторы
- •6. Лекция: Обзор функций ос: управление памятью, файлами, процессами, сетями, командными интерпретаторами, сервисы ос, системные вызовы. Уровни абстракции ос. Архитектура unix и ms-dos
- •Краткие итоги
- •Набор для практики Вопросы
- •Упражнения
- •Темы для курсовых работ, рефератов, эссе
- •7. Лекция: Уровни абстракции ос. Ос с архитектурой микроядра. Виртуальные машины. Цели проектирования и разработки ос. Генерация ос
- •Механизмы и политики
- •Реализация операционных систем
- •Генерация операционной системы
- •Ключевые термины
- •Краткие итоги
- •Набор для практики Вопросы
- •Упражнения
- •Темы для курсовых работ, рефератов, эссе
- •8. Лекция: Управление процессами. Планирование и диспетчеризация процессов
- •Ключевые термины
- •Краткие итоги
- •Набор для практики Вопросы
- •Упражнения
- •Темы для курсовых работ, рефератов, эссе
- •9. Лекция: Методы взаимодействия процессов
- •Ключевые термины
- •Краткие итоги
- •Набор для практики Вопросы
- •Упражнения
- •Темы для курсовых работ, рефератов, эссе
- •10. Лекция: Потоки (threads) и многопоточное выполнение программ (multi-threading)
- •Потоки в Windows 2000
- •Потоки в Linux
- •Потоки в Java
- •Ключевые термины
- •Краткие итоги
- •Набор для практики Вопросы
- •Упражнения
- •Темы для курсовых работ, рефератов, эссе
- •11. Лекция: Стратегии и критерии диспетчеризации процессов
- •Краткие итоги
- •Набор для практики Вопросы
- •Упражнения
- •Темы для курсовых работ, рефератов, эссе
- •12. Лекция: Методы синхронизации процессов
- •Алгоритм решения проблемы критической секции
- •Алгоритм булочной (bakery algorithm)
- •Синхронизация на основе аппаратной поддержки атомарных операций
- •Синхронизация на основе общих семафоров
- •Реализация семафоров
- •Краткие итоги
- •Набор для практики Вопросы
- •Упражнения
- •Темы для курсовых работ, рефератов, эссе
- •13. Лекция: Тупики (deadlocks), методы предотвращения и обнаружения тупиков
- •Ключевые термины
- •Краткие итоги
- •Набор для практики Вопросы
- •Упражнения
- •Темы для курсовых работ, рефератов, эссе
- •14. Лекция: Алгоритм банкира
- •Методы обнаружения тупиков
- •Граф wait-for
- •Обнаружение тупиков для случая ресурсов с множественными экземплярами
- •Алгоритм обнаружения тупиков
- •Пример применения алгоритма обнаружения тупиков
- •Использование алгоритма обнаружения тупиков
- •Восстановление после тупика
- •Комбинированный подход к обработке тупиков
- •Ключевые термины
- •Краткие итоги
- •Вопросы
- •Упражнения
- •Темы для курсовых работ, рефератов, эссе
- •15. Лекция: Управление памятью
- •Краткие итоги
- •Набор для практики Вопросы
- •Упражнения
- •Темы для курсовых работ, рефератов, эссе
- •16. Лекция: Страничная организация памяти
- •Хешированные таблицы страниц
- •Инвертированные таблицы страниц
- •Разделяемые страницы
- •Ключевые термины
- •Краткие итоги
- •Набор для практики Вопросы
- •Упражнения
- •Темы для курсовых работ, рефератов, эссе
- •17. Лекция: Сегментная организация памяти
- •Пример сегментной организации памяти
- •Пример использования разделяемых сегментов
- •Сегментно-страничная организация памяти в системах multics и "Эльбрус"
- •Сегментно-страничная организация памяти в системе Intel 386
- •Ключевые термины
- •Краткие итоги
- •Набор для практики Вопросы
- •Упражнения
- •Темы для курсовых работ, рефератов, эссе
- •18. Лекция: Виртуальная память
- •Страничная организация в Solaris
- •Ключевые термины
- •Краткие итоги
- •Набор для практики Вопросы
- •Упражнения
- •Темы для курсовых работ, рефератов, эссе
- •19. Лекция: Системы файлов
- •Ключевые термины
- •Краткие итоги
- •Набор для практики Вопросы
- •Упражнения
- •Темы для курсовых работ, рефератов, эссе
- •20. Лекция: Виртуальные файловые системы (vfs). Реализации файловых систем. Сетевая файловая система nfs
- •Ключевые термины
- •Краткие итоги
- •Набор для практики Вопросы
- •Упражнения
- •Темы для курсовых работ, рефератов, эссе
- •21. Лекция: Системы ввода-вывода
- •Ключевые термины
- •Краткие итоги
- •Набор для практики Вопросы
- •Упражнения
- •Темы для курсовых работ, рефератов, эссе
- •22. Лекция: Сети и сетевые структуры
- •Краткие итоги
- •Набор для практики Вопросы
- •Упражнения
- •Темы для курсовых работ, рефератов, эссе
- •23. Лекция: Классические и современные сетевые коммуникационные протоколы
- •Ключевые термины
- •Краткие итоги
- •Набор для практики Вопросы
- •Упражнения
- •Темы для курсовых работ, рефератов, эссе
- •24. Лекция: Безопасность операционных систем и сетей. Trustworthy Computing
- •Ключевые термины
- •Краткие итоги
- •Набор для практики Вопросы
- •Упражнения
- •Темы для курсовых работ, рефератов, эссе
- •25. Лекция: Обзор архитектуры и возможностей системы Linux: архитектура, ядро, распространение и лицензирование, принципы проектирования, управление процессами
- •Планирование задач ядра и синхронизация в ядре
- •Ключевые термины
- •Краткие итоги
- •Набор для практики Вопросы
- •Упражнения
- •Темы для курсовых работ, рефератов, эссе
- •26. Лекция: Обзор архитектуры и возможностей системы Linux: управление памятью, ресурсами, файловые системы, драйверы устройств, сети, безопасность
- •Ключевые термины
- •Краткие итоги
- •Набор для практики Вопросы
- •Упражнения
- •Темы для курсовых работ, рефератов, эссе
- •27. Лекция: Обзор архитектуры и возможностей систем Windows 2000/xp/2003/Vista/2008/7
- •Подсистемы окружения в Windows 2000
- •Ключевые термины
- •Краткие итоги
- •Набор для практики Вопросы
- •Упражнения
- •Темы для курсовых работ, рефератов, эссе
- •28. Лекция: Системные механизмы Windows
- •Краткие итоги
- •Набор для практики Вопросы
- •Упражнения
- •Темы для курсовых работ, рефератов, эссе
- •29. Лекция: Академическая программа Microsoft Shared Source Initiative. Открытое ядро Windows для изучения и исследований (Windows Research Kernel)
- •Пакет учебных ресурсов crk
- •Исследовательское ядро Windows Research Kernel
- •Проект ProjectOz
- •Контактная информация и ссылки
- •Ключевые термины
- •Краткие итоги
- •Набор для практики Вопросы
- •Упражнения
- •Темы для курсовых работ, рефератов, эссе
- •30. Лекция: ос для мобильных устройств. Windows Mobile
- •Перспективы ос для мобильных устройств
- •Ключевые термины
- •Краткие итоги
- •Набор для практики Вопросы
- •Упражнения
- •Темы для курсовых работ, рефератов, эссе
- •31. Лекция: ос для облачных вычислений (cloud computing). Windows Azure
- •Ключевые термины
- •Краткие итоги
- •Набор для практики Вопросы
- •Упражнения
- •Темы для курсовых работ, рефератов, эссе
- •32. Лекция: Перспективы операционных систем и сетей
- •Ключевые термины
- •Краткие итоги
- •Набор для практики Вопросы
- •Упражнения
- •Темы для курсовых работ, рефератов, эссе
- •Заключение
Ключевые термины
3G – мобильная связь третьего поколения на основе стандартов CDMA и UMTS (быстродействием до 14 МБит / с).
4G – новое поколение мобильных сетей связи со скоростью передачи до 1 ГБит / с, обеспечивающих также повышенное качество голосовой связи.
HP-UX – операционная UNIX-совместимая операционная система фирмы Hewlett-Packard.
MacOS – операционная система фирмы Apple, обеспечивающая удобный графический пользовательский интерфейс.
Midori – исследовательская ОС фирмы Microsoft Research, реализованная на управляемом коде.
MPI (Message Passing Interface) – стандарт параллельного выполнения программ, взаимодействующих с помощью передачи сообщений.
OpenMP - механизм и стандарт распараллеливания программ путем указания специальных прагматыов для компиляторов.
Solaris – операционная система фирмы Oracle / Sun.
Краткие итоги
Операционные системы, кроме Windows и Linux, подробно рассмотренных в курсе, разрабатываются многими другими крупными фирмами: IBM (z/OS); Apple (MacOS); Oracle / Sun (Solaris); Hewlett-Packard (HP-UX); Novell (NetWare – сетевая ОС).
ОС Solaris – UNIX-подобная система, работающая на платформах SPARC и x86. Ее наиболее важные возможности – семейство оптимизирующих компиляторов Sun Studio; отладчик распределенных приложений DTrace; файловая система ZFS с поддержкой файлов очень большого объема и криптованием информации; развитая поддержка многопоточности и симметричного мультипроцессирования. Используемые графические оболочки: CDE, KDE, GNOME, Java Desktop. Академический проект OpenSolaris обеспечивает доступ к исходному коду Solaris с исследовательскими и учебными целями.
MacOS – ОС фирмы Apple, работающая на компьютерах Macintosh. Она характеризуется развитым GUI (ОС без командной строки). Ее диалекты – Classic Mac OS (фирмы Apple) и MacOS X – гибрид классической MacOS и ОС типа UNIX.
HP-UX – UNIX-подобная ОС фирмы Hewlett-Packard. Ее особенность – использование виртуальной файловой системы Vx-Fs (см. "Виртуальные файловые системы (VFS). Реализации файловых систем. Сетевая файловая система NFS").
Современные тенденции в развитии ОС: Графические оболочки (для всех ОС примерно одинаковы по возможностям); Поддержка новых сетевых технологий и Web-технологий; Усиленное внимание к механизмам безопасности и защиты; Поддержка многопоточности; Поддержка многоядерных процессоров; Поддержка распределенных и параллельных вычислений; Виртуализация ресурсов и аппаратуры; Развитие файловых систем с целью защиты информации и значительного увеличения размера файлов (для мультимедиа); Поддержка облачных вычислений.
Новые ОС семейства Windows – Windows Vista, Windows Server 2008, Windows 7. В лекции приведено краткое описание их новых возможностей в части GUI, поддержки сетей, безопасности и др.
Проект Midori – проект Microsoft Research по разработке исследовательской ОС на управляемом коде (с повышенной надежностью). На управляемом коде написаны даже ядро и драйверы. Midori – Интернет-ориентированная ОС, которая в будущем может стать основой для развития нового семейства ОС фирмы Microsoft.
Каждая ОС имеет графическую оболочку, основные возможности которой следующие: Удобный графический пользовательский интерфейс; Возможность выполнить любые системные настройки с помощью GUI; Поддержка новых тенденций в развитии интерфейсов – multi-touch, Tablet PC и др. Имеется тенденция к унификации графических оболочек для различных ОС (CDE, KDE, GNOME). Однако, на наш взгляд. изучение и использование только графических оболочек ОС для системных программистов недостаточно. Необходимы хорошие знания командных языков и конфигурационных файлов.
Современные ОС поддерживают параллельные вычисления. Например, новые версии Windows поддерживают стандарты параллельных вычислений OpenMP и MPI. Microsoft выпустила специальную ОС для поддержки параллельных вычислений – Windows 2008 HPC.
Развиваются беспроводные сети: Wi-MAX, 3G, 4G. Также используются цифровые телевизионные каналы как способ подключения к Интернету. Это находит отражение и в ОС.
Перспективы развития ОС: Тенденция к интеграции ОС (не только на уровне графических оболочек, но и на уровне общего ядра); развитие семейств ОС на основе модулей общего кода; Значительное повышение надежности, безопасности и отказоустойчивости ОС; разработка ОС на управляемом коде или его аналогах; Дальнейшая тенденция к проектам по ОС с открытым кодом (необходимы новые идеи – отличная возможность для молодых программистов); Развитие виртуализации: Необходимо обеспечить возможность выполнить или эмулировать любое приложение в среде любой современной ОС; Дальнейшее сближение по возможностям ОС для настольных компьютеров и ОС для мобильных устройств; Дальнейшая интеграция ОС и сетей; Перенос ОС и базовых инструментов в среды для облачных вычислений.
ОС остаются активно развивающимся направлением, одним из наиболее интересных в области системного программирования.