Министерство образования и науки Российской Федерации Санкт-Петербургский государственный электротехнический университет “ЛЭТИ” РАБОЧАЯ ПРОГРАММА дисциплины ОПЕРАЦИОННЫЕ СИСТЕМЫ Для подготовки бакалавров по направлению 552800 – “Информатика и вычислительная техника” и дипломированных специалистов по направлению 654600 – “Информатика и вычислительная техника” по специальности 220100 – “Вычислительные машины, комплексы, системы и сети” Факультет Компьютерных технологий и информатики Кафедра Вычислительной техники Курс 3 Семестр 5 Лекции 48 ч. Экзамен семестр 5 Лабораторные 16 ч. Зачет семестр занятия 5 Аудиторные занятия 64 ч. Самостоятельные занятия 86 ч. Всего часов 150 ч. Рабочая программа составлена в соответствии с государственным образовательным стандартом по направлениям: 1. 552800 – “Информатика и вычислительная техника”; 2. 654600 – “Информатика и вычислительная техника” и специальности 220100 – “Вычислительные машины, комплексы, системы и сети”. Дисциплина "Операционные системы” преподается на основе ранее изученных дисциплин: 1) Организация ЭВМ; 2) Информатика. и является фундаментом для изучения последующих дисциплин: 1) Системное программное обеспечение. 2) Сети ЭВМ и телекоммуникации. АННОТАЦИЯ ДИСЦИПЛИНЫ Целью дисциплины "Операционные системы” является изучение назначения, функций и общих структурных решений построения операционных систем (ОС), углубленное изучение внутреннего устройства и алгоритмов работы основных компонентов современных операционных систем MS Windows 2000-2003, освоение функций системного программного интерфейса Win32 API и принципов разработки программ для ОС MS Windows. Дисциплина состоит из 5 теоретических разделов общей продолжительностью 48 лекционных часов, по которым выполняются 7 лабораторных работ (16 аудиторных часов). Самостоятельная работа по дисциплине предполагает изучение дополнительных разделов рекомендованного печатного учебно-методического обеспечения, а также индивидуальное освоение расширенных функции Win32 API, не вошедших в лабораторные работы. Итоговый контроль по дисциплине проводится в форме экзамена и преследует цель оценить полученные теоретические знания, умение интегрировать полученные знания и применять их к решению практических задач. Экзамен проводится по билетам в письменной форме с обязательным предварительным компьютерным тестированием. В случае если студент набирает по результатам тестирования (две попытки) менее 40 баллов по 100-бальной диагностической шкале, то он к письменной стадии экзамена не допускается и получает оценку «неудовлетворительно». Во время экзамена студенты не могут пользоваться справочной литературой и другими пособиями. Цель и задачи дисциплины: Целью курса является изучение студентами операционных систем (ОС) на примере MS Windows, освоение функций среды Win32 API и принципов разработки программ для ОС MS Windows . Требования к уровню освоения дисциплины В результате изучения дисциплины студенты должны: 1. ЗНАТЬ основные принципы организации операционных систем, архитектуру, внутреннее устройство и алгоритмы работы основных компонентов ОС MS Windows 2000-2003. 2. УМЕТЬ работать в среде Win32 API и писать системные программы на языке С/C++ в инструментальной среде Visual Studio. 3. ИМЕТЬ представление о принципах разработки системных программ для ОС Windows 2000. Содержание рабочей программы Введение Определение операционной системы (ОС). Назначение и функции ОС. Понятие процесса и потока. Мультипрограммирование и способы его организации. Классификация ОС. Классификация дисциплин обслуживания. Режим разделения времени. Многопользовательский режим работы. Режим работы и ОС реального времени. Универсальные ОС и ОС специального назначения. Многопроцессорный режим работы. Структура построения ОС и их переносимость. Этапы эволюции ОС. Раздел 1. Обзор ОС фирмы Microsoft. Тема 1. Развитие ОС MS Windows ОС MS DOS. ОС с “оконным” интерфейсом. Операционные системы ОС MS Windows 9*, Windows NT, Windows 2000-XP-2003. Программный интерфейс Win32 API. Тема 2. Архитектура ОС Windows 2000. Общая характеристика. Ядро и его функции. Менеджеры исполняющей подсистемы. Пользовательский режим. Особенности реализации архитектуры ОС Windows 2003. Функции Win32 API для получения информации о вычислительной системе. Раздел 2. Обеспечение безопасности в ОС Windows 2000. Тема 3. Безопасность объектов Дескриптор безопасности. Списки управления доступом к объектам. Функции Win32 API для работы со списками доступа. Тема 4. Безопасность пользователей Идентификатор безопасности. Функции Win32 API для работы с идентификаторами безопасности. Маркер доступа. Раздел 3. Файловые системы ОС фирмы Microsoft. Тема 5. Введение в файловые системы. Определение файловой системы (ФС). Файлы и их атрибуты. Структура каталогов. Логическая организация ФС. Логическая и физическая организация файлов. Защита ФС. Кэширование ФС. Общая модель ФС. Тема 6. Семейство файловых систем FAT. Физические и логические диски, кластеры, фрагментация. Таблица разделов логического диска. Структура логического диска FAT. Элемент каталога FAT16. Логическая организация данных. Факторы, определяющие размер FAT16. Развитие FAT16: VFAT, FAT32. Элемент каталога FAT32, хранение длинных имен. Сравнение FAT16 и FAT32. Тема 7. Работа с файлами в Windows API. Функции Win32 API для операций c файловой системой. Работа с томами. Работа с каталогами и файлами. Асинхронная работа с файлами. Тема 8. Файловая система NTFS. Организация дисковой памяти в NTFS. NTFS и архитектура Windows 2000. Физическая структура файловой системы NTFS. MFT и ее структура. Атрибуты файлов. Резидентное и нерезидентное хранение файлов. Сжатие файлов. Организация хранения каталогов. Механизмы защиты целостности данных NTFS. Безопасность в NTFS. Дополнительные возможности NTFS. Оптимизация NTFS. Сравнение NTFS и семейства FAT. Раздел 3. Управление памятью в Microsoft Windows 2000. Тема 9. Основы управления памятью. Методы распределения памяти без использования дискового пространства. Методы распределения памяти с использованием дискового пространства. Механизм реализации виртуальной памяти. Страничное распределение. Сегментное распределение. Странично-сегментное распределение. Защита памяти. Стратегия подкачки страниц (свопинга). Тема 10. Принципы построения и управления виртуальной памятью. Архитектура виртуальной памяти в Windows 2000. Менеджер виртуальной памяти. Адресное пространство процесса. Средства защиты от сбоев и несанкционированного доступа. Каталог страниц и свопинг. Страничное преобразование. Граф состояний страниц. Реализация свопинга. Тема 11. Организация «статической» виртуальной памяти. Работа приложений с виртуальной памятью, блоки (регионы) адресов. Функции Win32 API для работы виртуальной памятью. Управление страницами. Тема 12. Организация «динамической» виртуальной памяти. Динамически распределяемые области памяти («кучи»). Функции Win32 API для работы виртуальной памятью. Механизмы оптимизации приложений Win32 для работы с динамически распределяемыми областями памяти. Тема 13. Организация проецируемых файлов. Отображение (проецирование) файлов в память. Назначение механизма. Запуск EXE-файлов и DLL-библиотек. Совместное использование одной области данных несколькими процессами. Функции Win32 API для отображения (проецирования) файлов в память. Раздел 4. Управление процессорами и объединение ресурсов в Microsoft Windows 2000-2003. Тема 14. Управление процессорами. Объекты управления процессором в Windows 2000. Процессы и потоки, основные отличия. Структура контекста процесса; идентификатор и дескриптор процесса; иерархия процессов. Структура контекста потока. Задания и волокна. Тема 15. Планирование загрузки процессорного времени. Основные принципы. Квантование времени. Приоритетный режим обслуживания, очередь потоков. Адаптивное планирование. Алгоритм планировщика. Графы состояний потоков для Windows 2000 и Windows 2003. Тема 16. Функции API Win32 для управления процессами и потоками. Примитивы потоков. создания и уничтожения. Управление приоритетами. Управление выполнением Раздел 5. Межпроцессное взаимодействие. Тема 17. Предотвращение критических ситуаций и средства синхронизации процессов. Возникновение гонок (состязаний). Критические секции, условия исключения гонок. Семафоры. Задача о читателях-писателях. Мьютексы. Мониторы. Тема 18. Синхронизация потоков с использованием объектов ядра Windows 2000. Синхронизация потоков. Объекты синхронизации и их состояния. Понятие событийного программирования. События, ожидаемые таймеры, семафоры, мьютексы. Тема 19. Передача информации между процессами. Виды взаимодействия между процессами (IPC) в Windows 2000. Обмен информацией через сообщения. Анонимные и именованные каналы. Почтовые ящики. Сокеты. Заключение. Тенденции развития операционных систем. Лабораторные занятия Лабораторные занятия направлены на получение практических навыков использования функций Win32 API при построении системных приложений, реализующих отдельные функции операционных систем. Перечень лабораторных работ Номер темы программы Наименование работы № 1 Получение информации о ВС 2 2 Операции над каталогами и файлами 7 3 Операции над характеристиками файлов 7 4 Исследование виртуальной памяти 11 5 Исследование проецируемых файлов 13 6 Исследование процессов и потоков 16 7 Обмен информацией между процессами с использованием именованных каналов 19 Расчет учебных часов по темам и видам занятий № темы Название разделов и тем Введение Объем учебных часов 4 4 Лекции Семестр Лабор. Практ. Аудит. Самост. Всего занят. занят. занят. работа 2 6 5 1 4 5 5 4 6 10 5 Л1, Л2, Л3, Литература Д1, Д5 по темам Раздел 1. Обзор ОС фирмы Microsoft. 1 Развитие ОС MS Windows 1 2 Архитектура ОС Windows 2000 2 Раздел 2. 2 Л1, Л2, Д6, Д9 Д7, Д8, Д9 Обеспечение безопасности в ОС Windows 2000 3 Безопасность объектов 1 1 1 2 5 4 Безопасность пользователей 1 1 1 2 5 Д7, Д8, Д9 Д7, Д8, Д9 Раздел 3. Файловые системы ОС фирмы Microsoft 5 Введение в файловые системы 3 3 2 5 5 6 Семейство файловых систем FAT 3 3 3 6 5 7 Работа с файлами в Windows API 1 5 4 9 5 8 Файловая система NTFS 4 4 10 14 5 Основы управления памятью 3 3 5 8 5 Принципы построения и управления виртуальной памятью 2 2 5 7 5 4 Л1, Л2, Л3, Д1, Д5 Л1, Л2, Д5, Д7, Д8 Д2, Д6, Д10, Д11 Д5, Д6, Д7, Д8 Раздел 4. Управление памятью Microsoft Windows 2000 9 10 Л1, Л2, Л3, Д1, Д5 Д5, Д6, Д7, Д8 11 Организация «статической» виртуальной памяти 2 12 Организация «динамической» виртуальной памяти 2 13 Организация проецируемых файлов 2 2 4 4 4 8 5 2 4 6 5 6 4 10 5 Д5, Д6, Д7, Д8 Д5, Д6, Д7, Д8 Д5, Д6, Д7, Д8, Д11 Раздел 4. Управление процессором и объединение ресурсов в Microsoft Windows 2000-2003 14 Управление процессорами 3 3 5 8 5 15 Планирование загрузки процессорного времени 3 3 8 11 5 Функции API Win32 для управления процессами и потоками 2 16 Л1, Л2, Л3, Д1, Д5, Д6, Д7, Д8 Л1, Л2, Л3, Д5, Д6, Д7, Д8 2 4 4 8 5 Д2, Д10 Раздел 5. Межпроцессное взаимодействие 17 Предотвращение критических ситуаций и средства синхронизации процессов 2 3 4 7 5 Л1, Л2, Л3, Д1, Д5, Д6, Д7, Д8 18 19 Синхронизация потоков с использованием объектов ядра Windows 2000 3 Передача информации между процессами 3 Заключение 1 ИТОГО: 3 5 8 5 Л1, Л2, Л3, Д1, Д5, Д6, Д7, Д8 48 2 16 5 5 10 5 1 0 1 5 64 86 150 Учебно-методическое обеспечение дисциплины Основная литература Л1, Л2, Л3, Д1, Д5, Д6, Д7, Д8 Л1, Л2, Л3 № Л1 Л2 Л3 Название, библиографическо е описание Соловьев Г.Н. Операционные системы ЭВМ : Учеб. пособие / Г.Н. Соловьев, В.Д. Никитин. - М.: Высш.шк., 1989 Васькин П.И. Введение в ОС: Учеб.пособие/ П.И.Васькин, А.Ф.Губкин; ЛЭТИ. – Л.: ЛЭТИ, 1990. Губкин А.Ф. Операционные системы: Учеб.пособие/ А.Ф.Губкин; ЛЭТИ. – Л.: ЛЭТИ, 1996. Дополнительная литература Л Лр Пз Кп Инд. Зад. К-во экз. в библ. (на кафедре ) Гриф 34 МО 43 - 46 - № Д1 К-во экз. в библ. (на кафедре) Название, библиографическое описание Дейтел Г., Введение в операционные системы. М."Мир",1987. 6 Д2 Фролов А.В. Разработка приложений для Internet : Microsoft Visual C++ и MFC/ А.В. Фролов, Г.В. Фролов. – М.: Диалог-МИФИ, 1997. – 285 с. Д3 Хоулетт Ф. Семь ключей к изучению Windows NT/ Ф. Хоулетт; Пер. с англ. – СПб.:Пергамент, 1995. – 349 с. 1 Д4 Цикритизис Д., Бернстайн Ф., Операционные системы, М."Мир", 1977. - Д5 В.Г. Олифер, Н.А. Олифер, Сетевые операционные системы , Санкт-Петербург, изд-во "Питер Д6 Рихтер Дж. Windows для профессионалов. Программирование для Windows на базе Win32 API – М., 1997 Д7 Таненбаум Э. Современные операционные системы, СПб. Питер, 2003. Д8 Столлингс В. Операционные системы. “Вильямс”, 2002. Д9 Руссинович М., Соломон Д. Внутреннее устройство Microsoft Windows. Windows Server 2003, Windows XP и Windows 2000. Мастер-класс (4-е издание). Д10 Румянцев П.В. Азбука программирования в Win32 API. М., «Горячая линия – Телеком», 2001 Д11 Румянцев П.В. Работа с файлами в Win32 API. М., «Горячая линия – Телеком», 2000. 5 Электронные информационные ресурсы № Э1 Э2 Э3 Э̀4 Э5 Название (адрес в Интернет) http://ipm.kstu.ru/os/lec/index.php http://olddos.narod.ru/doc/comp/bsp/v26/ http://www.podgoretsky.com/ftp/Docs/Microsoft/MsWinBook1/mswb.htm http://www.citforum.ru/operating_systems/sos/contents.shtml http://os.kaf-i.kg/ Зав. отделом учебной литературы Киселева Т.В. Автор к.т.н., доцент Тимофеев А.В.