Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Электронный учебно-методический комплекс по учебной дисциплине «Системное программирование» для специальностей 1-40 01 01 «Программное обеспечение информационных технологий», 6-05-0612-01 «Программная инженерия»

.pdf
Скачиваний:
0
Добавлен:
28.12.2025
Размер:
3.06 Mб
Скачать

 

Курсовой проект

0

 

 

0

 

 

Защита курсового

 

 

 

 

 

проекта

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Итого за семестр

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Всего аудиторных часов

 

30

 

 

 

 

 

 

 

 

 

 

 

 

 

1Темы учебного материала, не указанные в Учебно-методической карте, отводятся на самостоятельное изучение студента

271

ИНФОРМАЦИОННО-МЕТОДИЧЕСКАЯ ЧАСТЬ Список литературы Основная литература

1.Электронный учебно-методический комплекс по учебной дисциплине «Системное программирование» для специальности: I -53 01 02 «Автоматизированные системы обработки информации» [Электронный ресурс] / Белорусский национальный технический университет, Кафедра «Информационных технологий автоматизированных систем» ; сост. М. П. Ревотюк. – Минск : БНТУ, 2006.

2.Руссинович, М. Внутреннее устройство Windows / М. Руссинович [и др.]. – 7-е изд. – СПб. : Питер, 2018. – 944 с.

3.Рихтер, Дж. Windows для профессионалов. Создание эффективных WIN32приложений с учетом специфики 64-разрядной версии Windows / Дж. Рихтер. – СПб.

:Питер, 2001. – 752 с.

4.Побегайло, А. П. Системное программирование в Windows / А. П. Побегайло. – СПб.

:БХВ-Петербург, 2006. – 1056 с.

5.Неwardt, M. Advanced Windows Debugging / Неwardt M., D. Pravat. – Boston : AddisonWesley Professional, 2007. – 840 c.

6.Шилдт, Г. Полный справочник по С++ / Г. Шилдт. – 4-е изд. – М. : Издательский дом «Вильямс», 2006. – 800 с.

7.Таненбаум, Э. Современные операционные системы / Э. Таненбаум, Х. Бос. – 4-е изд. – СПб. : Питер, 2015. – 1120 с.

Дополнительная литература

8.Беляев, А. Централизованная обработка исключений / А. Беляев // RSDN Magazine, 25.09.2004. – [б.м.].

9.Лохас П. Debugging: Развертывание сервера отладочной информации / П. Лохас // Habrahabr [Электронный ресурс]. – 2010. – Режим доступа :

http://habrahabr.ru/blogs/development/89094/. – Дата доступа : 29.11.2023.

10.Лохас П. Debugging: Введение в postmortem debugging / П. Лохас // Habrahabr

[Электронный ресурс]. – 2010. – Режим доступа : http://habrahabr.ru/blogs/development/89220/. – Дата доступа : 29.11.2023.

11.Харт, Дж. М. Системное программирование в среде Windows / Дж. М. Харт. – 3-е изд. – М. : Издательский дом «Вильямс», 2005. – 592 с.

Средства диагностики результатов учебной деятельности

Оценка уровня знаний студента производится по десятибалльной шкале в соответствии с критериями, утвержденными Министерством образования Республики Беларусь. Для оценки достижений студента рекомендуется использовать следующий диагностический инструментарий:

272

̶контрольная работа;

̶защита выполненных в рамках лабораторных занятий заданий;

̶защита курсового проекта;

̶экзамен.

ПЕРЕЧЕНЬ ТЕМ КУРСОВЫХ ПРОЕКТОВ

1.Мониторинг потока событий (Hooks)

2.Сетевое окружение (Windows Networking)

3.Мониторинг изменений файлов и каталогов (File I/O)

4.Работа с реестром (Registry)

5.Процессы и потоки (Processes and Threads)

6.Синхронизация процессов и потоков (Synchronization)

7.Обработка исключений (Structured Exception Handling)

8.Динамический обмен данными (DDEML)

9.Механизмы межпроцессных взаимодействий (IPC)

10.Панель управления (Control Panel Application)

11.Именованные каналы (Pipes)

12.Почтовые ящики (MailSlots)

13.Выгрузка системы (System Shutdown)

14.Получение сведений о системе (System Informatio)

15.Оконные интерфейсы (Windows Station and Desktops)

16.Интерфейс интерпретатора команд (Shell Library)

17.Хранитель экрана (Screen Saver)

18.Проецирование файлов (File Mapping)

19.Синхронный ввод/вывод и временные файлы (Files)

20.Асинхронный ввод вывод (Files)

21.Протоколирование событий (Event Logging)

22.Динамически загружаемые библиотеки (DLL)

23.Управление памятью (Memory Management)

24.Отладка (Debugging)

25.Буфер обмена (ClipBoard)

26.Управление энергосбережением (Power Management)

27.Сжатие данных (Data Decompression Library)

28.Таймеры (Timers)

29.Инструментальная библиотека (Tool Help Library)

273

Методические рекомендации по организации и выполнению самостоятельной работы студентов

При изучении дисциплины рекомендуется использовать следующие формы самостоятельной работы:

