 
        
        - •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. Лекция: Перспективы операционных систем и сетей
- •Ключевые термины
- •Краткие итоги
- •Набор для практики Вопросы
- •Упражнения
- •Темы для курсовых работ, рефератов, эссе
- •Заключение
Набор для практики Вопросы
- Что такое NTFS? 
- Что такое том и как он может размещаться на логических дисках? 
- Что такое кластер и каков его размер? 
- Что такое logical cluster numbers и как они используются в системе? 
- Что такое Master File Table? 
- Какие возможности обеспечивает транзакционный механизм NTFS? 
- Какие объекты используются для управления безопасностью файлов? 
- Какие возможности обеспечивает утилита FtDisk? 
- Что такое stripe set? 
- Что такое stripe set with parity? 
- Что такое mirror set? 
- Какие протоколы поддерживает сетевой механизм Windows? 
- Как организовано разрешение сетевых имен в Windows? 
- Что такое WinSock? 
- Что такое RPC? 
- Что такое именованный конвейер? 
- Что такое mail-слот? 
- Что такое сетевой домен? 
- Что такое redirector? 
- Каким образом и с помощью какого драйвера выполняется доступ к удаленному файлу? 
- Какие системные функции используются для управления системными объектами? 
- Какие функции используются для создания процесса и потока? 
- Что такое волокно и каким образом организуется параллельное выполнение с использованием волокон? 
- Какие классы процессов выделяются системой планирования Windows? 
- Каким образом изменяется квант времени диалогового процесса, если его элемент GUI выбран на экране? 
- Какие методы синхронизации используются для объектов ядра? 
- Какие функции используются для управления виртуальной памятью? 
- Каким образом два процесса могут использовать общую область виртуальной памяти? 
- Какие области физической памяти выделяются системой для каждого потока? 
- Что такое рабочий набор процесса? 
- Что такое системный рабочий набор? 
- Каким образом изменяется рабочий набор при достижении верхнего предела его размера? 
- Какие списки страниц используются системой? 
Упражнения
- Разработайте программу визуализации системных структур, используемых для представления файлов в системе NTFS. 
- Используя утилиту PerfMon, изучите и опишите механизм управления рабочими наборами страниц в Windows. 
- Организуйте сетевой домен для своей домашней или офисной локальной сети под управлением Windows. 
Темы для курсовых работ, рефератов, эссе
- Обзор архитектуры файловой системы NTFS и ее сравнение с другими системами (реферат). 
- Обзор сетевой подсистемы Windows и поддерживаемых ею сетевых протоколов (реферат). 
- Обзор программного интерфейса Windows для управления объектамси, процессами, памятью (реферат). 
- Обзор механизмов управления рабочими наборами страниц в Windows (реферат). 
- Разработка программы визуализации системных структур, используемых для представления файлов в системе NTFS (курсовая работа). 
- Изучение с помощью утилиты PerfMon и разработка подробного описания механизма управления рабочими наборами страниц в Windows (курсовая работа). 
29. Лекция: Академическая программа Microsoft Shared Source Initiative. Открытое ядро Windows для изучения и исследований (Windows Research Kernel)
В лекции рассмотрены следующие вопросы: академическая программа Windows (WAP); исследовательское ядро Windows с открытыми исходными кодами (WRK); комплект учебных материалов по Windows фирмы Microsoft (CRK); проект Oz по созданию исследовательских ОС на базе WRK.
Содержание
- Введение 
- Академическая программа Microsoft Shared Source Initiative 
- Портал Codeplex 
- Академическая программа Microsoft Windows Academic Program 
- Компоненты академической программы Windows 
- Пакет учебных ресурсов CRK 
- Исследовательское ядро Windows Research Kernel 
- Проект ProjectOZ 
- Контактная информация и ссылки 
- Ключевые термины 
- Краткие итоги 
- Набор для практики - Вопросы 
- Упражнения 
- Темы для курсовых работ, рефератов, эссе 
 
