2024-2025_ИП_09_02_07_2022_ИП-22-7к_plx_Системное программирование
 
Санкт- Петербургское государственное бюджетное

профессиональное образовательное учреждение

"Политехнический колледж городского хозяйства"

Системное программирование
предварительная программа дисциплины
Специальность
09.02.07 Информационные системы и программирование

Правительство Санкт-Петербурга

Комитет по науке и высшей школе

Приложение

к ОП СПО  по специальности

09.02.07 Информационные системы и программирование

, утвержденной приказом от

09.12.2016 г. №1547-ОД

 
часов на контроль
12
самостоятельная работа
12
контактная работа
116
в том числе:
Часов по учебному плану
140
Общая трудоемкость
140 часов
Форма обучения
очная
Квалификация
Программист
Виды контроля  в семестрах:
зачет с оценкой 5 экзамен 6
 
 
Распределение часов  дисциплины по семестрам
Семестр

5

6

Итого
Вид занятий
УП
РП
УП
РП
УП
РП
Практические
48
48
68
68
116
116
Контактная работа

48
48
68
68
116
116
Сам. работа
12
12
12
12
Часы на контроль
12
12
12
12
Итого
48
48
92
92
140
140
 
 
Разработчик(и): рабочая группа
Организация-разработчик:

Санкт-Петербургское государственное бюджетное профессиональное образовательное учреждение «Политехнический колледж городского хозяйства».

 
 
Рабочая программа дисциплины
Системное программирование
разработана в соответствии с ФГОС СПО:

Федеральный государственный образовательный стандарт среднего профессионального образования по специальности 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.: Разрабатывать модули программного обеспечения для мобильных платформ.
 
 
 
 
 
 
 
 
 
 
 
 
 
В результате освоения дисциплины обучающийся должен:
 
 
3.1
Знать:
 
 
3.2
Уметь:
 
4. ТЕМАТИЧЕСКОЕ ПЛАНИРОВАНИЕ ДИСЦИПЛИНЫ
 
Код занятия
Наименование разделов и тем /вид занятия/
Семестр / Курс
Часов
Компетен-

ции

Литература
Примечание
 
Раздел 1. Тема 1.4.1 Программирование на языке низкого уровня
 
1. 1
Лекция 1. Введение. Подсистемы управления ресурсами компьютера

1.1.   Назначение операционной системы/Пр/

5
2
 
1. 2
Практическая работа 1. Интерфейс программирования приложений Win32 API. Типы данных в Win32 API. Объекты и их дескрипторы в Windows/Пр/
5
2
 
1. 3
Лекция 2.  Программирование приложений Win32 API

1.3.   Интерфейс программирования приложений Win32 API

1.4.   Типы данных в Win32 API

1.5.   Объекты и их дескрипторы в Windows

/Пр/

5
2
 
1. 4
Практическая работа 2.Потоки и процессы в Windows/Пр/
5
2
 
1. 5
Лекция 3. Управление потоками и процессами

2.1.   Определение потока

2.2.   Контекст потока

2.3.   Состояния потока

2.4.   Диспетчеризация и планирование потоков

2.5.   Определение процесса

/Пр/

5
2
 
1. 6
Практическая работа 3. Потоки и процессы в Windows. Потоки/Пр/
5
2
 
1. 7
Лекция 4. Процессы в Windows

3.1.   Определение потока

3.2.   Создание потоков

3.3.   Завершение потоков

3.4.   Приостановка и возобновление потоков

3.5.   Псевдодескрипторы потоков

3.6.   Обработка ошибок в Windows.

/Пр/

5
2
 
1. 8
Практическая работа 4. Потоки и процессы в Windows. Процессы/Пр/
5
2
 
1. 9
Тема 2. Процессы в Windows                                                                      4.1.   Определение процесса

4.2.   Создание процессов

4.3.   Завершение процессов

4.4.   Наследование дескрипторов

/Пр/

5
2
 
1. 10
Практическая работа 4. Процессы в Windows  /Пр/
5
2
 
