ТЕМАТИЧЕСКИЙ ПЛАН ДИСЦИПЛИНЫ
№
Название темы
1
Модель компьютера.
2
Алгоритмы. Принципы анализа алгоритмов.
3
Типы и структуры данных.
4
Алгоритмы обработки последовательностей. Алгоритмы внутренней
сортировки.
5
Множества.
6
Хеш-таблицы.
7
Алгоритмы поиска.
8
Динамическое программирование.
9
Алгоритмы для работы с графами.
109
СОДЕРЖАНИЕ ДИСЦИПЛИНЫ
Введение
Цель преподавания дисциплины. Дисциплина «Алгоритмы и
структуры данных» предназначена для формирования у студентов знаний
основных понятий алгоритмизации, о структурах алгоритмов и структурах
данных, методах построения алгоритмов, анализе алгоритмов, методах и
технологиях построения программ, о различных алгоритмах внутренней
сортировки информации и задач поиска. При изучении дисциплины
рассматриваются свойства и особенности алгоритмов и ситуации, в
которых эти алгоритмы могут быть полезны, проводится связь с анализом
алгоритмов, исследуется эффективность алгоритмов.
Объект изучения и система методов дисциплины «Алгоритмы и
структуры данных». Объектом изучения данной дисциплины являются
различные алгоритмы, алгоритмические модели и структуры данных.
Дисциплина «Алгоритмы и структуры данных» является исчерпывающим
вводным
курсом
по
современным
компьютерным
алгоритмам.
Категориальный аппарат дисциплины: метод, алгоритм, блок-схема,
программа, информационные структуры.
ОСНОВНАЯ ЧАСТЬ
Модель компьютера
Подробная модель компьютера. Упрощенная модель компьютера.
Алгоритмы. Принципы анализа алгоритмов
Алгоритмы. Анализ алгоритмов. Принципы анализа алгоритмов.
Разработка алгоритмов. Анализ алгоритмов, основанных на принципе
«разделяй и властвуй». Рост функций. О-нотация. Простейшие рекурсии.
Примеры анализа алгоритмов.
Типы и структуры данных
Основные типы данных. Массивы, многомерные массивы. Обработка
массивов. Линейные списки. Абстрактные типы данных: стеки, очереди, деки.
Списки. Циклические списки. Связаные списки. Указатели. Информационные
структуры. Деревья. Представления деревьев. Динамическое выделение
памяти.
Алгоритмы
обработки
последовательностей.
Алгоритмы
внутренней сортировки
Алгоритмы
внутренней
сортировки:
сортировка
включением,
сортировка выбором. Анализ алгоритмов сортировки обменом. Шейкерная
сортировка, сортировка разделением. Альтернативные методы внутренней
110
сортировки.
Множества
Операции над множествами.
Хеш-таблицы
Хеширование, хеш-таблицы и таблицы рассеяния. Основная идея
хеширования. Ключи и хеш-функции. Предотвращение коллизий.
Распространение ключей. Равномерность. Простота вычисления. Реализации
хеш-функций и хеш-таблицы.
Алгоритмы поиска
Линейный поиск. Двоичный поиск. Поиск в строке. Алгоритмы
обработки строк. Рекурсивные алгоритмы.
Динамическое программирование
Расписание
работы
конвейера.
Элементы
динамического
программирования.
Алгоритмы для работы с графами
Графы и алгоритмы для работы с графами. Направленные графы.
Направленные, ненаправленные графы. Задача о максимальном потоке.
Нахождение кратчайшего пути.
ПРИМЕРНЫЙ ПЕРЕЧЕНЬ ТЕМ ЛАБОРАТОРНЫХ ЗАНЯТИЙ
1.
Составление блок схем.
2.
Реализация рекурсивных алгоритмов.
3.
Обработка массивов.
4.
Реализация алгоритмов внутренней сортировки.
5.
Работа с множествами.
6.
Построение хеш-функций.
7.
Реализация алгоритмов поиска.
8.
Структуры в динамической памяти.
9.
Нахождение кратчайшего пути в графе.
ПРИМЕРНЫЙ ПЕРЕЧЕНЬ ТЕМ ДЛЯ
САМОСТОЯТЕЛЬНОЙ РАБОТЫ СТУДЕНТОВ
1.
Типы и свойства алгоритмов. Базовые управляющие структуры.
Примеры алгоритмов.
2.
Алгоритмы циклической структуры. Алгоритмы обработки массивов.
3.
Примеры представления деревьев. Абстрактные типы данных.
4.
Примеры алгоритмов сортировки включением, сортировки выбором.
111
5.
Алгоритмы сортировки слиянием.
6.
Поиск в таблице. Прямой поиск строки.
7.
Динамические структуры данных.
8.
Модель компьютера.
9.
Рост функций. Асимптотические обозначения.
10. Многосвязные структуры.
11. Альтернативные методы внутренней сортировки.
12. Основы объектно-ориентированного программирования.
13. Иерархия классов.
14. Абстрактные сопоставимые объекты.
СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ
Основная литература:
1.
Кормен Т., Лейзерсон Ч., Ривест Р., Штайн К. Алгоритмы. Построение и
анализ. – 2012. – 1290 с.
2.
Вирт Н. Алгоритмы и структуры данных. – СПб.: Невский
диалект. 2001.
3.
Ахо А., Ульман Дж. Теория синтаксического анализа, перевода,
компиляции. В 2 т. Т. 1, 2. – М.: Мир, 1980.
4.
Кнут Д. Искусство программирования, том 1. Основные алгоритмы. – 3-
е изд. – М.: «Вильямс», 2006. – 720 с.
5.
Кнут Д. Искусство программирования, том 2. Получисленные методы. 3-
е изд. – М.: «Вильямс», 2007. – 832 с.
6.
Кнут Д. Искусство программирования, том 3. Сортировка и поиск. 2-е
изд. – М.: «Вильямс», 2007. – 824 с.
7.
Кнут Д. Искусство программирования, том 4, выпуск 2. Генерация всех
кортежей и перестановок. – М.: «Вильямс», 2008. – 160 с.
8.
Кнут Д., Грэхем Р., Паташник О. Конкретная математика. Основание
информатики. – М.: Мир; Бином. Лаборатория знаний, 2006. – 703 с.
Дополнительная:
1.
Ершов Ю.Л., Палютин Е.А. Математическая логика. – М.: Наука, 1979.
– 320 с.
2.
Мальцев А.И. Алгоритмы и рекурсивные функции. – M.: Наука, 1965. –
391 с.
3.
Ахо А. Построение и анализ вычислительных алгоритмов. – Mир, 1979.
– 536 с.
4.
Ахо А., Хопкрофт Д., Ульман Д. Структуры данных и алгоритмы –
Вильямс, 2009. – 400 с.
5.
G.E. Karniadakis, R.M. Kirby Parallel Scientific Computing in C++ and MPI
Cambridge University Press, 2008.
112
YaTP 1205 ЯЗЫКИ И ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ
объем 3 кредита
Авторы:
кандидат физико-математических наук, доцент Урмашев Б.А.,
старший преподаватель Сакыпбекова М.Ж.
Рецензенты:
кандидат технических наук, ассистент профессора кафедры информац.
систем Международного IT Университета Сатыбалдиева Р.Ж.
доктор PhD, доцент, заведующий кафедрой математического и
компьютерного моделирования КазНУ имени аль-Фараби Жакебаев Д.Б.
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
Назначения дисциплины: данная дисциплина предназначена для
формирования у студентов систематических знаний о современных языках
программирования, способах и инструментах разработки программного
обеспечения, перспективных технологиях программирования.
В результате изучения данной дисциплины студент должен
знать:
- основные элементы языка программирования: типы данных,
операторы;
- возможности
библиотечных
функций,
способы
создания
абстрактных и пользовательских типов, структур, функций и т.д.;
- области
применения
и
тенденции
развития
языков
программирования и методов трансляции;
уметь:
-
выполнить системный анализ, проектирование, кодирование,
отладку и тестирование, документирование и выпуск программного
продукта.
иметь представление:
- о тенденциях и перспективных направлениях развития технологий
программирования;
- о способах оптимизации кода;
быть компетентным:
- в умении реализовывать алгоритмы и структуры данных на языках
программирования;
- в умении проводить тестирование и отладку программ.
Роль и значение дисциплины: данная дисциплина является
дисциплиной бакалавриата и развивает тематику дисциплин, посвященных
технологиям программирования.
Дисциплины, предшествующие изучению данной дисциплины:
113
Информационно-коммуникационные технологии. Математический анализ.
Аналитическая геометрия и алгебра.
Дисциплины, содержащие знания, умения и навыки, необходимые
для
освоения
изучаемой
дисциплины:
Информационно-
коммуникационные технологии. Математический анализ. Аналитическая
геометрия и алгебра.
ТЕМАТИЧЕСКИЙ ПЛАН ДИСЦИПЛИНЫ
№
Название темы
25.
Общая характеристика языков программирования.
26.
Основные понятия языков программирования.
27.
Базовые конструкции современных языков программирования.
28.
Функции и методы.
29.
Структуры данных.
30.
Способы эффективного хранения и обработки данных.
31.
Проектирование программного обеспечения.
32.
Процедурное,
логическое,
функциональное
и
объектно-
ориентированное программирование.
33.
Технологии и инструментальные средства программирования.
34.
Методология объектно-ориентированного программирования (I).
35.
Методология объектно-ориентированного программирования (II).
36.
Пользовательский интерфейс.
37.
Тестирование и верификация программного обеспечения.
СОДЕРЖАНИЕ ДИСЦИПЛИНЫ
Введение
Цель преподавания дисциплины: изложить основные принципы
построения
программ
с
использованием
современных
языков
программирования,
научить
основным
методам
разработки
многофункциональных приложений.
Задачи изучения дисциплины:
-
дать представление о перспективах развития языков и технологий
программирования;
-
изложить
особенности
современных
методологий
программирования;
-
познакомить с принципами, моделями и методами проектирования
программных приложений;
-
дать представление о существующих алгоритмах и средствах,
способствующих
эффективной
разработке
многофункциональных
приложений;
-
привить навыки проектирования и использования инструментов
программирования.
114
Объектами изучения данной дисциплины являются типы данных,
переменные, функции, классы, объекты.
Методы изучения данной дисциплины: аналитические; практические;
диалектические, научно-исследовательские и др.
Роль и место науки данной дисциплины среди других наук: данная
дисциплина как наука изучает языки и технологии программирования.
Данная дисциплина, являясь компьютерной наукой, определяет процессы
проектирования
и
создания
многофункциональных
программных
приложений
с
использованием
средств
современных
языков
программирования. Знания, приобретенные в рамках данной дисциплины,
позволят специалисту компетентно подходить к разработке и внедрению
программных приложений.
ОСНОВНАЯ ЧАСТЬ
Общая характеристика языков программирования
Основные принципы, обеспечивающие качество программирования.
Области применения языков программирования. Развитие концепций
структуризации в языках программирования. Основы алгоритмизации.
Реализация алгоритма на языках высокого уровня.
Основные понятия языка программирования
Типы данных. Сложные и составные типы данных. Объявление объектов
данных. Представление основных структур программирования и способы их
реализации.
Базовые конструкции современных языков программирования
Программирование
линейных
и
разветвляющихся
алгоритмов.
Программирование циклических и комбинированных алгоритмов.
Функции и методы
Способы задания. Описание. Передача параметров. Способы вызова.
Рекурсия. Применение рекурсивных функций.
Структуры данных
Массивы. Строки. Множества. Указатели.
Способы эффективного хранения и обработки данных
Технологии обмена данными с внешними объектами. Файлы, базы
данных. Системы поддержки файлов данных.
Проектирование программного обеспечения
Жизненный цикл программного обеспечения. Основные этапы
проектирования программного обеспечения. Архитектура программного
115
обеспечения. Шаблоны проектирования. Способы конструирования
программ.
Процедурное,
логическое,
функциональное
и
объектно-
ориентированное программирование
Парадигмы программирования. Основные отличия, преимущества,
недостатки, перспективы развития.
Технологии и инструментальные средства программирования
Технологии программирования и основные понятия и подходы.
Современные инструментальные средства программирования. Работа в
интегрированной среде программирования.
Методология объектно-ориентированного программирования (I)
Базовые понятия объектно-ориентированного программирования (ООП).
Классы и объекты. Специфика методов (функций, процедур) и данных.
Методология объектно-ориентированного программирования (II)
Инкапсуляция. Полиморфизм. Наследование. Технология ООП.
Инструментальная среда ООП для разработки программного обеспечения.
Визуальное проектирование. Свойства. События.
Пользовательский интерфейс
Организация диалоговых режимов работы программного обеспечения.
Основные принципы проектирования дружественного пользовательского
интерфейса. Организация поддержки пользователя. Структуры построения
диалоговых режимов «пользователь – программное обеспечение».
Многооконные интерфейсы. Использование графических пакетов.
Тестирование и верификация программного обеспечения
Верификация программного обеспечения. Принципы и методы
тестирования программного обеспечения. План тестирования.
ПРИМЕРНЫЙ ПЕРЕЧЕНЬ ТЕМ СЕМИНАРСКИХ И
ЛАБОРАТОРНЫХ ЗАНЯТИЙ
1.
Вычисление арифметических и логических выражений.
2.
Условные операторы.
3.
Циклы.
4.
Одномерные и двумерные массивы.
5.
Указатели, ссылки.
6.
Динамические массивы.
7.
Символы и строки.
8.
Структуры и объединения.
116
9.
Использование файлов.
10. Функции, методы и подпрограммы.
11. Рекурсивные функции.
12. Классы и объекты.
13. Наследование классов.
14. Однонаправленные списки.
15. Двунаправленные списки.
ПРИМЕРНЫЙ ПЕРЕЧЕНЬ ТЕМ ЗАДАНИЙ НА СРС
1.
Представление, поиск и манипуляции со строками.
2.
Использование массивов для решения систем уравнений.
3.
Вычисление рекуррентных соотношений.
4.
Реализация рекурсивных функций.
5.
Организация стеков и очередей.
6.
Хэш-таблицы.
7.
Структуры данных для непересекающихся множеств.
8.
Топологическая сортировка.
9.
Алгоритмы «разделяй и властвуй».
10. Алгоритмы динамического программирования.
11. Бинарные деревья поиска.
12. Красно-чёрные деревья.
13. Вероятностный анализ и рандомизированные алгоритмы.
14. Работа с большими числами.
15. Работа с графическими библиотеками языков высокого уровня.
СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ
Основная:
1.
Громов Ю.Ю., Иванова О.Г., Беляев М.П., Минин Ю.В. Технология
программирования: учебное пособие / – Тамбов: Изд-воФГБОУ ВПО
«ТГТУ», 2013. – 172 с.
2.
Подбельский В.В., Фомин С.С. Программирования на языке Си. –
Финансы и статистика, 2005. – 600 с.
3.
Голощапов А.Л. Microsoft Visual Studio 2010. – СПб.: БХВ-Петербург,
2011. – 531 с.
4.
T. Cormen, C. Leiserson, R. Rivest, C. Stein. Algorithms: construction and
analysis. Williams, 2011.
5.
Пыркова А.Ю. Введение в Java программирование. – Учебное пособие. –
Алматы: «Қазақ университеті», 2006. – 100 с.
6.
Хэзфилд Р. Искусство программирования на C. Фундаментальные
алгоритмы, структуры данных и примеры приложений: энциклопедия
программиста. - Киев: ДиаСофт, 2001. – 728 с.
7.
Шилдт Г. Теория и практика С++. – СПб.: БХВ- Петербург, 2001.
117
Дополнительная:
1.
Шилдт Г. Искусство программирования на C++. – СПб.: БХВ-
Петербург, 2005.
2.
Буч Г. Объектно-ориентированный анализ и проектирование с
примерами приложений. - М.: Вильямс, 3-е издание, 2008. – 720 с.
3.
Дейтел, Харви М. Технологии программирования на Java 2: Книга 1.
Графика, JavaBeans, интерфейс пользователя.- М.: БИНОМ, 2003. – 560
с.
4.
Пахомов, Б.И. C/C++ и MS Visual C++ 2010 для начинающих.- СПб.:
БХВ-Петербург, 2011. – 722 с.
118
OS 2206 ОПЕРАЦИОННЫЕ СИСТЕМЫ
объем 2 кредита
Автор:
кандидат физико-математических наук, доцент Мансурова М.Е.
Рецензенты:
кандидат технических наук, ассоциированный профессор кафедры
информационных систем Международного университета
информационных технологий Сатыбалдиева Р.Ж.
кандидат физико-математических наук, ассоциированный профессор
кафедры электротехники и компьютерных наук Казахстанско-
Британского технического университета Уалиева И.М.
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
Назначением
данной
дисциплины
является
подготовка
высококвалифицированных специалистов, владеющих навыками применения
современных операционных систем в сфере профессиональной области.
Операционные системы задают абстракцию аппаратных средств и управляют
ресурсами, совместно используемыми пользователями компьютера. В темах
данной дисциплины раскрываются базовые знания в отношении
взаимодействия операционной системы с аппаратной частью компьютерной
системы и сетями, описывается работа в режиме ядра и режиме пользователя,
а также излагаются основные подходы к проектированию и разработке
операционных систем.
В результате изучения данной дисциплины студенты будут
- знать: фундаментальные принципы проектирования операционных
систем; назначение, функции, классификацию операционных систем;
принципы
управления
ресурсами
компьютера;
концепцию
мультипрограммирования, процессов и потоков; принципы виртуализации и
мобильности операционных систем.
- уметь: реализовывать базовые алгоритмы планирования и
синхронизации процессов и потоков, управления памятью, дискового
планирования; разрабатывать многопоточные приложения; учитывать
особенности работы в конкретной операционной системе; пользоваться
инструментальными средствами операционных систем.
- владеть навыками: установки операционных систем, управления
учетными записями, настройки параметров рабочей среды пользователя,
подключения и настройки аппаратных устройств, управления дисками и
файловыми системами, настройки сетевых параметров.
Роль и значение дисциплины: Изучение данной дисциплины
позволит дать базовые знания в области операционных систем, необходимые
119
для успешного усвоения материала учебных дисциплин, связанных с
использованием современных информационных технологий, а также знания,
необходимые для успешной практической работы в различных
операционных средах.
Дисциплины, предшествующие изучению данной дисциплины:
Информационно-коммуникационные технологии. Алгоритмы и структуры
данных. Языки и технологии программирования.
Дисциплины, содержащие знания, умения и навыки, необходимые
для
освоения
изучаемой
дисциплины:
Информационно-
коммуникационные технологии.
ТЕМАТИЧЕСКИЙ ПЛАН ДИСЦИПЛИНЫ
№
Название темы
1. Введение в операционные системы. Обзор аппаратного обеспечения
компьютера.
2.
Управление процессами.
3.
Взаимоисключения и синхронизация.
4.
Управление памятью.
5.
Управление вводом-выводом.
6.
Файловые системы.
7.
Управление безопасностью.
8.
Виртуальные машины.
9.
Распределенные системы.
10.
Изучение конкретных примеров: операционная система Windows;
операционная система Linux.
СОДЕРЖАНИЕ ДИСЦИПЛИНЫ
Введение
Цель преподавания дисциплины: изучение концепции операционных
систем, фундаментальных принципов проектирования и разработки
операционных систем.
Задачи преподавания дисциплины:
-
дать представление о назначении, функциях, классификации
современных операционных систем;
-
дать представление об основных понятиях, абстракциях и механизмах
операционных систем;
-
выработать
практические
навыки
работы
в
современных
операционных системах;
-
познакомить с современными тенденциями проектирования и
разработки операционных систем.
Объектами изучения данной дисциплины являются компоненты
операционных систем, модели процессов и потоков, механизмы управления
120
ресурсами, файловые системы, инструменты обеспечения безопасности
операционных систем.
Методы изучения данной дисциплины: аналитические; практические;
диалектические, научно-исследовательские и др.
Роль и место науки данной дисциплины среди других наук: данная
дисциплина как наука изучает фундаментальные принципы проектирования
и важнейшие особенности современных операционных систем. Данная
дисциплина дает ясное представление о структурах и механизмах
операционных систем, а также о важнейших соглашениях и конструктивных
решениях, используемых при их разработке. Знания, приобретенные в рамках
данной дисциплины, позволят специалисту применять операционные
системы для решения задач автоматизации обработки информации и
управления ресурсами, программирования в современных операционных
средах.
ОСНОВНАЯ ЧАСТЬ
Введение в операционные системы. Обзор аппаратного обеспечения
компьютера
Роль и назначение операционной системы. Функциональные
возможности типичной операционной системы. Вопросы проектирования:
эффективность, надежность, гибкость, переносимость, безопасность,
совместимость. Эволюция аппаратного / программного обеспечения.
Организация устройств. Прерывания: методы и реализации.
Управление процессами
Модель и состояния процессов. Многозадачные системы. Управление
потоками. Модель и состояния потоков. Планирование процессов в системах
с одним процессором. Вытесняющее и невытесняющее планирование.
Планировщики и стратегии планирования.
Взаимоисключения и синхронизация
Взаимодействие и синхронизация процессов и потоков. Параллельные
асинхронные
процессы
и
межпроцессное
взаимодействие.
Взаимоисключения.
Семафоры.
Мониторы.
Взаимоблокировки.
Обнаружение и устранение, предотвращение, избегание взаимоблокировок.
Управление памятью
Обзор физической памяти и аппаратного обеспечения по управлению
памятью. Кэширование. Виртуальная память. Преобразование виртуальных
адресов в физические. Алгоритмы замещения виртуальных страниц.
Управление вводом-выводом
Характеристики последовательных
и
параллельных
устройств.
Стратегии буферизации. Прямой доступ к памяти. Восстановление после
сбоев. Дисковое планирование. RAID-массивы.
121
Файловые системы
Файлы: данные, метаданные, операции, организация, буферизация.
Содержание и структура каталогов. Монтирование и размонтирование
файловой системы. Виртуальные файловые системы. Именование, поиск,
доступ, резервное копирование.
Управление безопасностью
Аутентификация.
Контроль
доступа.
Обнаружение
несанкционированного вторжения. Защита от вредоносного программного
обеспечения. Борьба с атаками на переполнение буфера.
Виртуальные машины
Типы виртуальных машин. Гипервизоры. Программная виртуализация.
Аппаратная виртуализация. Виртуализация на уровне операционных систем.
Стоимость виртуализации.
Распределенные системы
Распределенные операционные системы. Распределенные файловые
системы. Удаленный вызов процедур. Распределенная синхронизация.
Изучение конкретных примеров: операционная система Windows;
операционная система Linux
Принципы проектирования операционной системы. Системные
компоненты. Управление памятью. Планирование процессора. Управление
памятью. Файловые системы.
ПРИМЕРНЫЙ ПЕРЕЧЕНЬ ТЕМ СЕМИНАРСКИХ И
ЛАБОРАТОРНЫХ ЗАНЯТИЙ
1.
Изучение характеристик и конфигурации аппаратного обеспечения.
2.
Реализация алгоритмов планирования процессов.
3.
Реализация потоков.
4.
Создание многопоточных приложений.
5.
Реализация семафоров и мониторов.
6.
Реализация алгоритмов предотвращения взаимоблокировок.
7.
Реализация алгоритмов замещения виртуальных страниц.
8.
Реализация алгоритмов дискового планирования.
9.
Установка операционных систем Windows / LINUX.
10. Создание и задание конфигурации профиля пользователя.
11. Основные принципы функционирования операционных систем Windows
/ LINUX.
12. Управление пользователями и группами.
13. Управление процессами операционных систем Windows / LINUX.
14. Управление файлами операционных систем Windows / LINUX.
15. Диагностика и восстановление операционных систем при сбоях и
отказах.
122
ПРИМЕРНЫЙ ПЕРЕЧЕНЬ ТЕМ ЗАДАНИЙ ДЛЯ
САМОСТОЯТЕЛЬНОЙ РАБОТЫ СТУДЕНТОВ
1.
Сравнение подходов по управлению процессами в различных операционных
системах.
2.
Имитационное моделирование диспетчеризации процессов.
3.
Анализ производительности алгоритмов замещения виртуальных страниц.
4.
Анализ производительности алгоритмов дискового планирования.
5.
Сравнение подходов по управлению памятью в различных операционных
системах.
6.
Обзор современных операционных систем.
7.
Операционные системы для смартфонов, планшетов и других мобильных
устройств.
8.
Реализация симулятора планирования процессов.
9.
Реализация симулятора управления памятью.
10. Реализация симулятора файловой системы.
11. Реализация распределенных приложений.
СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ
Основная:
1.
Таненбаум Э., Бос Х. Современные операционные системы. – СПб.:
«Питер», 4-е изд. – 2015.
2.
Столлингс У. Операционные системы. Внутреннее устройство и
принципы проектирования (4 издание). – М.: «Вильямс». – 2002. – 848 с.
3.
Партыка Т.Л, Попов И. И. Операционные системы, среды и оболочки:
Учебное пособие. – М.: «ФОРУМ: ИНФРА - М». – 2010.
Дополнительная:
1.
Гордеев А.В. Операционные системы. – 2-е изд. – СПб.: Питер. – 2009.
2.
Олифер В.Г., Олифер Н.А. Сетевые операционные системы. – 2-е изд. –
СПб.: Издательство «Питер». – 2011.
3.
Silberschatz, A., Galvin, P.B. and Gagne, G. Operating System Concepts with
Java. – Addison Wesley Publishing Co., New York. Eighth Edition. – 2010.
4.
Silberschatz, P. Galvin and G. Gagne. Operating System Concepts. – 9th ed. –
John Wiley & Sons. – 2012.
5.
W. Stallings. Operating Systems – Internals and Design Principles, 7th ed. –
Pearson Education Ltd. – 2012.
6.
Карпов В.Е., Коньков К.А. Основы операционных систем, Курс лекций.
Серия: Основы информационных технологий. – Издательство:
Интернет-Ун-т информационных технологий, БИНОМ. – 2011.
7.
Коньков, К. А. Устройство и функционирование ОС Windows.
Практикум к курсу "Операционные системы": учебное пособие Серия:
Основы информационных технологий. – Издательство: Интернет-Ун-т
информационных технологий, БИНОМ. – 2010.
123
OS 2206 OPERATING SYSTEMS
3 credits
Author:
candidate of physico-mathematical sciences, associate professor Mansurova M.
Reviewers:
candidate of technical sciences, associate professor of Department of Information
Systems, International University of Information Technology Satybaldiyeva R.
Candidate of physico-mathematical sciences, associate professor of Department of
Electrical Engineering and Computer Science, Kazakh-British Technical
University Ualieva I.
EXPLANATORY NOTE
The purpose of this discipline is to train highly qualified professionals with
skills to use of modern operating systems in the professional field. Operating
systems define an abstraction of hardware and manage resource sharing among the
computer’s users. The topics in this area explain the interfacing an operating
system to networks, the difference between the kernel and user modes, and key
approaches to operating system design and implementation.
As a result of studying the discipline, students will
- know: fundamental principles of operating system design; the purpose,
functions, and classification of operating systems; principles of resource
management; the concepts of multiprogramming, processes and threads; principles
of virtualization and mobility of operating systems.
- Be able to: implement basic algorithms of process and thread scheduling
and synchronization, memory management, and disk scheduling; develop
multithreaded applications; take into account the features of a particular operating
system; use the tools of operating systems.
- Be skilled in: installation of operating systems, account management,
configuring of user work environment parameters, configuring of hardware
devices, disk and file system management, configuring of the network settings.
Role and value of discipline: The study of this discipline will allow to give
basic knowledge of operating systems, necessary for the successful learning of
materials of educational disciplines associated with the use of modern information
technologies and the knowledge required for successful practical work in various
operating environments.
The disciplines preceding studying of this discipline: Information and
communication technologies. Algorithms and data structures. Programming
languages and technologies.
124
THEMATIC PLAN
№
Theme Name
11.
Introduction to operating systems. Review of computer hardware.
12.
Process management.
13.
Mutual exclusion and synchronization.
14.
Memory management.
15.
Input-output management.
16.
File systems.
17.
Security management.
18.
Virtual machines.
19.
Distributed systems.
20.
Case study: Windows operating system; Linux operating system.
CONTENT OF DISCIPLINE
Introduction
Purpose of the course: study of the concept of operating systems, the
fundamental principles of operating system design and development.
Objectives of the course:
- to give knowledge about the purpose, functions, and classification of
modern operating systems;
- to give knowledge about key concepts, abstractions, and mechanisms of
operating systems;
- to elaborate the practical skills required for work in modern operating
systems;
- to introduce modern trends of operating system design and development.
BASIC PART
Introduction to Operating Systems. Review of computer hardware. The
role and purpose of operating system. The functionality of a typical operating
system. Design Considerations: efficiency, reliability, flexibility, portability,
safety, compatibility. The evolution of hardware / software. Device organization.
Interrupts: methods and implementations.
Process Management. Process model and process states. Multitasking
system. Thread management. Thread model and thread states. Uniprocessor
process scheduling. Preemptive and non-preemptive scheduling. Schedulers and
policies.
Mutual exclusion and synchronization. Process and thread interaction and
synchronization.
Parallel
asynchronous
processes
and
inter-process
communication. Mutual exclusion. Semaphores. Monitors. Deadlocks. Deadlock
detection, prevention, and avoidance.
125
Memory management. Review of physical memory and hardware memory
management. Caching. Virtual memory. Translation of virtual to physical address.
Virtual memory page replacement algorithms.
Input-output management. Characteristics of sequential and parallel
devices. Buffering strategy. Direct Memory Access. Recovery from failures. Disk
scheduling. RAID-arrays.
File systems. Files: data, metadata, operations, organization, buffering.
Directories: contents and structure. Mounting and unmounting file systems. Virtual
file systems. Naming, searching, access, backups.
Security Management. Authentication. Access control. Intrusion detection.
Protection against malicious software. Protection against buffer overflow attacks.
Virtual machines. The types of virtual machines. Hypervisors. Software
virtualization. Hardware virtualization. Virtualization at the level of operating
systems. The cost of virtualization.
Distributed systems. Distributed operating systems. Distributed file
systems. Remote Procedure Calls. Distributed synchronization.
Case study: Windows operating system; Linux operating system.
Principles of operating system design. System components. Memory management.
Processor Scheduling. Memory management. File systems.
APPROXIMATE LIST OF THEMES OF LABORATORY STUDIES
1.
The study of hardware characteristics and configuration.
2.
Implementation of process scheduling algorithms.
3.
Implementation of threads.
4.
Development of multithreaded applications.
5.
Implementation of semaphores and monitors.
6.
Implementation of deadlock prevention algorithms.
7.
Implementation of virtual page replacement algorithms.
8.
Implementation of disk scheduling algorithms.
9.
Windows / LINUX operating systems installation.
10. Creating and configuring a user profile.
11. The main principles of the functioning of Windows / LINUX operating
systems.
12. User and group management.
13. Process management in Windows / LINUX operating systems.
14. File management in Windows / LINUX operating systems.
15. Diagnosing of failures and faults of operating system and troubleshooting.
APPROXIMATE LIST OF TASKS FOR INDEPENDENT WORK OF
STUDENT
1.
Comparison of process management approaches in a variety of operating
systems.
126
2.
Simulation of scheduling processes.
3.
Analysis of the performance of the virtual page replacement algorithms.
4.
Analysis of the performance of disk scheduling algorithms.
5.
Comparison of memory management approaches in a variety of operating
systems.
6.
Review of the modern operating systems.
7.
Operating systems for smartphones, tablets, and other mobile devices.
8.
Implementation of process scheduling simulator.
9.
Implementation of memory management simulator.
10. Implementation of file system simulator.
11. Implementation of distributed applications.
REFERENCES
Basic:
1.
William Stallings Operating Systems: Internals and Design Principles, 7/E,
Prentice Hall, 2011.
2.
Andrew S. Tanenbaum and Albert S. Woodhull, Operating Systems Design
and Implementation. 3/E. 1080 pages, Prentice Hall Software series, January
2006.
3.
Silberschatz Abraham, Galvin Peter Baer and Gadne Greg. Operating system
concepts. 9/E. Published by John Wiley & Sons, 2012.
4.
Andrew S. Tanenbaum. Computer Networks. 5/E, Prentice Hall PTR, 2010.
5.
Andrew S. Tanenbaum Structured Computer Organization. Pearson; 5/E,
2009.
Additional:
1.
William Stallings Computer Organization and Architecture, 9/E, Prentice
Hall, 2012.
2.
Tanenbaum. Andrew S. Modem Operating Systems. 3/E. Published by
Prentice-Hall, 2007.
3.
Tanenbaum S. Andrew S. Distibuted Operating Systems. 2/E. Published by
Prentice-Hall, 2006.
127
KS 3207 КОМПЬЮТЕРНЫЕ СЕТИ
объем 2 кредита
Авторы:
кандидат физико-математических наук, доцент Пыркова А.Ю.
старший преподаватель кафедры информатики Черикбаева Л.Ш.
Рецензенты:
доктор PhD, профессор, декан факультета информационных
технологий КБТУ Акжалова А.Ж.
доктор технических наук, профессор, профессор кафедры
информационных систем Жомартова Ш.А.
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
Назначение дисциплины: данная дисциплина предназначена для
формирования у студентов системных знаний о существующих методах
проектирования и поддержки компьютерных сетей, проблемах безопасности,
связанных с эксплуатацией локальных и глобальных сетей.
В результате изучения данной дисциплины студент должен
знать:
- основные понятия и определения теории сетей;
- основы построения LAN и WAN сетей;
- описания протоколов маршрутизации;
- основные положения коммутаторов и маршрутизаторов.
уметь:
- производить конфигурирование сетей;
- осуществлять выбор необходимого оборудования для сетей.
иметь представление:
- о методах построения сетей;
- о существующих протоколах и их особенностях;
- о способах оптимизации сетей.
быть компетентным:
- в умении проектировать компьютерные сети;
- в умении проводить верификацию и диагностику неисправностей сети;
- при выборе приемлемой политики безопасности.
Роль и значение дисциплины: данная дисциплина является
дисциплиной бакалавриата и развивает тематику дисциплин, посвященных
организации систем и сетей.
Дисциплины, предшествующие изучению данной дисциплины:
Информационно-коммуникационные технологии.
Дисциплины, содержащие знания, умения и навыки, необходимые
для
освоения
изучаемой
дисциплины:
Информационно-
коммуникационные технологии.
128
Достарыңызбен бөлісу: |