Санкт- Петербургское государственное бюджетное
профессиональное образовательное учреждение
"Политехнический колледж городского хозяйства"
Системное программирование
рабочая программа дисциплины
09.02.07 Информационные системы и программирование
Правительство Санкт-Петербурга
Комитет по науке и высшей школе
Приложение
к ОП СПО по специальности
09.02.07 Информационные системы и программирование
, утвержденной приказом от
09.12.2016 г. №1547-ОД
Виды контроля в семестрах:
зачет с оценкой 5
экзамен 6
Распределение часов дисциплины по семестрам
Организация-разработчик:
Санкт-Петербургское государственное бюджетное профессиональное образовательное учреждение «Политехнический колледж городского хозяйства».
Рабочая программа дисциплины
Системное программирование
разработана в соответствии с ФГОС СПО:
Федеральный государственный образовательный стандарт среднего профессионального образования по специальности 09.02.07 ИНФОРМАЦИОННЫЕ СИСТЕМЫ И ПРОГРАММИРОВАНИЕ (приказ Минобрнауки России от 09.12.2016 г. № 1547)
составлена на основании учебного плана:
по специальности Информационные системы и программирование
1. ЦЕЛИ ОСВОЕНИЯ ДИСЦИПЛИНЫ
2. МЕСТО ДИСЦИПЛИНЫ В СТРУКТУРЕ ОБРАЗОВАТЕЛЬНОЙ ПРОГРАММЫ
3. ПЛАНИРУЕМЫЕ РЕЗУЛЬТАТЫ ОСВОЕНИЯ ДИСЦИПЛИНЫ
ОК 01.: Выбирать способы решения задач профессиональной деятельности применительно к различным контекстам
ОК 02.: Использовать современные средства поиска, анализа и интерпретации информации и информационные технологии для выполнения задач профессиональной деятельности
ОК 03.: Планировать и реализовывать собственное профессиональное и личностное развитие, предпринимательскую деятельность в профессиональной сфере, использовать знания по финансовой грамотности в различных жизненных ситуациях
ОК 04.: Эффективно взаимодействовать и работать в коллективе и команде
ОК 05.: Осуществлять устную и письменную коммуникацию на государственном языке Российской Федерации с учетом особенностей социального и культурного контекста
ОК 06.: Проявлять гражданско-патриотическую позицию, демонстрировать осознанное поведение на основе традиционных общечеловеческих ценностей, в том числе с учетом гармонизации межнациональных и межрелигиозных отношений, применять стандарты антикоррупционного поведения
ОК 07.: Содействовать сохранению окружающей среды, ресурсосбережению, применять знания об изменении климата, принципы бережливого производства, эффективно действовать в чрезвычайных ситуациях
ОК 08.: Использовать средства физической культуры для сохранения и укрепления здоровья в процессе профессиональной деятельности и поддержания необходимого уровня физической подготовленности
ОК 09.: Пользоваться профессиональной документацией на государственном и иностранном языках
ПК 1.1.: Формировать алгоритмы разработки программных модулей в соответствии с техническим заданием.
ПК 1.2.: Разрабатывать программные модули в соответствии с техническим заданием.
ПК 1.3.: Выполнять отладку программных модулей с использованием специализированных программных средств.
ПК 1.4.: Выполнять тестирование программных модулей.
ПК 1.5.: Осуществлять рефакторинг и оптимизацию программного кода.
ПК 1.6.: Разрабатывать модули программного обеспечения для мобильных платформ.
В результате освоения дисциплины обучающийся должен:
4. ТЕМАТИЧЕСКОЕ ПЛАНИРОВАНИЕ ДИСЦИПЛИНЫ
Наименование разделов и тем /вид занятия/
Раздел 1. Тема 1.4.1 Программирование на языке низкого уровня
Лекция 1. Введение. Подсистемы управления ресурсами компьютера
1.1. Назначение операционной системы/Пр/
Практическая работа 1. Интерфейс программирования приложений Win32 API. Типы данных в Win32 API. Объекты и их дескрипторы в Windows/Пр/
Лекция 2. Программирование приложений Win32 API
1.3. Интерфейс программирования приложений Win32 API
1.4. Типы данных в Win32 API
1.5. Объекты и их дескрипторы в Windows
/Пр/
Практическая работа 2.Потоки и процессы в Windows/Пр/
Лекция 3. Управление потоками и процессами
2.1. Определение потока
2.2. Контекст потока
2.3. Состояния потока
2.4. Диспетчеризация и планирование потоков
2.5. Определение процесса
/Пр/
Практическая работа 3. Потоки и процессы в Windows. Потоки/Пр/
Лекция 4. Процессы в Windows
3.1. Определение потока
3.2. Создание потоков
3.3. Завершение потоков
3.4. Приостановка и возобновление потоков
3.5. Псевдодескрипторы потоков
3.6. Обработка ошибок в Windows.
/Пр/
Практическая работа 4. Потоки и процессы в Windows. Процессы/Пр/
Тема 2. Процессы в Windows 4.1. Определение процесса
4.2. Создание процессов
4.3. Завершение процессов
4.4. Наследование дескрипторов
/Пр/
Практическая работа 4. Процессы в Windows /Пр/
Тема 2. Процессы в Windows 4.5. Дублирование дескрипторов
4.6. Псевдодескрипторы процессов
4.7. Обслуживание потоков
4.8. Динамическое изменение приоритетов потоков
дублирование дескрипторов
/Пр/
Практическая работа 4. Процессы в Windows/Пр/
Тема 2. Синхронизация потоков и процессов. Синхронизация
5.1. Непрерывные действия и команды.
5.2. Определение синхронизации
5.3. Программная реализация синхронизации
5.4. Аппаратная реализация синхронизации
5.5. Примитивы синхронизации
/Пр/
Практическая работа 5. Синхронизация потоков и процессов/Пр/
Тема 2. Синхронизация потоков и процессов. Синхронизация потоков в Windows
6.1. Критические секции
6.2. Объекты синхронизации и функции ожидания
6.3. Мьютексы
6.4. События
6.5. Семафоры
/Пр/
Практическая работа 6. Синхронизация потоков в Windows. Вход в критическую секцию/Пр/
Тема 2. Синхронизация потоков и процессов. Взаимоисключающий доступ к переменным
7.1. Атомарные операции
7.2. Замена значения переменной
7.3. Условная замена значения переменной
7.4. Инкремент и декремент переменной
7.5. Изменение значения переменной
/Пр/
Практическая работа 6. Синхронизация потоков и процессов. Взаимоисключающий доступ к переменным/Пр/
Тема 2. Синхронизация потоков и процессов. Тупики.
8.1. Определение тупиков
8.2. Классификация системных ресурсов
8.3. Обнаружение тупиков
8.4. Восстановление заблокированного процесса
8.5. Предотвращение тупиков
8.6. Безопасное завершение потоков в Windows
/Пр/
Практическая работа 7. Синхронизация потоков и процессов. Тупики/Пр/
Тема 3. Программирование консольных приложений. Структура консольного приложения
9.1. Структура консоли
9.2. Входной буфер консоли
9.3. Буфер экрана
/Пр/
Практическая работа 8. Программирование консольных приложений/Пр/
Тема 3. Программирование консольных приложений. Работа с консолью
10.1. Создание консоли
10.2. Освобождение консоли.
10.3. Стандартные дескрипторы ввода-вывода
/Пр/
Практическая работа 9. Программирование консольных приложений. Итоговое занятие. Дифференцированный зачет
/Пр/
Тема 4.Программирование консольных приложений. Работа с окном консоли
11.1. Получение дескриптора окна консоли
11.2. Получение и изменение заголовка консоли
11.3. Определение максимального размера окна
11.4. Установка координат окна/Пр/
Практическая работа 9. Программирование консольных приложений. Работа с окном консоли/Пр/
Тема 4.Программирование консольных приложений.
Работа с буфером экрана
12.1. Создание и активация буфера экрана
12.2. Определение и установка параметров буфера экрана
12.3. Функции для работы с курсором
12.4. Чтение и установка атрибутов консоли/Пр/
Практическая работа 10. Программирование консольных приложений. Работа с буфером экрана/Пр/
Тема 3. Программирование консольных приложений.
Ввод-вывод на консоль
13.1. Ввод-вывод высокого уровня
13.2. Ввод низкого уровня
13.3. Вывод низкого уровня
13.4. Режимы ввода-вывода консоли
13.5. Прокрутка буфера экрана/Пр/
Практическая работа № 9. Программирование консольных приложений/Пр/
Тема 4. Обмен данными между параллельными процессами. Передача данных
14.1. Способы передачи данных между процессами
14.2. Связи между процессами
14.3. Передача сообщений.
14.4. Синхронный и асинхронный обмен данными
14.5. Буферизация
/Пр/
Практическая работа 10.Обмен данными между параллельными процессами/Пр/
Тема 4. Обмен данными между параллельными процессами. Работа с анонимными каналами в Windows
15.1. Анонимные каналы
15.2. Создание анонимных каналов
15.3. Соединение клиентов с анонимным каналом
15.4. Обмен данными по анонимному каналу
15.5. Примеры работы с анонимными каналами
15.6. Перенаправление стандартного ввода-вывода
/Пр/
Практическая работа 11. Обмен данными. Работа с анонимными каналами в Windows
/Пр/
Тема 4. Обмен данными между параллельными процессами. Работа с именованными каналами в Windows
16.1. Именованные каналы
16.2. Создание именованных каналов
16.3. Соединение сервера с клиентом
16.4. Соединение клиентов с именованным каналом
16.5. Обмен данными по именованному каналу
16.6. Копирование данных из именованного канала
16.7. Передача транзакций по именованному каналу
16.8. Определение и изменение состояния именованного канала
16.9. Получение информации об именованном канале
/Пр/
Практическая работа 12. Обмен данными. Работа с именованными каналами в Windows/Пр/
Тема 5. Обмен данными между параллельными процессами. Работа с почтовыми ящиками в Windows
17.1. Концепция почтовых ящиков
17.2. Создание почтовых ящиков
17.3. Соединение клиентов с почтовым ящиком
17.4. Обмен данными через почтовый ящик
17.5. Получение информации о почтовом ящике
17.6. Изменение времени ожидания сообщения
/Пр/
Практическая работа 13. Обмен данными. Работа с почтовыми ящиками в Windows/Пр/
Тема 5. Структурная обработка исключений. Фреймовая обработка исключений
18.1. Исключения и их обработчики
18.2. Получение кода исключения
18.3. Функции фильтра
18.4. Получение информации об исключении
18.5. Генерация программных исключений
18.6. Необработанные исключения
18.7. Обработка исключений с плавающей точкой
18.8. Обработка вложенных исключений
18.9. Передача управления и выход из фрейма
18.10. Встраивание SEH в механизм исключений С++
/Пр/
Практическая работа 14. Структурная обработка исключений./Пр/
Тема 6. Структурная обработка исключений. Финальная обработка исключений
18.11. Финальные блоки фрейма
18.12. Проверка завершения фрейма
18.13. Обработка вложенных финальных блоков
/Пр/
Практическая работа 14. Структурная обработка исключений/Пр/
Тема 7. Создание сокета. Параметры сокета. Потоковые сокеты
19.1 Подключение всех необходимых библиотек Win32API для работы с сокетами
19.2 Инициализация сокетных интерфейсов Win32API
19.3 Создание сокета и его инициализация
19.4 Привязка сокета к паре IP-адрес/Порт
/Пр/
Практическая работа 15. Сетевое программирование сокетов/Пр/
Тема 7. Создание сокета. Параметры сокета. Связываение сокета
19.1 (для Сервера): «Прослушивание» привязанного порта для идентификации подключений
19.2 (для Клиента). Организация подключения к серверу
19.3 (только для Сервера). Подтверждение подключения
19.4 Передача данных между Клиентом и Сервером
/Пр/
Практическая работа 15. Сетевое программирование сокетов/Пр/
Тема 8. Работа с виртуальной памятью. Выделение памяти процессам.
20.1 Концепция виртуальной памяти
20.2 Организация виртуальной памяти
20.3 Алгоритмы замещения страниц
20.4 Рабочее множество процесс
20.5 Организация виртуальной памяти в Windows
/Пр/
Практическая работа 16. Работа с виртуальной памятью в Windows/Пр/
Тема 8. Виртуальная память. Работа с виртуальной памятью в Windows
22.6 Работа с виртуальной памятью в Windows
22.7 Состояния виртуальной памяти процесса
22.8 Резервирование, распределение и освобождение виртуальной памяти
22.9 Блокирование виртуальных страниц в реальной памяти
22.10 Изменение атрибутов доступа к виртуальной странице
/Пр/
Практическая работа 16. Работа с виртуальной памятью в Windows/Пр/
Тема 6. Виртуальная память. Работа с виртуальной памятью в Windows 22.11 Управление рабочим множеством страниц процесса
22.12 Инициализация и копирование блоков виртуальной памяти
22.13 Определение состояния памяти
22.14 Работа с виртуальной памятью в другом процессе
/Пр/
Практическая работа 16. Работа с виртуальной памятью в Windows/Пр/
Тема 6. Виртуальная память. Работа с кучей в Windows
20.1 Создание и удаление кучи.
20.2 Распределение и освобождение памяти из кучи
20.3 Перераспределение памяти из кучи
20.4 Блокирование и разблокирование кучи
20.5 Проверка состояния кучи
20.6 Уплотнение кучи
/Пр/
Практическая работа 17. Работа с виртуальной памятью в Windows. Кучи/Пр/
Тема 7. Динамически подключаемые библиотеки DLL. Отображение файлов в память
21.1 Концепция механизма отображения файлов в память
21.2 Создание и открытие объекта, отображающего файл
21.3 Отображение файла в память
21.4 Обмен данными между процессами через отображаемый в память файл
21.5 Сброс вида в файл
/Пр/
Практическая работа 18.Динамически подключаемые библиотеки DLL/Пр/
Тема 7. Динамически подключаемые библиотеки 21.6 Концепция динамически подключаемых библиотек
21.7 Создание DLL
21.8 Динамическая загрузка и отключение DLL
21.9 Использование DLL
21.10 Использование файла определений
21.11 Статическая загрузка DLL
/Пр/
Практическая работа 18.Динамически подключаемые библиотеки DLL /Пр/
Самостоятельная работа № 20. Работа с виртуальной памятью в Windows/СР/
Самостоятельная работа. Именованные каналы/СР/
Самостоятельная работа. Тестирование с использованием механизма обработки исключительных ситуаций/СР/
1 Побегайло А. П. П41 Системное программирование в Windows. — СПб.: БХВ-Петербург, 2006. — 1056 с.: ил.
2 Деревянко А.С., Солощук М.Н. Операционные системы.Часть I. Построение и функционирование операционных систем. Интернет-ресурс https://studfile.net/preview/985562/ или https://coollib.net/b/526781-a-s-derevyanko-operatsionnyie-sistemyi-chast-ii-obzor-operatsionnyih-sistem-uchebnoe-posobie/readp
3 Системное программирование. Евдокимов А.А. Майстренко Н.В. Интернет-ресурс https://www.tstu.ru/book/elib3/mm/2016/evdokimov/site/page55.55
4 Щупак Ю. WIN32 API. РАзработка приложений для Windows.— СПб.: Питер, 2008. — 592 с.: ил.
5.1. Перечень ресурсов информационно-телекоммуникационной сети "Интернет"
5.2. Перечень программного обеспечения
5.3. Перечень информационных справочных систем
6. МАТЕРИАЛЬНО-ТЕХНИЧЕСКОЕ ОБЕСПЕЧЕНИЕ ДИСЦИПЛИНЫ
7. МЕТОДИЧЕСКИЕ УКАЗАНИЯ ДЛЯ ОБУЧАЮЩИХСЯ ПО ДИСЦИПЛИНЕ