
- •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.
Ресурсы для преподавателей выпущены также на компакт-диске.