- •Учебно-методический комплекс дисциплины «Системное программирование»
- •Алматы, 2016
- •Опись содержания учебно-методического комплекса дисциплины
- •1. Цели и задачи дисциплины.
- •2. Содержание дисциплины
- •2.1.Лекционный курс
- •2.3. Лабораторные занятия
- •2.4. Самостоятельная работа студентов под руководством преподавателя
- •2.5. Самостоятельная работа студентов
- •3. Учебно-методические материалы по дисциплине
- •3.1.Список рекомендуемой литературы
- •3.2. Вопросы для подготовки к экзамену
- •1. Информация о дисциплине
- •2. Краткое описание дисциплины
- •4. Литература для изучения
- •5. Критерии оценки
- •Карта учебно-методической обеспеченности
- •Тезисы лекций
- •Лекция 2. Базовые конструкции структурного программирования
- •Лекция 3. Указатели и массивы
- •Лекция 4. Типы данных, определяемые пользователем
- •Лекция 5. Модульное программирование
- •Лекция 6. Объектно-ориентированное программирование
- •Лекция 7. Операционные системы и их интерфейсы
- •Лекция 8. Управление потоками и процессами
- •Лекция 9. Синхронизация потоков и процессов
- •Лекция 10. Обмен данными между параллельными процессами
- •Лекция 11. Структурная обработка исключений
- •Лекция 12. Работа с виртуальной памятью
- •Лекция 13. Динамически подключаемые библиотеки
- •Планы семинарских, практических, лабораторных и студийных занятий
- •4.1. Индивидуальное задание:
- •4.2. Описание метода решения
- •4.3. Описание логической структуры
- •4.4. Данные для тестирования
- •4.5. Текст программы
- •5.1. Описание методов решения
- •5.1.1. Представление в памяти
- •5.1.2. Модульная структура программного изделия
- •5.2. Описание логической структуры
- •5.2.1. Общие переменные
- •5.3. Программа пользователя
- •5.4. Тексты программных модулей
- •5.5. Варианты.
- •5. Варианты индивидуальных заданий
- •6. Пример решения задачи
- •6.1. Индивидуальное задание:
- •6.2. Описание методов решения
- •6.3. Описание логической структуры
- •6.4. Текст программы
- •5.1. Структура данных программы
- •5.2. Структура программы
- •5.3. Описание переменных
- •5.4. Описание алгоритма программы
- •5.5. Текст программы
- •5.6. Результаты работы программы
- •5.1. Индивидуальное задание.
- •5.2. Разработка алгоритма
- •5.3. Текст программы
- •5.4. Результаты работы программы
- •4. Порядок выполнения
- •5. Индивидуальные задания
- •6. Пример решения задачи
- •6.3. Индивидуальное задание.
- •6.4. Разработка алгоритма решения
- •6.4.1. Структура программы
- •6.5. Текст программы
- •6.6. Результаты работы программы
- •4. Порядок выполнения
- •5. Пример решения задачи
- •5.1. Индивидуальное задание.
- •5.4. Разработка алгоритм решения
- •5.5. Текст программы
- •5.6. Результаты работы программы
- •5.1. Разработка алгоритма решения
- •5.2. Текст программы
- •5.3. Результаты работы программы
- •5.1. Разработка алгоритма решения
- •5.1.1. Структура программы
- •5.1.2. Описание переменных
- •5.1.3. Описание алгоритм программы
- •5.2. Текст программы
- •5.3. Результаты работы программы
- •5.1. Разработка алгоритма решения
- •5.1.1. Структура программы
- •5.1.2. Описание переменных
- •5.1.3. Описание алгоритма программы
- •5.2. Текст программы
- •5.6. Результаты работы программы
- •5.1. Разработка алгоритма решения
- •5.1.1. Структура программы
- •5.1.2. Описание переменных
- •5.1.3. Описание алгоритма программы
- •5.2. Текст программы
- •5.3. Результаты работы программы
- •5.1. Разработка алгоритма решения
- •5.1.3. Описание алгоритма программы
- •5.2. Текст программы
- •5.1. Разработка алгоритма решения
- •5.1.1. Структура программы
- •5.1.2. Описание переменных
- •5.3. Результаты работы программы
- •5.1.3. Описание алгоритма программы
- •5.2 Текст программы
- •5.3. Результаты работы программы
- •Материалы для мониторинга и контроля образованности обучающихся (уровня сформированности предметных компетенций):
- •Методические разработки (рекомендации)
- •Официально изданные преподавателями учебные и учебно-методические пособия (при условии публикации)
- •Перечень:
- •Учебная литература и/или материалы на электронных носителях
1. Цели и задачи дисциплины.
Целью дисциплины «Системное программирование» является изучение теоретических основ современного системного программирования с использованием интерфейса Win32 API, принципов синхронизации и диспетчеризации потоков и процессов, способов обмена данными между процессами, управления устройствами компьютера и файлами.
Основными задачами дисциплины «Системное программирование» являются:
формирование представлений об интерфейсах программирования API Win32, API Win64;
знакомство с основными принципами работы с файловой системы, обеспечения консольного ввода/вывода;
освоение методов управления памятью для отображения файлов в оперативной памяти с целью их последующей обработки;
введение в теорию управления процессами и потоками, выполнения синхронизации процессов для повышения эффективности их работы;
обеспечение структурной обработки исключений, возникающих при выполнении сложных вычислений;
изучение возможностей использования статических и динамических библиотек.
В результате изучения дисциплины «Системное программирование» студент должен знать:
принципы построения современных операционных систем и особенности их применения;
понятие программных модулей как разделяемых ресурсов в операционных системах и средах;
принципы разработки многопоточных программных модулей и системные примитивы синхронизации;
технологии разработки алгоритмов и программ, методов отладки и решения задач на ЭВМ в различных режимах, основы объектно-ориентированного подхода к программированию;
cтудент должен уметь:
использовать средства, предоставляемые интерфейсом прикладных программ (API) одной из современных ОС;
осуществлять проектирование и реализацию типовых разновидностей пользовательского интерфейса системных программных средств;
разрабатывать интерфейсы библиотек динамической компоновки;
cтудент должен владеть:
навыками работы с различными операционными системами и их администрирования;
методами и инструментальными средствами отладки и тестирования программ;
языком программирования С++;
профессиональными средствами разработки системного программного обеспечения, включая оригинальную справочную документацию от поставщиков программных технологий.
Пререквизиты дисциплины: Программирование 1-3.
Постреквизиты дисциплины: дипломное проектирование.
2. Содержание дисциплины
2.1.Лекционный курс
№ темы |
Наименование тем, лекций |
Содержание тем |
Объем в часах |
Неделя семестра |
Тема 1 |
Объектно-ориентированное программирование |
Классы. Конструкторы. Деструкторы. Наследование. Шаблоны классов. |
2 |
1-2 |
Тема 2 |
Операционные системы и их интерфейсы |
Назначение операционной системы. Интерфейс программирования приложений Win32 API. Объекты и их дескрипторы в Windows. |
2 |
3-4 |
Тема 3 |
Управление потоками и процессами |
Определение потока в Windows. Процессы в Windows. Динамическое изменение приоритетов потоков. |
2 |
5-6 |
Тема 4 |
Синхронизация потоков и процессов |
Программная и аппаратная реализация синхронизации. Критические секции. Объекты синхронизации и функции ожидания. Взаимоисключающий доступ к переменным. Тупики. |
2 |
7-8 |
Тема 5 |
Обмен данными между параллельными процессами |
Способы передачи данных между процессами. Работа с анонимными и именованными каналами в Windows. |
2 |
9-10 |
Тема 6 |
Структурная обработка исключений |
Фреймовая обработка исключений. Исключения и их обработчики. Генерация программных исключений. Передача управления и выход из фрейма. Финальная обработка исключений |
2 |
11-12 |
Тема 7 |
Работа с виртуальной памятью |
Концепция виртуальной памяти. Алгоритмы замещения страниц. Рабочее множество процесса. Организация виртуальной памяти в Windows. Работа с кучей в Windows. |
2 |
13-14 |
Тема 8 |
Динамически подключаемые библиотеки |
Концепция динамически подключаемых библиотек. Создание DLL. Динамическая загрузка и отключение DLL. . Использование файла определений. Локальная память потока. |
1 |
15 |
|
Всего: |
15 |
|
|
