Содержание
Введение......................................................... 4
Лабораторная работа 1: Работа с файлами............................. 5
Лабораторная работа 2: Файловые системы FAT........................ 8
Лабораторная работа 3: Работа с памятью............................. 11
Лабораторная работа 4: Обработчики прерываний...................... 15
Лабораторная работа 5: Сложные обработчики и взаимодействие
резидентных программ........................................ 21
Лабораторная работа 6: Приложения Windows с использованием Win 32 API 27
Лабораторная работа 7: Создание и использование элементов управления.. 30
Лабораторная работа 8: Графический ввод-вывод в оконном приложении.. 32
Лабораторная работа 9: Динамическое отображение данных на окне....... 34
Лабораторная работа 10: Обмен сообщениями между окнами, обработка
сообщений ввода-вывода...................................... 36
Лабораторная работа 11: Использование потоков....................... 37
Лабораторная работа 12: Синхронизация доступа к ресурсам............. 41
Лабораторная работа 13: Приоритеты................................. 45
Лабораторная работа 14: Реестр Windows.............................. 47
|
|
Литература....................................................... 50
Введение
Настоящий лабораторный практикум имеет целью систематизировать практическую часть (лабораторные занятия) по дисциплине «Системное программирование». Набор заданий охватывает достаточно большое число тем, большинство из которых можно отнести к трём основным направлениям:
– элементы программирования в однозадачной среде (файловая система, ввод-вывод, обработка прерываний);
– основы программирования приложений Win32 (событийное управление, ввод-вывод, доступ к ресурсам);
– многозадачное и многопоточное программирование, взаимодействие процессов в среде Win 32.
В данный курс сознательно не были включены некоторые крупные тематические блоки, традиционно относимые к системному ПО, такие как теоретические основы операционных систем и теория трансляторов. Также не рассматриваются иные операционные системы (в первую очередь семейство Unix-систем) и аспекты и, применительно к платформе windows, технологии.NET. Это объясняется наличием в учебной программе соответствующих специализированных курсов, что позволило сосредоточиться на базовом уровне освоения наиболее распространенной платформы и универсальных для большинства сред зачах системного уровня. Внимание же, уделяемое низкоуровневому программированию и, в частности, ОС MS-DOS, основывается на том, что тем самым предоставляется наиболее простой и экономичный путь практического изучения ряда задач — как актуальных для специальных применений, так и свойственных более сложным платформам.
|
|
Описания лабораторных работ строятся, насколько возможно, по единообразной схеме: цель работы, краткие вводные теоретические сведения, приблизительный перечень вопросов для контроля усвоения темы, варианты заданий к лабораторной работе. Следует отметить, что информация в теоретических блоках описаний лабораторных работ не является исчерпывающей и не может заменить справочные пособия и другие источники.
Жестких ограничений на используемые языки и среды программирования не накладывается. Для заданий первой группы ожидается использование Ассемблера, однако частично они могут быть выполнены и с помощью языков высокого уровня. Задания, рассчитанные на среду Windows, могут выполняться любыми подходящими средствами при условии демонстрации взаимодействия с соответствующими системными интерфейсами.
Лабораторная работа 1:
Работа с файлами