Введение
При подготовке данной и предыдущей лекций были использованы презентации докладов коллег из Microsoft Redmond Дейва Проберта и Аркадия Ретика на семинаре по операционным системам в Политехническом университете, Санкт-Петербург, октябрь 2007 г. Автор благодарен коллегам за любезно предоставленные материалы. Содержание данной лекции – академические программы Microsoft по операционным системам, открытым исходным кодам и их использование в преподавании и обучении.
Академическая программа Microsoft Shared Source Initiative
Программа Shared Source Initiative (SSI) — это организационная структура, целью которой является предоставление доступа к исходным кодам продуктов Microsoft для преподавания и исследований. Программа SSI включает в себя технологии и лицензии для частных лиц и организаций.
Программа Microsoft Shared Source Initiative решает несколько важных задач:
- Поддержка заказчиков путем предоставления им возможности упростить разработку собственных приложений, повысить самостоятельность в решении задач и усовершенствовать тестирование систем безопасности; 
- Создание новых возможностей для партнеров Майкрософт по разработке привлекательных решений и услуг, при одновременном уменьшении затрат и обеспечении ускоренного выхода на рынок; 
- Стимулирование новых разработок и разработчиков предоставлением инструментов, сервисных программ и базовых технологий, что позволит изучать и реализовывать новаторские идеи на базе технологий Майкрософт. 
- Содействие обучению и исследованиям благодаря предоставлению учащимся, преподавателям и исследователям передовых технологий для использования на занятиях и в академических публикациях. 
Отметим принципиальное отличие подхода Shared Source от Open Source: открытый исходный код в статусе Shared Source (в отличие от open source - продуктов, для которых подчас никто не отвечает ни за качество кода, ни за его развитие и изучение) имеет кураторов со стороны фирмы, которая предоставила открытый исходный код (в данном случае – Microsoft). Они отвечают на вопросы и дают консультации и рекомендации, что просто бесценно для академических разработчиков и преподавателей. По личному опыту автора, образец такой поддержки для программы SSCLI (Rotor) фирма Microsoft продемонстрировала с 2002 г., когда на сотни писем с вопросами в почтовой рассылке Rotor следовал незамедлительный, четкий и понятный ответ специалистов Microsoft.
За пять лет с момента запуска программы SSI Майкрософт перешла от преимущественного предоставления исходного кода на выборочной основе к публичному предоставлению. Были выпущены три проекта Майкрософт на условиях лицензирования ПО с открытым исходным кодом. Теперь корпорация приступила к совместному использованию кода, о чем свидетельствует создание портала CodePlex (http://www.codeplex.com) и многочисленные проекты Майкрософт на условиях лицензий Microsoft Shared Source.
Основные вехи истории программы Shared Source Initiative:
- Май 2001 г. Запуск SSI. Выпущены в статусе Shared Source продукты: Enterprise SLP (для Windows); Shared Source4 Common Language Infractructure, или Rotor (академическая версия .NET); первые версии Windows CE Shared Source Starter Kit и ASP.NET Starter Kit. Автор курса участвует в академической программе SSCLI / Rotor с 2002 г. 
- Апрель 2004 г. Выпущен набор открытых инсталляторов Windows Installer XML (WiX), - первый из трех проектов в рамках программы, ставших доступными на веб-узле SourceForge на условиях обычной публичной лицензии. 
- Октябрь 2005 г. Опубликованы образцы лицензий SSI (Microsoft Reference License, Microsoft Community License, Microsoft Permissive License). Текст лицензий ясен, изложен легким для понимания языком и невелик по объему (каждая лицензия - не более страницы), что облегчает понимание условий лицензирования. 
- Июнь 2006 г. Открыт сайт CodePlex — портал Майкрософт для формирования интерактивного сообщества и выполнения совместных проектов по разработке программного обеспечения. В портале размещены проекты Майкрософт и сообщества. Автор курса со своей командой участвует в проектах, опубликованных на сайте CodePlex: в 2009 г. на нем опубликованы результаты нашего совместного проекта с Microsoft – Parallel Dwarfs (http://paralleldwarfs.codeplex.com) по реализации параллельных алгоритмов решения классических задач прикладной математики на основе новейших технологий параллельного программирования Microsoft. 
Дополнительные сведения о SSI можно найти на веб-узле www.microsoft.com/sharedsource.
Портал Codeplex
Сайт CodePlex является одним из расширений программы Microsoft Shared Source Initiative и предоставляет разработчикам портал сетевого сообщества для инновационной деятельности и активного участия в совместных проектах по разработке программного обеспечения.
Портал CodePlex создан на базе Visual Studio Team Foundation Server.
Каких-либо лицензионных ограничений не существует; разработчики в полной мере вольны выбирать тип лицензии, наилучшим образом отвечающий их потребностям.
Более 1000 проектов; приблизительно 10% являются проектами Майкрософт, остальные были предложены сообществом.
Дополнительные сведения о CodePlex доступны на веб-узле www.codeplex.com.
Приведем цитату по поводу CodePlex из википедии - свободной Web-энциклопедии:
"CodePlex — это веб-узел корпорации Майкрософт, размещающий проект открытого исходного кода. Он предназначен для совместной разработки программных проектов с открытым исходным кодом. Его функциональные возможности включают вики-страницы, управление источниками на базе Team Foundation Server, дискуссионные форумы, отслеживание проблем, разметку проектов, поддержку RSS, статистику и релизы".
Академическая программа Microsoft Windows Academic Program
Академическая программа Windows (WAP) – это уникальная программа, организованная фирмой Microsoft для изучения на основе открытых исходных кодов операционных систем семейства Windows, включая как новейшие ОС типа Windows NT / 2000 / 2003 / 2008 / Vista / 7, так и версии Windows для встроенных систем (Windows Embedded). Еще 10 лет назад трудно было даже представить, что Microsoft предпримет столь беспрецедентный шаг – откроет "святую святых" – исходный код ядра Windows. Ныне, в течение нескольких лет, это оказалось возможным. Поэтому у студентов, аспирантов, преподавателей и исследователей есть, без преувеличения, уникальный шанс изучить Windows "изнутри" и тем самым получить полное практическое представление об организации современной ОС.
Целm программы WAP, сформулированная фирмой Microsoft, - способствовать повышению интереса к исследованиям и преподаванию базовой операционной системы. Как отмечает Дейв Проберт, менеджер по разработке Windows, ныне Microsoft необходимы новые свежие идеи по разработке ОС. Очень важен также интерес к ОС студентов, так как именно в предмете операционных систем воплотилось сочетание изучения математических методов, методов информатики и практической программной инженерии – архитектуры и механизмов сложнейшего программного продукта – современной операционной системы.
В результате программы WAP корпорация Майкрософт получит лучше подготовленных пользователей, партнеров, а некоторые из них, возможно, станут сотрудниками Microsoft. Очень важны для Microsoft фундаментальные новаторские разработки ОС, а также возможность расширить использование Windows в образовании.
Мотивация студентов, аспирантов и преподавателей, особенно молодежи, для участия в программе WAP вполне понятна. Обсудим лишь некоторые ее аспекты:
- Научная любознательность – приведены примеры типичных высказываний: - "Хотелось бы понять, почему Windows пользуется таким успехом... 
- "Отличается ли коммерческое ПО от ПО с открытым исходным кодом?" 
- "Было бы интересно сравнить Windows с другими ОС" 
 
- Карьерные устремления: - "Хочу получить хорошую работу по завершении учебы". 
- "Я хочу работать на корпорацию Майкрософт". 
 
- Хобби: - "Хочу разработать более совершенную игру..." 
- "Хотелось бы узнать побольше..." 
 
Компоненты академической программы Windows
Программа WAP предлагает академическим участникам следующие компоненты:
Пакет Windows Operating Systems Internals Curriculum Resource Kit (CRK) — презентации, эксперименты, лабораторные работы, тесты и задания для включения учебных примеров по ядру Windows в учебные курсы по операционным системам. Доступен на академическом сайте Microsoft.
Windows Research Kernel — основные исходные коды ядра, аннотированные подробными комментариями, и двоичные файлы, интегрированные со средой для создания и тестирования экспериментальных версий ядра Windows в целях обучения и исследования. Книга об архитектуре Windows типа NT, являющаяся частью WRK, содержит более 40 спецификаций. WRK доступен на академическом сайте Microsoft.
ProjectOZ — проект создания среды операционных систем с использованием встроенных интерфейсов ядра Windows для выполнения в пользовательском режиме простых и ясных абстракций процессора, диспетчера памяти, механизма ловушек и физической памяти, которые могли бы применяться в экспериментах, связанных с исследованием принципов работы операционных систем.
Все указанные компоненты программы WAP доступны на сайте www.microsoft.com/WindowsAcademic.
Ресурсы для преподавателей выпущены также на компакт-диске.