̶составление тематической подборки литературных источников;

̶проработка тем, вынесенных на самостоятельное изучение;

̶подготовка курсового проекта по индивидуальным заданиям.

274

УЧЕБНАЯ ПРОГРАММА 6-05-0612-01

Учебная программа по учебной дисциплине «Системное программирование» разработана для по специальности 6-05-0612-01 «Программная инженерия». Учебная дисциплина «Системное программирование» знакомит студентов с основными принципами построения и организации работы операционных систем семейства

Windows/Linux.

Подробно рассматриваются вопросы системного программирования. Описываются управление потоками и процессами, включая их диспетчеризацию; передача данных между процессами, с использованием анонимных и именованных каналов, а также почтовых ящиков; структурная обработка исключений; управление виртуальной памятью; управление файлами и каталогами; асинхронная обработка данных; создание динамически подключаемых библиотек; разработка сервисов.

Особое внимание уделено вопросам отладки программного обеспечения. Дается обзор существующих инструментов поиска и устранения дефектов, приводится ряд практических рекомендаций по настройке отладчиков, рассматриваются различные сценарии исследования программного обеспечения.

Рассматриваются основы взаимодействия приложений по сети. Отдельно рассматриваются методы перехвата вызовов функций и модификации возвращаемых значений. Главной задачей данных тем является формирование у студентов четкого представления функционирования программного обеспечения, передачи управления между функциями, использование стека потока. Предусмотрены соответствующие лабораторные задания.

Базовыми учебными дисциплинами по курсу «Системное программирование» являются «Основы алгоритмизации и программирования», «Алгоритмы и структуры данных», «Конструирование программного обеспечения», «Компьютерные системы и сети».

Цели учебной дисциплины «Системное программирование»: изучение принципов построения и методологии разработки системного программного обеспечения для современных процессоров с использованием современных алгоритмических языков и систем программирования.

Задачи учебной дисциплины:

приобретение базовых знаний в области принципов построения и методологии разработки системного программного обеспечения;

изучение способов разработки системного программного обеспечения с учетом особенностей современных операционных систем;

овладение методами разработки, тестирования, отладки и документирования программ, направленных на решение системных задач, с использованием современных инструментальных средств.

275

В результате изучения учебной дисциплины студент должен:

знать:

программные интерфейсы современных операционных систем в пользовательском режиме работы;

принципы построения приложений с графическим пользовательским интерфейсом для современных операционных систем;

понятие динамически-загружаемой библиотеки и средства построения таких библиотек в современных операционных системах;

средства поддержки многозадачности в современных операционных системах;

способы синхронизации задач в многозадачных операционных системах;

программные интерфейсы современных операционных систем в режиме ядра;

системные механизмы современных операционных систем: прерывания, исключения и системные вызовы;

системные механизмы отложенных процедур, асинхронных процедур и рабочих элементов в ядре операционной системы;

модель памяти в ядре современных операционных систем;

уметь:

создавать программы пользовательского режима для современных операционных систем;

создавать программы с графическим пользовательским интерфейсом для современных операционных систем;

создавать динамически-загружаемые библиотеки для современных операционных систем;

создавать программы по организации взаимодействия между процессами и потоками в современных операционных системах;

создавать многопоточные программы с синхронизацией данных для современных операционных систем;

создавать системные службы для современных операционных систем;

создавать драйверы для современных операционных систем.

владеть:

принципами построения служб для современных операционных систем;

принципами построения драйверов для современных операционных систем;

навыками применения средств программирования для современных операционных систем.

Освоение данной учебной дисциплины обеспечивает формирование следующей компетенции:

276

БПК-16. Применять алгоритмические и программные решения в области системного программного обеспечения, включая программные реализации систем с параллельной обработкой данных и высокопроизводительных систем

Согласно учебным планам на изучение учебной дисциплины отведено:

для заочной формы получения высшего образования всего 276, часов из них аудиторных 12 часов. На курсовой проект отведено 60 часов самостоятельной работы;

для за формы получения высшего образования, интегрированного со средним специальным образованием всего 276, часов из них аудиторных 12 часов. На курсовой проект отведено 60 часов самостоятельной работы.

Распределение аудиторных часов по курсам, семестрам и видам занятий приведено в таблицах 1 и 2.

 

 

 

 

 

 

Таблица 1.

Заочная форма получения высшего образования

 

 

 

 

 

 

 

 

 

 

 

Курс

Семестр

Лекции, ч.

Лабораторные

Практически

Форма

текущей

 

занятия, ч.

е занятия, ч.

аттестации

 

 

 

 

 

 

 

 

 

 

 

 

 

 

экзамен,

 

 

3

5

6

6

-

защита

курсового

 

 

 

 

 

 

проекта

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 2.

Заочная форма получения высшего образования, интегрированного со средним

 

специальным

 

 

 

 

 

 

 

 

 

 

 

 

 

Курс

Семестр

Лекции, ч.

Лабораторные

Практически

Форма

текущей

 

 

 

 

занятия, ч.

е занятия, ч.

аттестации

 

 

 

 

 

 

экзамен,

 

 

3

5

6

6

-

защита

