
- •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. Лекция: Перспективы операционных систем и сетей
- •Ключевые термины
- •Краткие итоги
- •Набор для практики Вопросы
- •Упражнения
- •Темы для курсовых работ, рефератов, эссе
- •Заключение
Ключевые термины
Send – операция отправки сообщения другому процессу.
Receive – операция получения сообщения от другого процесса.
Взаимодействующий (совместный) процесс – процесс, который может влиять на исполнение других процессов или испытывать их влияние.
Выстраивание (marshaling) – механизм преобразования параметров удаленной процедуры (метода) для их передаче по сети в виде последовательного потока.
Косвенная коммуникация (indirect communication) – способ взаимодействия процессов с помощью сообщений, при котором сообщения направляются и получаются через почтовые ящики, или порты.
Независимый процесс – процесс, никак не связанный с другими процессами, который не может влиять на исполнение других процессов или испытывать их влияние.
Непосредственная коммуникация (direct communication) – способ взаимодействия процессов с помощью сообщений, при котором они именуют друг друга явно – по именам или по адресам (указателям), которые указываются в вызовах коммуникационных примитивов.
Очередь сообщений (message queue) – системная структура (буфер) для хранения сообщений между процессами.
Переполнение буфера (buffer overrun) – ошибочное или преднамеренное превышения размера буфера, которое может привести к обращению в чужую область памяти и используется для внешних атак.
Подчиненный процесс – процесс, зависящий от процесса-родителя; уничтожается при уничтожении родительского процесса; процесс-родитель перед своим завершением должен ожидать завершения всех своих подчиненных процессов.
Почтовый ящик (порт) – системная структура, предназначенные для приема, хранения и передачи сообщений.
Производитель – потребитель (producer – consumer) - парадигма взаимодействия процессов, при которой процесс-производитель (producer) генерирует в некотором буфере информацию, которая используется процессом-потребителем (consumer).
Рандеву (rendezvous) – механизм коммуникации процессов, при котором оба процесса приостанавливаются до момента окончания передачи сообщения.
Сокет (socket) – метод клиент-серверного сетевого взаимодействия процессов, при котором информация передается через последовательный поток через порт с определенным номером.
Сопроцесс (coprocess, coroutine) – процесс, равноправно взаимодействующий с другими такими же процессами по управлению с помощью операций типа resume (Q), возобновляющих приостановленный процесс. Переходит в завершенное состояние операцией detach.
Удаленный вызов метода (Remote Method Invocation – RMI) – разработанный фирмой Sun объектно-ориентированный механизм Java-технологии для вызова метода Java на другом компьютере сети, аналогичный удаленному вызову процедуры.
Удаленный вызов процедуры (Remote Procedure Call – RPC) – разработанный фирмой Sun механизм вызова процедуры на другом компьютере локальной сети с использованием процедур-заглушек на клиенте и на сервере, передающих информацию и выстраивающих параметры и результат удаленной процедуры.
Краткие итоги
Процессы могут быть независимыми друг от друга и взаимодействующими. Преимущества взаимодействующих процессов – совместное использование данных, модульность, ускорение вычислений.
Дочерний процесс по отношению к процессу-родителю может быть подчиненным (зависящим от родителя), независимым, либо сопроцессом. Сопроцессы – равноправная группа процессов, взаимодействующая между собой операторами явного переключения управления.
Парадигма производитель – потребитель – классическая схема взаимодействия процессов: производитель генерирует информационные элементы в буфере, а потребитель использует их и удаляет из буфера. Буфер может быть неограниченным или иметь ограниченную длину.
Коммуникация процессов может осуществляться с помощью сообщений. Коммуникация бывает непосредственная (с явным указанием адресов или имен процессов-адресатов) и косвенная (через почтовые ящики).
При анализе коммуникации процессов весьма важны способ установления связи, число связей между двумя процессами, пропускная способность линии связи, длина сообщений, ненаправленный или двунаправленный (дуплексный) характер связи.
При косвенной связи могут возникнуть проблемы с недетерминизмом при получении сообщений, если несколько процессов используют общий почтовый ящик.
При коммуникации передача сообщений может быть синхронной (с блокировкой) или асинхронной (без блокировки).
С коммуникационной линией связывается очередь сообщений, которая может иметь нулевую длину (процессы взаимодействуют через механизм рандеву), ограниченную или теоретически неограниченную длину.
Основные виды клиент-серверной коммуникации процессов – сокеты, удаленные вызовы процедур и методов.
Сокеты, предназначены для взаимодействия между клиентом и сервером в сетях TCP/IP через порт с определенным номером, при котором информация передается через последовательные потоки.
Удаленный вызов процедуры позволяет вызвать процедуру на другом компьютере локальной сети с использованием процедур-заглушек. осуществляющих выстраивание и передачу параметров и результатов.
Удаленный вызов метода – объектно-ориентированный механизм Java-технологии, аналогичный удаленному вызову процедуры.