Правительство Российской Федерации Государственное образовательное бюджетное учреждение высшего профессионального образования ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ВЫСШАЯ ШКОЛА ЭКОНОМИКИ ПЕРМСКИЙ ФИЛИАЛ Программа дисциплины «Операционные среды, системы и оболочки» для направления 080700.62 – Бизнес-информатика Утверждена Учебно-методическим Советом ПФ ГУ-ВШЭ Одобрена на заседании кафедры Информационных технологии в бизнесе протокол _______________________________ Председатель_______________Володина Г.Е. Зав. кафедрой_______________Казаченко Т.А. «_______»_________________________2010 г. «______»__________________________2010 г. Пермь 2010 I. Обязательный минимум содержания дисциплины по ГОС ОПД.Ф.04 Операционные среды, системы и оболочки Принципы построения операционных систем (ОС), вычислительный процесс и его реализация с помощью ОС; основные функции ОС; обзор современных ОС и операционных оболочек; стандартные сервисные программы; машинно-зависимые свойства ОС; управление вычислительными процессами, вводом-выводом, реальной памятью; управление виртуальной памятью; машинно-независимые свойства ОС; способы планирования заданий пользователей; динамические последовательные и параллельные структуры программ; способы построения ОС; сохранность и защита программных систем; интерфейсы и основные стандарты в области системного программного обеспечения. II. Пояснительная записка 1. Авторы программы: Лядова Л.Н. (к. ф.-м. н., доцент), А.Х. Шелепаева (к.п.н., Med). 2. Требования к студентам: Приступая к изучению данной дисциплины, студент должен обладать знаниями информатики в объеме учебных курсов «Информатика и программирование» и «Вычислительные системы и телекоммуникации» образовательной программы. 3. Аннотация: Программа составлена в соответствии с требованиями ГОС к обязательному минимуму содержания основной образовательной программы подготовки бакалавра бизнесинформатики. Освоение данной дисциплины позволит студентам через овладение теоретических знаний о принципах построения и архитектуре современных операционных систем и сред, обеспечивающих организацию вычислительных процессов в корпоративных информационных системах экономического, управленческого, производственного, научного и др. назначения, приобрести необходимые компетенции по проектированию, внедрению, анализу и сопровождению корпоративных информационных систем. Дисциплина «Операционные среды, системы и оболочки» относится к циклу «Общие профессиональные дисциплины» и связана с дисциплинами учебного плана «Информатика и программирование», «Теория систем и системный анализ», «Основы программирования в VS.Net». Цель дисциплины – дать целостное представление о концепциях построения операционных систем, их роли и задачах, выполняемых в рамках функционирования современных информационных систем. Задачи: познакомить студентов с основными принципами создания и функционирования операционных сред и систем; познакомить с особенностями протекания вычислительных процессов; формировать исследовательские компетенции в процессе изучения и сопоставления различных операционных сред, систем и оболочек; отработать навыки инструментального использования системных программных средств. Курс должен способствовать общему развитию студентов, формированию и развитию исследовательских компетенций отрабатываемых в деятельностном режиме. 2 4. Учебная задача курса: В результате изучения курса студент должен: знать: определение и функции операционных систем, основные задачи, решаемые при выполнении этих функций и подходы к их решению; аппаратные возможности и средства поддержки функций операционных систем; вопросы эффективности, безопасности, диагностики, восстановления, мониторинга и оптимизации операционных систем и сред; основные принципы организации и функционирования операционных систем различных классов; особенности реализации вычислительного процесса с помощью операционной системы; различные стандартные сервисные программы; машинно-зависимые свойства ОС. уметь: сравнивать и выделять особенности эффективной работы различных ОС по обслуживанию задач пользователей; диагностировать и восстанавливать операционные системы при сбоях и отказах; выполнять обоснованный выбор ОС для поддержки проектируемых информационных технологий и компьютерных информационных систем; управлять вычислительными процессами, вводом-выводом, реальной и виртуальной памятью. иметь представление: о назначении операционных сред, систем и оболочек; о видах современных операционных систем и оболочек; о тенденциях развития операционных систем. обладать навыками: описания интерфейсов и основных стандартов в области системного программного обеспечения; разработки программных моделей вычислительного процесса многопрограммных операционных систем с детализацией уровней задач, процессов, потоков и взаимоблокировок. обеспечения сохранности и защиты программных систем. 5. Формы контроля: текущий контроль: выполнение лабораторных работ сопровождается проведением контрольных опросов, согласно графику контрольных мероприятий выполняется домашнее задание и контрольная работа. промежуточный контроль: выполнение заданий на практических занятиях. Итоговый контроль: изучение дисциплины завершается сдачей экзамена. Итоговая оценка: складывается в соответствии с «Положением о рейтинге», принятом в ПФ ГУ-ВШЭ. Формы проведения определяются учебным планом. 3 III. Содержание программы Раздел 1. Функции и структура операционной системы Тема 1. Операционные системы как ядро системного программного обеспечения: классификация, общие принципы, архитектура Тема 2. Определение операционной системы (ОС) и ее функции. Классификация ОС (по структуре, режиму работы). Основы проектирования ОС, общие принципы их построения. Тема 3. Обзор современных операционных систем. Способы построения современных ОС (ОС с иерархической структурой, виртуальные машины, ОС мультипроцессорных систем, сетевые ОС, ОС с микроядерной архитектурой). Раздел 2. Концептуальные основы построения ОС Тема 4. Основы построения операционных систем: — базовые функции и понятия ОС (процесс, процессор, ресурс); — определение и классификация ресурсов; — определение процесса и его контекст, состояния процесса, классификация процессов; — мультипрограммирование и многозадачность, понятие потока; средства ОС для управления процессами и потоками; — аппаратная поддержка мультизадачности в Intel; Тема 5. Компоненты ОС и объекты ядра Windows, используемые для представления процессов и ресурсов, реализации функций управления: — параллельность и проблема синхронизации (примеры): — проблема взаимного исключения и критические секции: — определение и свойства; — программная реализация взаимного исключения, алгоритм Деккера; — синхронизация с помощью семафоров (определение и свойства семафоров, семафорные примитивы, примеры использования); — мониторы как средство синхронизации процессов; Тема 6. Объекты ядра Windows, используемые для решения задач взаимного исключения и синхронизации процессов. Функции синхронизации. Решение задачи синхронизации в ОС Microsoft Windows и OS/2: — проблема тупиков: — определение тупика, — задачи, связанные с решением проблемы тупика (предотвращение, обходы тупиков, распознавание тупика, вывод системы из тупика и восстановление работоспособности системы); — модель системы для исследования проблемы тупиков; — необходимые условия возникновения тупика в системе и методы предотвращения тупиков; — методы распознавания тупиков в системах с повторно используемыми и потребляемыми ресурсами; — реализация обходов тупиков; — вывод системы из тупика и восстановление. Раздел 3. Реализация основных функций ОС: управление процессами, памятью ВС. Тема 7. Системные объекты, используемые для управления процессами и ресурсами. 4 Тема 8. Структуры данных для реализации функций управления процессами и ресурсами (дескрипторы процессов, ресурсов, обобщенная очередь). Объекты ядра ОС Windows. Тема 9. Стратегии и дисциплины выделения ресурсов (определение, цели и критерии выбора). Раздел 4. Управление процессами Тема 10. Определение системы планирования. Уровни планирования. Основные дисциплины планирования. Тема 11. Управление процессами в современных ОС: диспетчеризация в мультизадачных системах (процессы, потоки и нити (волокна), кооперативная и вытесняющая мультизадачность, приоритетные классы и уровни приоритетов) и организация взаимодействия процессов (сообщения, каналы, сокеты и др.) на примерах ОС Windows NT и Windows 9x, OS/2, Novell NetWare. Раздел 5. Управление памятью ВС Тема 12. Память как основной ресурс ВС. Тема 13. Иерархия памяти в современных ВС, использование и организация кэш-памяти, расширение физической памяти с помощью дисковых накопителей. Тема 14. Фазы управления памятью и задачи, решаемые на каждом этапе (начальное распределение, утилизация, повторное распределение). Тема 15. Статическое и динамическое распределение памяти. Тема 16. Организация памяти: — стек и его применение в СП и ОС; — куча (проблемы утилизации памяти, предотвращения висячих ссылок и сбора мусора, алгоритм уплотнения). Тема 17. Реальная и виртуальная память (ВП): — свопинг; — организация оверлеев (структур с перекрытием); — общие принципы организации ВП и механизм отображения; — односегментное и многосегментное адресное пространство (страничная и сегментная организация памяти), сегментно-страничная организация памяти; — основные стратегии загрузки, размещения и выталкивания при реализации виртуальной памяти; — аппаратная поддержка виртуальной памяти в процессорах Intel: схема трансляции адреса, сегментация и страничная организация памяти. Тема 18. Механизмы защиты памяти: разделение адресных пространств, защита по уровням привилегий; механизмы защиты памяти, реализованные в процессорах Intel: использование таблиц LDT и каталогов таблиц страниц для разделения адресных пространств, защита данных и кода по уровням привилегий, использование привилегированных команд и команд, чувствительных к уровням привилегий. Тема 19. Архитектура памяти Win32. Основные механизмы управления памятью: стек, куча, файлы, проецируемые в память, виртуальная память. Особенности организации памяти в ОС Windows (NT и 9x), OS/2, Novell NetWare. Раздел 6. Прерывание как основной механизм ОС Тема 20. Определение прерывания. Тема 21. Классификация прерываний. Тема 22. Общая схема обработки прерывания. 5 Тема 23. Система прерываний ОС Windows (NT и 95), OS/2, Novell NetWare. Тема 24. Структурная схема обработки исключений Win32. Примеры использования фильтров и исключений. Раздел 7. Направления развития операционных сред, систем и оболочек. Тема 25. Новые направления в разработке операционных систем: использование идеи микроядра и технологии «клиент-сервер» при разработке ОС, объектноориентированный подход и программирование при разработке ОС, реализация множественных прикладных сред (на примерах UNIX (QNX), Windows NT, OS/2). Тема 26. Архитектура ОС MS-DOS, Windows NT и Windows 9x. IV. Учебно-методическое обеспечение 1. Литература: Базовый учебник 1. Гордеев А.В.. Операционные системы: учебник для студентов вузов / 2007.- 416 с. Основная 1. Гуров В.В., Чуканов В.О. Основы теории и организации ЭВМ: учеб. пособие. М.: 2006.272 с. 2. Лядова Л.Н. Основы операционной системы MS-DOS. Пермь: Перм. ун-т. 1998. 3. Лядова Л.Н. Особенности защищенного режима процессоров Intel. Пермь: Перм. ун-т. 1998. 4. Лядова Л.Н. Персональный компьютер: от начинающего пользователя до профессионала. Пермь: Перм. ун-т. 1998. Дополнительная 1. Дейтел Х.М. Операционные системы. Основы и принципы. Т. 1 / 2006.-1024 с. 2. Макаров А.В., Скоробогатов С.Ю., Чеповский А.М. Common intermediate language и системное программирование в Microsoft. NET: учеб. пособие / А. В. Макаров, ,2006.328 с.1. 3. Шилдт Г. Полный справочник по С# /,2007.-752 с. 4. Леонтьев Б.К. Форматы файлов Microsoft Windows XP: справочник 2005 / 2005.-352 с. 5. Лядова Л.Н., Фролова Н.В., Замятина Е.Б., Мызникова Б.И. Основы компьютерной грамотности и информационно-коммуникационной компетентности: Часть 1. Введение в информатику / Пермь, Перм. ун-т, 2007. 6. Лядова Л.Н., Фролова Н.В., Замятина Е.Б., Мызникова Б.И. Основы компьютерной грамотности и информационно-коммуникационной компетентности: Часть 1. Введение в информатику. Лабораторный практикум / Пермь, Перм. ун-т, 2007. Рекомендованная литература 7. Олифер В.Г., Олифер Н.А. Сетевые операционные системы. СПб.: Питер, 2001. 8. Дейтел Г. Введение в операционные системы: В 2-х томах. Пер. с англ.- М.: Мир, 1987. 9. Шоу А. Логическое проектирование операционных систем. Пер. с англ. - М.: Мир, 1981. 10. Бек Л. Введение в системное программирование — М.: Мир, 1988. 11. Кейлингерт П. Элементы операционных систем. — М.: Мир, 1985. 12. Соловьев Г.Н., Никитин В.Д. Операционные системы ЭВМ: Учебное пособие для студентов вузов, обучающихся по специальности «ЭВМ, системы, комплексы и сети» и «Автом. сист. обр. инф. и упр.»—М.: Высшая школа, 1989. 13. Сломон Д., Руссинович М. Внутреннее устройство Microsoft Windows 2000. СПб.: Издательско-торговый дом «Русская редакция». 2001. 14. Харт Дж. М. Системное программирование в среде Win32. М.: Издательский дом «Вильямс», 2001. 6 15. Рихтер Дж. Windows для профессионалов: создание эффективных Win32-приложений с учетом специфики 64-разрядной версии Windows. СПб.: Питер; М.: Издательскоторговый дом «Русская редакция». 2001. 16. Вендеров А.М. Проектирование программного обеспечения. М.: «Финансы и статистика». 2000. 2. Тематика заданий по различным формам текущего контроля: Приложение 1. Тематика контрольных работ Приложение 2. Тематика домашних заданий Приложение 3. Перечень вопросов для самоконтроля студентов Приложение 4. Тематика лабораторных занятий Приложение 5. Экзаменационные вопросы курса 3. Методические рекомендации (материалы) преподавателю: На лекциях используется «деятельностный» подход к изложению материала: материал каждой лекции иллюстрируется примерами, рассматриваются нестандартные ситуации, требующие решения с использованием рассматриваемого материала. При этом студенты должны активно участвовать в обсуждении вопросов, выработке решений. Для самостоятельного изучения предлагается использовать электронные ресурсы. На лабораторных занятиях используются следующие методы обучения и контроля усвоения материала: 1) выполнение лабораторных работ по теме занятия сопровождается контрольным опросом; 2) обсуждение различных вариантов решения, предложенных студентами, сравнение решений, анализ возможных ситуаций. 4. Методические указания студентам: Студенту рекомендуется следующая схема подготовки к лабораторному занятию: 1) проработать конспект лекций; 2) проанализировать основную и дополнительную литературу, рекомендованную по изучаемому разделу; 3) проанализировать варианты решений, предложенные преподавателем; 4) при затруднениях сформулировать вопросы к преподавателю. 5. Рекомендации по использованию информационных технологий: Все практические занятия проводятся в компьютерном классе. Программное обеспечение сети должно поддерживать 1) возможность доступа к материалам для подготовки, размещаемым на сервере; 2) разработки, тестирования, отладки программ, написанных на языке Delphi; 3) возможность оформления отчетов по выполненным заданиям с помощью текстовых редакторов и электронных таблиц. Авторы программы: __________________________________________ /Л.Н. Лядова / __________________________________________ /А.Х. Шелепаева/ 7 V. Тематический расчет часов Аудиторные часы Семинарские Наименование разделов и тем или (с разбивкой по модулям) Лекции № практические занятия Всего Самостояте Всего льная часов работа Модуль 2 Функции и структура операционной системы Работа со справочной системой Windows Концептуальные основы построения ОС Работа с потоками и синхронизация взаимодействия в WIN32 Реализация основных функций ОС Управление процессами 4 0 4 12 16 0 4 4 6 10 6 0 6 10 16 0 4 4 8 12 2 0 2 8 10 4 0 4 8 12 0 4 4 8 12 16 12 28 60 88 8 Управление памятью ВС 4 0 4 8 12 9 Работа с памятью 0 4 4 8 12 4 0 4 8 12 0 4 4 8 12 4 0 4 8 12 0 6 6 8 14 Всего за модуль: 12 14 26 48 74 Всего: 28 26 54 108 162 1 2 3 4 5 6 7 Объекты Win32 синхронизации Всего за модуль: Модуль 3 Прерывание как механизм ОС 11 Работа с файлами 10 основной Направления развития 12 операционных сред, систем и оболочек. Исследование интерфейса 13 программ –архиваторов и антивирусных программ Авторы программы: __________________________________________ /Л.Н. Лядова / __________________________________________ /А.Х. Шелепаева / 8 Приложение 1. Тематика контрольных работ: 1. Синхронизация процессов. Проблема критической секции. 2. Синхронизация процессов. Проблема тупика. 3. Проблемы управления памятью, алгоритмы уплотнения и сбора мусора. 4. Структуры данных и алгоритмы работы редакторов связей и загрузчиков. 5. Архитектура современных операционных систем. 6. Микроядерные операционные системы. 7. Операционные системы многопроцессорных вычислительных систем. 8. Сравнительная оценка различных форм мультипрограммирования. 9. Методы и средства предотвращения сбоев и отказов операционных систем. 10. Методы обнаружения, предупреждения и устранения тупиковых ситуаций в асинхронных параллельных процессах. 9 Приложение 2. Тематика домашних заданий: 1. Особенности установки программных продуктов в среде Windows. 2. Применение пакетных файлов Windows. 3. Настройка среды ОС Windows. 4. Особенности установки Windows. 5. Вирусы и антивирусные программы. 6. Классификация вирусов и результаты их работы. 7. Особенности применения архиваторов. 8. Классификация архиваторов. 9. Описание процессов резервирования информации. 10. Программы оболочки и их применение. 11. Конфигурирование вычислительной машины на программном и аппаратном уровне. 12. Обзор системных программных средств операционных систем. 13. Особенности использования “верхних” областей памяти. 14. Возможности средств защиты информации ОС Windows. 10 Приложение 3. Перечень вопросов для самоконтроля студентов: Дайте определение операционной системе (ОС). Что такое расширенная виртуальная машина? С какими объектами взаимодействует операционная система? Назовите характерные особенности различных ОС. Особенности их функционирования.. 5. Назовите особенности настройки и конфигурирования ОС. Перечислите этапы установки устройств и установки программ. 6. Системные каталоги. Файлы ОС. Загрузка и перезагрузка ОС. 7. Как осуществляется просмотр системной информации. 8. Какие проблемы могут возникнуть при загрузке ОС. 9. Как организовано взаимодействие с пользователем. Чем графический интерфейс отличается от интерфейса с командной строкой. 10. Опишите работу с командной строкой. 11. Опишите организацию работ с файлами и папками. В чем особенность использования длинных имен. 12. Объясните механизм запуска программ, переключения между программами. 13. Дайте характеристику мультипрограммированию. 14. Перечислите формы многопрограммной работы. 15. Какая основная причина появления мультипрограммирования? 16. Дайте определение процессу и потоку. 17. Чем поток отличается от процесса? 18. Как можно представить модель процесса и потока? 19. Назовите возможные состояния процесса. 20. Что такое блок управления процессами? 21. Опишите процесс обработки прерываний 22. Опишите структурную схему обработки исключений. 1. 2. 3. 4. 11 Приложение 4. Тематика лабораторных занятий: Лабораторная работа №1. Работа со справочной системой Windows. Задание Проанализировать содержание справочной системы Windows, выделить содержательные информационные блоки, способствующих эффективному управлению и поддержке операционной системы Windows. Лабораторная работа взаимодействия в WIN32. Задание №2. Работа с потоками и синхронизация Разработать проект в системе программирования Delphi позволяющий реализовать задачу создания потока для выполнения фоновой операции и использования критической секции для синхронизации потоков. Лабораторная работа №3. Объекты синхронизации Win32 Задание Изучите листинг программы «Война потоков». Запустите программу на выполнение в среде Microsoft Visual C++. Напишите программу «Война потоков», сохранив системные вызовы и объекты синхронизации, на языке программирования Delphi. Лабораторная работа №4. Работа с памятью Задание Разработать многопоточное приложение в среде разработки Delphi. Каждый из 3-х потоков приложения строит бинарное дерево, динамически выделяя память для вершин в своей собственной куче. Лабораторная работа №5. Работа с файлами Задание Разработать приложение в среде Delphi, реализующие работу с файлами 4-мя способами: через файловые переменные, с использованием функций Windows API, c использование файловых потоков и с помощью файлов, отображаемых на память. Лабораторная работа №6. Исследование интерфейса программ –архиваторов и антивирусных программ Задание Ознакомится с архиваторами (ZIP, RAR). Вызвать помощь при работе с конкретным архиватором. Отметить возможности по использованию архиваторов из командной строки и из графической оболочки. Исследовать возможности архиваторов. Заархивировать файлы текстовые и графические. Проанализировать коэффициент сжатия. Исследовать возможности антивирусных пакетов. Обновить базы сигнатур вирусов. Проверить жесткий диск и оперативную память. Изучить классификацию и особенности работы вирусов по документам. Качественно проанализировать результаты лечения. 12 Приложение 5. Экзаменационные вопросы курса: 1. Общие принципы построения ОС. Основные характеристики современных ОС. Примеры реализации общих принципов и особенности организации и функционирования ОС на примерах MS-DOS, Windows 9x, NT, Novell NetWare (модульность, понятие ядра и микроядерная архитектура (реализация в архитектурах перечисленных ОС), настройка при установке и загрузке, средства конфигурирования и администрирования перечисленных ОС 2. Основные понятия ОС: процесс и ресурс. Определение и классификация ресурсов. Определение и классификация процессов. Состояния процессов и функция ОС по управлению процессами. Планирование и диспетчеризация процессов. Уровни и дисциплины планирования. Процессы и потоки, понятие нити. 3. Назначение и интерфейсы операционной системы. Функции ОС. ОС как виртуальная машина. 4. Классификация операционных систем. Управление задачами и основной памятью. Управление процессами и потоками в Windows 2000/2003. 5. Основные характеристики Windows 2000/2003. Компоненты микроядерной архитектуры ОС. Компоненты Windows 2000/2003, обеспечивающие переносимость и аппаратную независимость. 6. Проблема взаимного исключения. Понятие критической секции, ее свойства, условия реализации. Программные методы реализации взаимного исключения. Понятие семафора. Применение бинарных семафоров для реализации взаимного исключения и синхронизации процессов. 7. Проблема тупика и задачи, связанные с решение проблемы тупика. Задача предотвращения тупика. Математическая модель для определения тупика. Модель системы с повторно используемыми ресурсами (граф повторно используемых ресурсов). Модель системы с потребляемыми ресурсами (граф потребляемых ресурсов). 8. Управление памятью. Иерархия запоминающих устройств ВС. Способы распределения памяти: статическое и динамическое распределение, связные и несвязные распределения. Общие принципы организации виртуальной памяти. Сегментная организация памяти. Страничная организация памяти. Сегментностраничная организация памяти. Управление виртуальной памятью: стратегии загрузки, стратегии размещения, стратегии замещения. Средства защиты памяти (разделение адресных пространств, защита по уровням привилегий, привилегированные команды и команды, чувствительные к уровням привилегий). 9. Управление данными. Определение файла, именование файлов, понятие каталога (справочника), иерархическая организация файловой системы на дисках. Понятие и функции файловой системы и подсистемы ввода/вывода ОС. 13