курсового

 

 

 

 

 

 

проекта

 

 

 

 

 

 

 

 

 

 

277

СОДЕРЖАНИЕ УЧЕБНОГО МАТЕРИАЛА РАЗДЕЛ 1 Системное программирование в пользовательском режиме

1.1 Оконный пользовательский интерфейс

Основные элементы программ с оконным пользовательским интерфейсом. Минимальная программа для ОС Windows и/или Linux с окном на экране. Создание и отображение окна. Понятие оконного сообщения. Источники сообщений. Очередь сообщений. Цикл приема и обработки сообщений. Процедура обработки сообщений. Синхронные и асинхронные сообщения, их передача и обработка. Ввод данных с манипулятора «мышь». Обработка сообщений мыши. Ввод данных с клавиатуры. Понятие фокуса ввода. Обработка сообщений от клавиатуры. Вывод информации в окно. Механизм перерисовки окна. Понятие ресурсов программ. Виды ресурсов. Работа с ресурсами.

1.2 Интерфейс графических устройств

Принципы построения графической подсистемы операционной системы. Понятие контекста устройства. Вывод графической информации на физическое устройство. Рисование геометрических фигур. Графические инструменты. Управление цветом. Палитры цветов. Растровые изображения. Вывод растровых изображений. Значки и курсоры. Вывод растровых изображений с эффектом прозрачного фона. Вывод текста. Логические и физические шрифты. Системы координат. Трансформации. Метафайлы.

1.3 Многозадачность

Организация многозадачности в операционных системах. Понятие процесса и потока. Контекст потока. Создание и завершение процессов и потоков. Синхронизация потоков одного и того же процесса. Критические секции. Синхронизация потоков разных процессов. Объекты синхронизации: флаги, семафоры, события, ожидаемые таймеры, трубы.

1.4 Динамически загружаемые библиотеки

Понятие динамически загружаемой библиотеки. Структура динамически загружаемой библиотеки. Создание динамически загружаемой библиотеки. Использование динамически загружаемой библиотеки в программе. Импорт динамически загружаемой библиотеки на старте программы. Импорт динамически загружаемой библиотеки во время работы программы.

РАЗДЕЛ 2 Системное программирование в режиме ядра 2.1 Отладка программ в режиме ядра

Отладчики для режима ядра. Режимы отладки. Компоненты отладчика. Представление в памяти строк формата Unicode. Представление в памяти двусвязных списков. Создание дампа памяти. Анализ дампов памяти.

2.2 Системные механизмы ядра

Прерывания. Уровни прерываний. Подпрограммы обработки прерываний. Отложенные процедуры. Асинхронные процедуры. Типы асинхронных процедур.

278

Рабочие элементы. Переход из пользовательского режима в режим ядра. Таблицы функций операционной системы.

2.3 Виртуальное адресное пространство

Пулы памяти. Пул подкачиваемой памяти, пул неподкачиваемой памяти, пул сессии, особый пул. Тегирование пулов. Структура данных пула. Представление объекта в памяти ядра. Менеджер объектов. Ассоциативные списки. Блокирование страниц в памяти. Списки описателей памяти и их использование для работы с аппаратурой.

2.4 Драйверы

Структура драйвера. Точки входа в драйвер. Объект, описывающий драйвер. Объект, описывающий устройство. Объект, описывающий файл. Взаимосвязь объектов. Запрос ввода-вывода. Менеджер ввода-вывода. Стек драйверов. Организация сетевых драйверов.

2.5 Перехват функций

Технологии перехвата функций операционной системы в пользовательском режиме. Технологии перехвата функций операционной системы в режиме ядра. Стандартные методы перехвата функций в режиме ядра: обратные вызовы системного реестра, обратные вызовы менеджера объектов, обратные вызовы процессов, обратные вызовы потоков, обратные вызовы загрузчика модулей, мини-фильтры файловой системы.

ТРЕБОВАНИЯ К КУРСОВМУ ПРОЕКТУ

В соответствии с учебным планом на выполнение курсового проекта отводится всего 60 часов самостоятельной работы.

Целью курсового проекта (КП) является применение теоретических и практических навыков, полученных в ходе обучения студентов по дисциплине «Системное программирование» и создание системного программного обеспечения для операционной системы.

Курсовой проект представляет собой логически завершенное и оформленное в виде текста произведение индивидуального научно теоретически-практического содержания, направленное на решение определенных проблем и задач в области изучаемой дисциплин.

Тема курсового проекта утверждается на соответствующей кафедре, а задание на ее выполнение оформляется руководителем. Объектом проектирования является системное программное обеспечение для операционной системы. Задание на курсовой проект формируется так, чтобы студент получил навыки инженерной деятельности.

Курсовой проект должен соответствовать стандартам Единой системы конструкторской документации (ЕСКД), Единой системы технологической

279

документации (ЕСТД), Единой системы программной документации (ЕСПД), другим действующим техническим нормативным правовым актам.

Всостав курсового проекта входят:

пояснительная записка;

графическая часть;

работающее программное обеспечение.

Пояснительная записка должна отражать основные этапы разработки программного обеспечения.

280

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]