1. 11
Тема 2. Процессы в Windows                                                                           4.5.   Дублирование дескрипторов

4.6.   Псевдодескрипторы процессов

4.7.   Обслуживание потоков

4.8.   Динамическое изменение приоритетов потоков

дублирование дескрипторов

/Пр/

5
2
 
1. 12
Практическая работа 4. Процессы в Windows/Пр/
5
2
 
1. 13
Тема 2.    Синхронизация потоков и процессов. Синхронизация

5.1.   Непрерывные действия и команды.

5.2.   Определение синхронизации

5.3.   Программная реализация синхронизации

5.4.   Аппаратная реализация синхронизации

5.5.   Примитивы синхронизации

/Пр/

5
2
 
1. 14
Практическая работа 5. Синхронизация потоков и процессов/Пр/
5
2
 
1. 15
Тема 2. Синхронизация потоков и процессов.  Синхронизация потоков в Windows

6.1.   Критические секции

6.2.   Объекты синхронизации и функции ожидания

6.3.   Мьютексы

6.4.   События

6.5.   Семафоры

/Пр/

5
2
 
1. 16
Практическая работа 6. Синхронизация потоков в Windows. Вход в критическую секцию/Пр/
5
2
 
1. 17
Тема 2. Синхронизация потоков и процессов.  Взаимоисключающий доступ к переменным

7.1.   Атомарные операции

7.2.   Замена значения переменной

7.3.   Условная замена значения переменной

7.4.   Инкремент и декремент переменной

7.5.   Изменение значения переменной

/Пр/

5
2
 
1. 18
Практическая работа 6. Синхронизация потоков и процессов.  Взаимоисключающий доступ к переменным/Пр/
5
2
 
1. 19
Тема 2. Синхронизация потоков и процессов. Тупики.

8.1.   Определение тупиков

8.2.   Классификация системных ресурсов

8.3.   Обнаружение тупиков

8.4.   Восстановление заблокированного процесса

8.5.   Предотвращение тупиков

8.6.   Безопасное завершение потоков в Windows

/Пр/

5
2
 
1. 20
Практическая работа 7. Синхронизация потоков и процессов. Тупики/Пр/
5
2
 
1. 21
Тема 3. Программирование консольных приложений. Структура консольного приложения

9.1.   Структура консоли

9.2.   Входной буфер консоли

9.3.   Буфер экрана

/Пр/

5
2
 
1. 22
Практическая работа 8. Программирование консольных приложений/Пр/
5
2
 
1. 23
Тема 3. Программирование консольных приложений. Работа с консолью

10.1.   Создание консоли

10.2.   Освобождение консоли.

10.3.   Стандартные дескрипторы ввода-вывода

/Пр/

5
2
 
1. 24
Практическая работа 9. Программирование консольных приложений. Итоговое занятие. Дифференцированный зачет

/Пр/

5
2
 
1. 25
Тема 4.Программирование консольных приложений. Работа с окном консоли

11.1.   Получение дескриптора окна консоли

11.2.   Получение и изменение заголовка консоли

11.3.   Определение максимального размера окна

11.4.   Установка координат окна/Пр/

6
2
 
1. 26
Практическая работа 9. Программирование консольных приложений. Работа с окном консоли/Пр/
6
2
 
1. 27
Тема 4.Программирование консольных приложений.

Работа с буфером экрана

12.1.   Создание и активация буфера экрана

12.2.   Определение и установка параметров буфера экрана

12.3.   Функции для работы с курсором

12.4.   Чтение и установка атрибутов консоли/Пр/

6
2
 
1. 28
Практическая работа 10. Программирование консольных приложений. Работа с буфером экрана/Пр/
6
2
 
1. 29
Тема 3. Программирование консольных приложений.

Ввод-вывод на консоль

13.1.   Ввод-вывод высокого уровня

13.2.   Ввод низкого уровня

13.3.   Вывод низкого уровня

13.4.   Режимы ввода-вывода консоли

