Правительство Российской Федерации Федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский университет "Высшая школа экономики" Факультет Бизнес Информатика Отделение программной инженерии ^ для направления 231000.62 Программная инженерия подготовки бакалавра Автор программы: Назаров Станислав Викторович, доктор технических наук, профессор, snazarov@hse.ru Одобрена на заседании кафедры архитектуры программных систем «___» августа 2013 г. Зав. кафедрой С.В. Назаров Рекомендована секцией УМС по бизнес-информатике «___»____________ 2013 г. Председатель Ю.В. Таратухина Утверждена УС факультета Бизнес информатика «___»_____________2013 г. Ученый секретарь Москва, 2013 Настоящая программа не может быть использована другими подразделениями университета и другими вузами без разрешения кафедры-разработчика программы. ^ Настоящая программа учебной дисциплины устанавливает минимальные требования к знаниям и умениям студента и определяет содержание и виды учебных занятий и отчетности. Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов, обучающихся по направлению 231000.62 Программная инженерия подготовки бакалавра. Программа разработана в соответствии с:
Целями освоения дисциплины является получение теоретических и практических знаний о принципах построения и архитектуре современных операционных систем (в том числе распределенных), обеспечивающих организацию вычислительных процессов в корпоративных информационных системах экономического, управленческого, производственного, научного и др. назначения, а также практических навыков по системному программированию и созданию (настройке) вычислительной среды для поддержки бизнес процессов в корпоративных сетях (интрасетях) предприятий. ^ В результате освоения дисциплины студент должен:
В результате освоения дисциплины студент осваивает следующие компетенции:
^ Дисциплина «Операционные системы» входит в базовую часть профессионального цикла дисциплин Федерального государственного образовательного стандарта высшего профессионального образования (ФГОС ВПО) по направлению подготовки 231000 Программная инженерия (квалификация (степень) “бакалавр”). Освоение дисциплины базируется на знаниях вузовских программ дискретной математики, основ информатики, архитектуры компьютера, языков и методов программирования. Изучение дисциплины предполагает знание студентами основ информатики и программирования, вычислительных систем и сетей телекоммуникаций и практическое умение работы на персональном компьютере (ПК) в офисных пакетах MS Office (в том числе достаточно глубокое знание Excel), а также умение разрабатывать Windows-приложения на одном из алгоритмических языков (Java, C, С++, С#). Компетенции, знания, навыки и умения, полученные в ходе изучения дисциплины, должны всесторонне использоваться и развиваться студентами:
^
^ На практических занятиях студент должен проявить способность отбирать и разрабатывать методы исследования операционных систем на основе общих тенденций развития программной инженерии с использованием современных технических и программных средств. При выполнении домашнего задания студент должен показать способность к проектной деятельности и системному программированию в интересах совершенствования операционных систем на основе системного подхода, умение строить и использовать модели для описания и прогнозирования свойств и возможностей операционных систем, осуществлять их качественный и количественный анализ. В соответствии с задачей, поставленной в домашнем задании, студент должен показать умение программирования в операционных системах и системного программирования (программирования аппаратного обеспечения компьютера или подключаемых внешних устройств). ^ Оценки по всем формам текущего контроля выставляются по 10-ти балльной шкале. Преподаватель оценивает работу студентов на практических занятиях. При этом оценивается активность студентов на практических занятиях и правильность решения поставленных задач. Накопленная оценка по 10-ти балльной шкале за работу на практических занятиях определяется перед промежуточным или итоговым контролем - Оаудиторная. Накопленная оценка по 10-ти балльной шкале за самостоятельную работу определяется перед промежуточным или итоговым контролем – Осам. работа. Накопленная оценка за текущий контроль учитывает результаты студента по текущему контролю следующим образом: Онакопленная= k1* Отекущий + k2* Оауд + k3* Осам.работа , где k1 = 0,5; k2 = 0,2; k3 = 0,3. Отекущий рассчитывается как взвешенная сумма всех форм текущего контроля, предусмотренных в РУП Отекущий = n1·Ок/р + n2·Одз , где n1 = 0,3; n2 = 0,7. Способ округления накопленной оценки текущего контроля – в пользу студента. Результирующая оценка за дисциплину рассчитывается следующим образом: Орезульт = k1* Онакопл + k *·Озач , где k1 = 0,6; k2 = 0,4 Способ округления итогового контроля в форме зачета – в пользу студента. На пересдаче студенту не предоставляется возможность получить дополнительный балл для компенсации оценки за текущий контроль. Таблица соответствия оценок по десятибалльной и пятибалльной системам
^ Тема 1. Введение. Основные определения и понятия. Назначение, функции и архитектура операционных систем Определение операционной системы (ОС). Место ОС в программном обеспечении компьютеров, компьютерных систем и сетей. Поколения операционных систем. Назначение, состав и функции ОС. Понятие компьютерных ресурсов. Концепция многоуровневого виртуального компьютера. Операционные оболочки и среды. Архитектуры операционных систем. Классификация ОС. Интерфейсы операционных систем. Эволюция ОС. Эффективность ОС. Однопрограммные, многопрограммные, многопользовательские и многопроцессорные операционные системы. Примеры ОС. Прикладные операционные среды. Совместимость операционных систем. Виды совместимости. Языковая и двоичная совместимость. Эмуляция. Виртуальные машины и операционные среды. Загрузка операционных систем (на примере Windows 7). Этапы процесса загрузки. Работа загрузчика. Опции загрузочного меню. Выбор аппаратного профиля. Загрузка и инициализация ядра. Загрузка драйверов и сервисов. Регистрация пользователя. Инсталляция и конфигурирование операционных систем. Инсталляция и конфигурирование многопрограммной многопользовательской ОС с графическим интерфейсом (на примере Windows XP/7/2008). Требования к аппаратным ресурсам. Подготовка процесса инсталляции. Конфигурирование разделов на жестком диске. Выбор файловой системы. Выбор варианта установки (локальная, сетевая). Инсталляция мультиоперационных систем. ♦ Основная литература
♦ Дополнительная литература
Тема 2^ я Концепция процессов и потоков. Задания, процессы, потоки, волокна. Мультипрограммирование. Формы многопрограммной работы. Пакетная обработка, разделение времени, диалоговый режим. Системы реального времени. Роль процессов, потоков и волокон в мультипрограммировании. Управление процессами и потоками. Создание и завершение процессов. Иерархия процессов. Операции над процессами. Состояния процесса: выполнение, приостановка, возобновление. Блок управления процессами. Модели процессов и потоков. Планирование процессов и потоков. Реализация потоков в пространстве пользователя. Реализация потоков в ядре. Смешанная реализация. Активация планировщика. Возможности создания многопоточных программ. Концепция волокон. Взаимодействие и синхронизация процессов и потоков. Параллельные асинхронные процессы и межпроцессное взаимодействие. Уровни параллелизма: задания, задачи, процессы, потоки Состояния состязания. Взаимоисключения и критические участки. Примитивы и алгоритмы взаимоисключения. Семафоры, мониторы, передача сообщений. Проблемы межпроцессного взаимодействия. Тупики (взаимоблокировки или дедлоки). Ресурсы и их захват процессами. Выгружаемые и невыгружаемые ресурсы. Примеры тупиков при распределении ресурсов. Обнаружение и предотвращение тупиков. Алгоритмы разрешения тупиков. Восстановление после тупиков. Аппаратно-программные средства поддержки мультипрограммирования. ♦ Основная литература
♦ Дополнительная литература
Тема 3. Управление памятью. Методы, алгоритмы и средства Иерархическая организация памяти. Функции ОC по управлению памятью. Задачи распределения памяти. Алгоритмы распределения памяти. Классификация методов распределения памяти. Распределение памяти фиксированными разделами. Распределение памяти динамическими разделами. Распределение памяти перемещаемыми разделами. Загрузчики. Достоинства и недостатки методов. Виртуальная память. Страничная, сегментная и сегментно-страничная организация памяти. Достоинства и недостатки организации виртуальной памяти. Методы оптимизации функционирования виртуальной памяти. Аппаратная поддержка трансляции виртуальных адресов. Подкачка страниц и алгоритмы замещения страниц: оптимальный алгоритм, алгоритм FIFO – первый прибыл – первый обслужен, алгоритм NRU – не использовавшаяся в последнее время страница, алгоритм LRU – страница, не использовавшаяся дольше всего. Выбор размера страниц. Выбор величины файла подкачки и его размещения (на примере Windows XP/2000/2003). Защита памяти. Аппаратная поддержка механизма виртуальной памяти на примере процессора Pentium. Преобразование виртуальных адресов в физические. Защита данных при сегментной организации памяти. ♦ Основная литература
♦ Дополнительная литература
Тема 4. Подсистема ввода-вывода. Файловые системы Принципы функционирования аппаратуры ввода-вывода. Устройства ввода-вывода и их контроллеры. Прямой доступ к памяти (DMA). Управляемый прерываниями ввод-вывод. Обработчики прерываний и драйверы устройств. Таймеры и их программное обеспечение. Организация параллельной работы устройств ввода-вывода и процессора. Согласование скоростей обмена и кэширование данных. Разделение устройств и данных между процессами. Обеспечение логического интерфейса между устройствами и остальной частью системы. Поддержка широкого спектра драйверов. Динамическая выгрузка и загрузка драйверов. Драйверы виртуальных устройств. Поддержка нескольких файловых систем. Поддержка синхронных и асинхронных операций ввода-вывода. Понятие файла. Именование, структура и типы файлов. Атрибуты и доступ к файлам, операции с файлами. Понятие каталога. Иерархические каталоговые системы. Операции с каталогами. Задачи ОС по управлению файлами и устройствами. Структура файловой системы. Реализация файлов и каталогов (папок). Совместно используемые файлы и каталоги. Примеры файловых систем: файловая система MS DOS (FAT16), файловая система CD-ROM, файловые системы Windows (FAT32, NTFS, NTFS 5.0, EFS - шифрующая файловая система), Unix (ufs). Разрешения для файлов и папок. Управление дисковыми ресурсами (на примере Windows). RAID – массивы. Форматирование дисков. Фрагментация памяти, дефрагментация дисков. Разделы и тома. Управление базовыми и динамическими дисками. Распределенная файловая система. ♦ Основная литература
♦ Дополнительная литература
Тема 5. Распределенные операционные системы и среды Недостатки изолированных (сосредоточенных) компьютеров и систем и их современное состояние. Понятие компьютерной сети. Преимущества объединения. Типы сетей. Сети персональных компьютеров и их использование в управлении, экономике и других сферах. Сетевые протоколы. Модель OSI. Терминология компьютерных сетей. Концептуальные термины: архитектура, топология, сетевое оборудование, сетевые операционные системы и др. Распределенные вычисления и операционные среды. Вычисления в архитектуре клиент-сервер. Двухзвенная и трехзвенная архитектуры. Распределенная передача сообщений. Вызов удаленных процедур (RPC). Связывание клиент-сервер. Синхронный и асинхронный вызовы. Примеры реализации RPC. Кластеры. Архитектуры кластеров. Особенности операционных систем. Windows Server 2008, Sun Cluster и др. Поддержка объектов коммуникаций. Управление процессами. Управление распределенными процессами. Сетевые службы. Служба каталогов сетевых серверных ОС. Понятие службы каталогов. Архитектура Active Directory. Контроллеры домена. Управление объектами Active Directory. Принципы построения сетевой файловой службы. Реализация сетевой файловой системы. Размещение клиентов и серверов по компьютерам и в операционной системе. Кэширование. Репликация. Служба каталогов. Межсетевое взаимодействие. Сетевые файловые системы. ♦ Основная литература
♦ Дополнительная литература
Тема 6. Безопасность и надежность. Диагностика и восстановление ОС после отказов Понятие безопасности. Требования по безопасности. Угрозы безопасности. Классификация. Атаки изнутри системы. Злоумышленники. Взломщики. Методы вторжения. Случайная потеря данных. Атаки на систему снаружи. Внешняя и операционная безопасность. Предотвращение проблем во внешней среде. Аутентификация пользователей, права доступа, пароли. Системный подход к обеспечению безопасности. Безопасность как бизнес-процесс. Политика безопасности. Выявление вторжений. Базовые технологии безопасности. Шифрование. Аутентификация, пароли, авторизация, аудит. Технология защищенного канала. Технологии аутентификации. Сетевая аутентификация на основе многоразового пароля. Аутентификация с использованием одноразового пароля. Аутентификация информации. Система Kerberos. Предотвращение сбоев и отказов. Резервное копирование и его стратегии. Специальные операции резервного копирования. Защита резервных копий. Восстановление файлов. Изготовление загрузочных дискет и диска аварийного восстановления и их использование. Резервное копирование конфигурации диска. Резервное копирование регистра и SAM. Безопасный режим загрузки. Восстановление конфигурации (Last Known Good). Диагностика отказов при загрузке операционной системы на примере Windows 7. ♦ Основная литература
♦ Дополнительная литература
Столингс В. Операционные системы. М.: Вильямс, 2004. 848 с. ^ При проведении лекций и практических занятий предполагаются встречи с представителями академической инициативы IBM, которые организуют курсы по изучению операционных систем компании IBM (AIX, IBMi, Z/OS). ^ Преподаватель, проводящий лекционные занятия должен отметить следующее. Дисциплина операционные системы является важной составной частью теоретической подготовки бакалавра по направлению 231000.62 “Программная инженерия" и занимает существенное место в его будущей практической деятельности. Знание теории и практики операционных систем обеспечивает возможность разработки эффективных программных систем для любых средств вычислительной техники, начиная от персонального компьютера и локальных вычислительных сетей до больших корпоративных информационных систем и сетей. Основное время проведения практических занятий связано с использованием инструментальных средств для исследования внутреннего устройства операционной системы и компьютерным моделированием различных аспектов разработки компонентов операционных систем. Выполнение домашнего задания связано с достаточно объемной работой по программированию по созданию драйверов и системных утилит для ОС Windows. Интерфейс прикладного программирования Windows API является интерфейсом системного программирования для семейства операционных систем Windows. Подробное описание Windows API можно найти в документации по набору инструментальных средств разработки программного обеспечения – Windows Software Development Kit (SDK). Эта документация доступна на веб-сайте www.msdn.microsoft.com. Полезную информацию для выполнения домашнего задания можно получить на сайте Sysinternals (http://technet.microsoft.com/ru-ru/sysinternals), а также в рекомендованной литературе. . Сайт Sysinternals был создан в 1996 г. Марком Руссиновичем (Mark Russinovich) и Брайсом Когсвеллом (Bryce Cogswell) для размещения созданных ими усовершенствованных сервисных программ и технической информации. В июле 2006 г. корпорация Microsoft приобрела компанию Sysinternals. Сервисные программы Sysinternals помогают как специалистам по информационным технологиям, так и разработчикам управлять, находить и устранять неисправности и выполнять диагностику приложений и операционных систем Windows. При наличии вопросов о каком-либо инструменте или его использовании можно воспользоваться форумом Sysinternals Forum, чтобы получить ответы и помощь других пользователей и модераторов. На первом практическом занятии преподаватель должен предоставить студентам типовые варианты домашних работ, требования к их содержанию и выполнению (возможно примерные технические задания),а на последующих занятиях контролировать ход их выполнения. ^ Студенты, изучающие дисциплину операционные системы, должны обратить внимание на широту и глубину знаний, требуемых для успешного освоения этой дисциплины. При этом на дисциплину отводится сравнительно небольшое количество часов аудиторных занятий. Отсюда следует, что результат успешного освоения дисциплины и выполнение домашнего задания во многом определяется самостоятельной работой студентов. В связи с этим можно рекомендовать регулярный просмотр сайтов зарубежных и отечественных компаний, занимающихся разработкой программных систем. Подобные ссылки даются на лекциях и практических занятиях. Следует также участвовать в конференциях и семинарах, которые регулярно проводятся в Москве ведущими компаниями-разработчиками программных продуктов. Стоит обратить внимание на следующие сайты:
и многие другие. Многие ведущие программные компании (IBM, MS, HP и др.) реализуют программы академической инициативы, которые позволяют студентам получать бесплатно программные продукты, проходить курсы обучения, участвовать в семинарах и конференциях. ^
^ Назаров С.В., Широков А.И. Современные операционные системы. – М.: Интернет-Университет Информационных технологий: Бином. Лаборатория знаний, 2013. 368 с. ^
^ Для успешного освоения дисциплины, студент использует следующие программные средства:
11Материально-техническое обеспечение дисциплиныДля проведения лекционных, семинарских и практических занятий используется проектор. Все занятия студенты проводят на персональном рабочем месте (компьютере) с использованием локальной вычислительной сети и сетевых устройств хранения данных. Доктор технических наук, профессор Назаров С.В.
|