
- •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. Лекция: Перспективы операционных систем и сетей
- •Ключевые термины
- •Краткие итоги
- •Набор для практики Вопросы
- •Упражнения
- •Темы для курсовых работ, рефератов, эссе
- •Заключение
Ключевые термины
PCI (Personal Computer Interface) – системная шина, используемая в персональных компьютерах, к которой подключены процессор, память и внешние устройства.
SCSI ID – номер SCSI-устройства в цепочке SCSI-устройств (от 0 до 9), устанавливаемый непосредственно на корпусе устройства специальным переключателем.
Буферизация – запись данных в память в процессе передачи между устройствами.
Буферизация вывода (spooling) – задержка вывода на устройство, с целью поддержания целостности информации, выводимой одним и тем же процессом.
Ввод-вывод с прямым доступом к памяти (Direct Memory Access – DMA) - эффективная схема организации ввода-вывода, основанная на использовании фрагмента основной памяти в качестве буфера устройства для выполнения ввода-вывода.
Вектор прерываний – резидентный массив, содержащий адреса обработчиков прерываний в операционной системе.
Виртуальный порт – реально в физическом воплощении не существующий порт, организуемый и инсталлируемый операционной системой для унификации обработки внешних устройств; как правило – коммуникационный порт с большим номером (COM10, COM15), используемый для обмена с устройствами беспроводной связи – например, мобильными телефонами и органайзерами.
Контроллер (host adapter) – специализированный микропроцессор для управления внешним устройством и портом.
Маскируемый (maskable) сигнал о прерывании – сигнал о прерывании, заблокированный с целью игнорирования или задержки прерывания.
Обработчик прерывания – модуль ядра ОС, осуществляющий обработку прерывания с заданным номером.
Опрос устройств – периодический анализ состояния каждого внешнего устройства, выполняемый операционной системой при обработке прерывания по таймеру.
Порт – контроллер и разъем (либо беспроводное устройство) для передачи данных между устройством ввода-вывода и компьютером.
Резервирование устройства – обеспечение операционной системой монопольного доступа пользовательских процессов к устройству ввода-вывода.
Сетевое соединение (network connection) – высокоуровневая концепция, абстракция сетевого устройства, поддерживаемая операционной системой для пользователя.
Цепочка (гирлянда) SCSI-устройств – физически соединенные друг с другом SCSI-устройства, подключенные к одному SCSI-порту и имеющие разные номера SCSI ID.
Цикл busy-wait – взаимодействие процессора с внешним устройством, при котором, если устройство занято, процесс ждет его освобождения.
Шина (bus) - цепочка устройств прямого доступа в компьютерной системе, через которую передается информация от одних устройств к другим.
Шлейф – широкий плоский кабель, используемый внутри корпуса компьютера для подсоединения дисков и оптических дисков к системной шине.
Краткие итоги
Набор устройств ввода-вывода весьма широк, он постоянно развивается и совершенствуется, значительно увеличивается быстродействие и емкость устройств.
В компьютерной системе каждое устройство ввода-вывода подключено к соответствующему порту. Устройство и порт имеют свои контроллеры – специализированные процессоры для управления ими. Процессор, память и внешние устройства в системе соединены общей системной шиной (наиболее распространена шина PCI). Каждое устройство имеет адрес, используемый командами непосредственного ввода-вывода и ввода-вывода, отображаемого в память.
ОС периодически, с помощью прерываний по таймеру, выполняет опрос всех внешних устройств – проверку их состояния. Возможные состояния: готово к выполнению команд, занято, ошибка.
Контроллер устройства по окончании ввода-вывода генерирует сигнал о прерывании, в результате управление получает обработчик прерывания – модуль ядра ОС. Указатели обработчиков всех видов прерываний собраны в резидентный массив – вектор прерываний.
Для оптимизации ввода-вывода используется прямой доступ к памяти (DMA) – метод организации ввода-вывода, при котором в качестве буфера устройства используется фрагмент основной памяти. Данный метод основан на использовании специальных DMA-контроллеров. DMA позволяет разгрузить процессор, освободив его от работы по пересылки данных для ввода-вывода.
В операционной системе API для ввода-вывода имеет иерархическую структуру. Системные вызовы – верхний уровень – инкапсулируют поведение устройств ввода-вывода. Более низкий уровень – драйверы устройств – скрывают различия между контроллерами устройств от ядра ОС.
Устройства ввода-вывода подразделяются на блочные и символьные, последовательного и произвольного доступа, резервируемое или разделяемое, только для чтения, для записи или для чтения-записи, и различаются по скоростям работы. Блочные устройства выполняют команды вида: прочитать, записать или найти блок с заданным номером. Символьные устройства выполняют команды вида: ввести символ, вывести символ, с программируемой возможностью построчного редактирования.
Сетевые устройства отличаются от блочных и символьных, имеют свой собственный интерфейс, поддерживают распространенные сетевые протоколы, реализуют функцию выбора сетевого пакета.
Часы и таймеры обеспечивают хранение информации о текущем времени, прошедшем интервале времени, периодические прерывания по таймеру.
Ввод-вывод подразделяется на синхронный и асинхронный. Первый проще для понимания, но менее эффективен. Второй более эффективен, но требует глубокого понимания и осторожности, чтобы избежать ошибок.
Основные действия ОС по управлению вводом-выводом: планирование работы устройств ввода-вывода; буферизация устройств; кэширование устройств; буферизация вывода (spooling); резервирование устройств и контроль отсутствия тупиков.
ОС обрабатывает ошибки ввода-вывода, поддерживает восстановление информации после чтения с диска, недоступности устройства, временных сбоев. Процессу возвращается код ошибки. В системных журналах фиксируется информация обо всех обнаруженных проблемах.
В ядре ОС хранится большое число сложных системных структур (очередей, таблиц, заголовков открытых файлов и др.) для управления вводом-выводом.
Производительность ввода-вывода улучшается при сокращении числа контекстных переключений, сокращении копирования данных, сокращении числа прерываний, использовании DMA, балансировке нагрузки на компоненты системы.