13.5.   Прокрутка буфера экрана/Пр/

6
2
 
1. 30
Практическая работа  № 9. Программирование  консольных приложений/Пр/
6
2
 
1. 31
Тема 4. Обмен данными между параллельными процессами. Передача данных

14.1.   Способы передачи данных между процессами

14.2.   Связи между процессами

14.3.   Передача сообщений.

14.4.   Синхронный и асинхронный обмен данными

14.5.   Буферизация

/Пр/

6
2
 
1. 32
Практическая работа 10.Обмен данными между параллельными процессами/Пр/
6
2
 
1. 33
Тема 4. Обмен данными между параллельными процессами. Работа с анонимными каналами в Windows

15.1.   Анонимные каналы

15.2.   Создание анонимных каналов

15.3.   Соединение клиентов с анонимным каналом

15.4.   Обмен данными по анонимному каналу

15.5.   Примеры работы с анонимными каналами

15.6.   Перенаправление стандартного ввода-вывода

/Пр/

6
2
 
1. 34
Практическая работа 11. Обмен данными. Работа с анонимными каналами в Windows

/Пр/

6
2
 
1. 35
Тема 4. Обмен данными между параллельными процессами. Работа с именованными каналами в Windows

16.1.   Именованные каналы

16.2.   Создание именованных каналов

16.3.   Соединение сервера с клиентом

16.4.   Соединение клиентов с именованным каналом

16.5.   Обмен данными по именованному каналу

16.6.   Копирование данных из именованного канала

16.7.   Передача транзакций по именованному каналу

16.8.   Определение и изменение состояния именованного канала

16.9.   Получение информации об именованном канале

/Пр/

6
2
 
1. 36
Практическая работа 12. Обмен данными. Работа с именованными каналами в Windows/Пр/
6
2
 
1. 37
Тема 5. Обмен данными между параллельными процессами. Работа с почтовыми ящиками в Windows

17.1.   Концепция почтовых ящиков

17.2.   Создание почтовых ящиков

17.3.   Соединение клиентов с почтовым ящиком

17.4.   Обмен данными через почтовый ящик

17.5.   Получение информации о почтовом ящике

17.6.   Изменение времени ожидания сообщения

/Пр/

6
2
 
1. 38
Практическая работа 13. Обмен данными. Работа с почтовыми ящиками в Windows/Пр/
6
2
 
1. 39
Тема 5. Структурная обработка исключений. Фреймовая обработка исключений

18.1.   Исключения и их обработчики

18.2.   Получение кода исключения

18.3.   Функции фильтра

18.4.   Получение информации об исключении

18.5.   Генерация программных исключений

18.6.   Необработанные исключения

18.7.   Обработка исключений с плавающей точкой

18.8.   Обработка вложенных исключений

18.9.   Передача управления и выход из фрейма

18.10.   Встраивание SEH в механизм исключений С++

/Пр/

6
2
 
1. 40
Практическая работа 14. Структурная обработка исключений./Пр/
6
2
 
1. 41
Тема 6. Структурная обработка исключений. Финальная обработка исключений

18.11.   Финальные блоки фрейма

18.12. Проверка завершения фрейма

18.13.   Обработка вложенных финальных блоков

/Пр/

6
2
 
1. 42
Практическая работа 14. Структурная обработка исключений/Пр/
6
2
 
1. 43
Тема 7. Создание сокета. Параметры сокета. Потоковые сокеты

19.1 Подключение всех необходимых библиотек Win32API для работы с сокетами

19.2 Инициализация сокетных интерфейсов Win32API

19.3 Создание сокета и его инициализация

19.4 Привязка сокета к паре IP-адрес/Порт

/Пр/

6
2
 
1. 44
Практическая работа  15. Сетевое программирование сокетов/Пр/
6
2
 
1. 45
Тема 7. Создание сокета. Параметры сокета. Связываение сокета

19.1  (для Сервера): «Прослушивание» привязанного порта для идентификации подключений

19.2 (для Клиента). Организация подключения к серверу

19.3 (только для Сервера). Подтверждение подключения

19.4 Передача данных между Клиентом и Сервером

/Пр/

6
2
 
1. 46
Практическая работа  15. Сетевое программирование сокетов/Пр/
6
2
 
1. 47
Тема 8. Работа с  виртуальной памятью. Выделение памяти процессам.

20.1 Концепция виртуальной памяти

20.2 Организация виртуальной памяти

20.3 Алгоритмы замещения страниц

20.4 Рабочее множество процесс

20.5 Организация виртуальной памяти в Windows

/Пр/

6
2
 
1. 48
Практическая работа  16. Работа с  виртуальной памятью в Windows/Пр/
6
2
 
1. 49
Тема 8. Виртуальная память. Работа с виртуальной памятью в Windows

22.6 Работа с виртуальной памятью в Windows

22.7 Состояния виртуальной памяти процесса

22.8 Резервирование, распределение и освобождение виртуальной памяти

22.9 Блокирование виртуальных страниц в реальной памяти

22.10 Изменение атрибутов доступа к виртуальной странице

/Пр/

6
2
 
1. 50
Практическая работа  16. Работа с виртуальной памятью в Windows/Пр/
6
2
 
1. 51
Тема 6. Виртуальная память. Работа с виртуальной памятью в Windows                                                                                                                   22.11 Управление рабочим множеством страниц процесса

22.12 Инициализация и копирование блоков виртуальной памяти

22.13 Определение состояния памяти

22.14 Работа с виртуальной памятью в другом процессе

/Пр/

6
2
 
1. 52
Практическая работа  16. Работа с виртуальной памятью в Windows/Пр/
6
2
 
1. 53
Тема 6. Виртуальная память. Работа с кучей в Windows

20.1 Создание и удаление кучи.

20.2 Распределение и освобождение памяти из кучи

20.3 Перераспределение памяти из кучи

20.4 Блокирование и разблокирование кучи

20.5 Проверка состояния кучи

20.6 Уплотнение кучи

/Пр/

6
2
 
1. 54
Практическая работа  17. Работа с виртуальной памятью в Windows. Кучи/Пр/
6
2
 
1. 55
Тема 7. Динамически подключаемые библиотеки DLL. Отображение файлов в память

21.1 Концепция механизма отображения файлов в память

21.2 Создание и открытие объекта, отображающего файл

21.3 Отображение файла в память

21.4 Обмен данными между процессами через отображаемый в память файл

21.5 Сброс вида в файл

/Пр/

6
2
 
1. 56
Практическая работа  18.Динамически подключаемые библиотеки DLL/Пр/
6
2
 
1. 57
Тема 7. Динамически       подключаемые библиотеки                                            21.6 Концепция динамически подключаемых библиотек

21.7 Создание DLL

21.8 Динамическая загрузка и отключение DLL

21.9 Использование DLL

21.10 Использование файла определений

21.11 Статическая загрузка DLL

/Пр/

6
2
 
1. 58
Практическая работа  18.Динамически подключаемые библиотеки DLL /Пр/
6
2
 
1. 59
Самостоятельная работа № 20. Работа с виртуальной памятью в Windows/СР/
6
4
 
1. 60
Самостоятельная работа. Именованные каналы/СР/
6
4
 
1. 61
Самостоятельная работа. Тестирование с использованием механизма обработки исключительных ситуаций/СР/
6
4
 
5. ЛИТЕРАТУРА
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. Перечень ресурсов информационно-телекоммуникационной сети "Интернет"
 
1
 
5.2. Перечень программного обеспечения
 
5.3. Перечень информационных справочных систем
 
 
6. МАТЕРИАЛЬНО-ТЕХНИЧЕСКОЕ ОБЕСПЕЧЕНИЕ ДИСЦИПЛИНЫ
 
7. МЕТОДИЧЕСКИЕ УКАЗАНИЯ ДЛЯ ОБУЧАЮЩИХСЯ ПО  ДИСЦИПЛИНЕ