Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Краткие теоретические сведения




Содержание

Введение......................................................... 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
Работа с файлами

Цели работы:

1) изучение функций доступа к файлам и управления файлами в среде MS-DOS;

2) реализация алгоритмов поиска файлов;

3) закрепление практических навыков программирования средствами Ассемблера с использованием функций MS-DOS.

Краткие теоретические сведения

Данные на внешних носителях принято организовывать в виде файлов.

Файл — упорядоченный набор данных, пригодный для использования прикладными программами. Удобно представлять файл как совокупность данных (используются прикладными программами) и метаданных (данные о размещении данных, используются системными программами).

Для организации хранения данных, предоставления доступа к ним и обеспечения другого сервиса служит файловая система (ФС). В это понятие входят как структуры для собственно хранения данных и метаданных, так и включенные в ПО средства работы с ними.

Типичной для файловых систем является иерархическое (древовидное) построение: файлы могут объединяются в каталоги (директорий – directory, папка – folder), причем сами каталоги также могут быть вложенными. Таким образом, каталог также является файлом, но специального вида – предназна­ченным для хранения информации о включенных в него файлах и других каталогах.

Помимо каталогов, предусматриваются и другие виды специальных файлов: файлы логических устройств, файлы-ссылки, файлы – метки тома и т.д. В отличие от специальных типов объектов файловой системы «обычные» файлы программ или данных называют регулярными.

Файлы принято идентифицировать по их именам. Учитывая наличие каталогов и подкаталогов, для однозначной локализации файла требуется также и путь к нему (path) – перечисление всей цепочки каталогов.

Для ФС Microsoft характерна отдельная иерархия каталогов для каждого логического диска. Логический диск может соответствовать физическому нако­пителю или одному из его разделов, реже – виртуальному устройству. С точки зрения системы каждый логический диск рассматривается как самостоятельное устройство и идентифицируется буквой: A, B, C и т.д.

Таким образом, полный (абсолютный) путь к файлу будет начинаться от «буквы» логического диска, например: A:\directory1\directory2\...\file.ext. Относительный путь начинается от текущего каталога в файловой системе.

Традиционными для MS-DOS и ранних версий Windows были файловые системы FAT (более подробно см. лабораторную работу №2). Первоначально имена ограничивались восемью символами собственно «имени» и тремя символами «расширения» (extention), причем набор символов ограничивался латинскими буквами, цифрами и некоторыми дополнительными символами: +, –, _ и т.д. Позже в именах были допущены символы национальных алфавитов, а затем введены и «длинные» имена, причем уже с использованием символов Unicode. Пределом длины «длинного» имени считается 255 символов, а имени вместе с путём – 260 символов.

Традиционные имена «8.3» содержат буквы только в верхнем регистре, и приведение их выполняется автоматически, поэтому для пользователя имена не чувствительны к регистру букв. «Длинные» имена хранятся с учётом регистра букв, однако их сравнения всё равно регистронечувствительны. Поэтому имена будут соответствовать своим файлам независимо от регистра букв в них, а в одном каталоге не могут быть два файла, имена которых различаются только регистром букв.

Для доступа к файлу он должен быть предварительно открыт, все последующие действия будут выполняться над системным объектом «откры­тый файл». Первоначально в MS-DOS применялись FCB (File Control Block) – структуры, содержащие информацию о файле и выполняемой над ним операции; в ту же структуру могли заноситься и результаты операции. Позже был введен более удобный подход, основанный на использовании файловых дескрипторов (file descriptor). Дескриптор представляет собой целое число, получаемое после открытия или создания файла и однозначно идентифициру­ющее его. Полученный дескриптор действует до закрытия файла. Вся слу­жебная информация об объекте остается скрытой от прикладной программы, что упрощает работу. Сейчас FCB-ориентированные функции считаются устаревшими и поддерживаются лишь для совместимости с ранее написанным ПО, а основным методом доступа в современных ОС является дескрипторный.

Сервис MS-DOS для работы с файлами представлен рядом функций прерывания 21h. Ниже перечислены некоторые из них (дескрипторный доступ):

AH=3Ch – создание файла с усечением содержимого;

AH=3Dh –открытие существующего файла;

AH=5Bh – создание файла (если не существует) или открытие;

AX=6C00h – создание или открытие файла с выбором поведения функции с посредством дополнительных флагов;

AX=716Ch – то же с поддержкой длинных имён;

AH=42h – позиционирование в файле;

AH=3Fh – чтение из файла в буфер в памяти;

AH=40h – запись данных из буфера в файл;

AH=3Eh – закрытие файла.

Имеются также функции, работающие с объектами файловой системы без открытия файлов. Некоторые из них перечислены ниже:

AH=43h – получение или установка атрибутов файла (имеет подфункции);

AH=56h – переименование файла;

AX=7156h – переименование с поддержкой длинных имён;

AH=57h – получение или установка даты и времени для файла;

AH=41h – удаление файла;

AH=39h и 3Ah – создание и удаление каталога;

AX=7139h и 713Ah – то же с поддержкой длинных имён;

AH=47h и 3Bh – получение и установка текущего каталога;

AX=7147h и 713Bh – то же с поддержкой длинных имён;

AH=4Eh и 4Fh – поиск (начало и продолжение поиска) файла по шаблону, результат возвращается в области DTA;

AX=714Eh и 714Fh – поиск с поддержкой длинных имён.

Контрольные вопросы

1. Хранение файлов и организация доступа к ним.

2. Способы доступа к файлам.

3. Атрибуты файлов.

4. Функции MS-DOS для работы с файлами.

5. Открытие и закрытие файлов.

6. Чтение данных из файла.

7. Запись данных в файл.

8. Поиск файла.

9. Создание файлов.

10. Переименование файлов.

11. Удаление файлов.

Варианты заданий

1.3.1. С клавиатуры вводятся имя исходного файла и имя файла для хранения результата. Необходимо при помощи функции поиска файлов убедиться в существовании исходного файла и отсутствии результирующего. Если исход­ный файл отсутствует, выдается предупреждение, и выполнение останав­лива­ется. Если результирующий файл уже присутствует, выдается предупреж­дение, и прежнее содержимое файла перекрывается.

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

 

1.3.2. С клавиатуры вводятся первые символы имени файла (например myfile) и имя файла результата. Необходимо найти все файлы, начинающиеся с данных символов (myfile.txt, myfile1.doc, myfile005.txt, …), по очереди открыть эти файлы и склеить их содержимое в результирующем файле, читая блоками по 256 байт.

 

1.3.3. С клавиатуры вводятся расширение имени для поиска файлов (например, txt) и имя файла результата. Необходимо найти все файлы с этим расширением и сохранить их имена в результирующем файле. В случае если файл для хранения результата уже существует, его старое содержимое должно быть сохранено, а новые записи надо добавлять в конец файла.

 

1.3.4. Репозиторий имен файлов и директориев (повышенной сложности).

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

Для репозитория должны быть реализованы функции: включение файла (каталога) в репозиторий; исключение файла (каталога); форматированный вывод содержимого репозитория; сравнение содержимого репозитория и файловой системы.

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

Данное задание требует знакомства со средствами управления памятью.

 

Лабораторная работа №2
Файловая система FAT

Цели работы:

1) изучить структуру файловых систем FAT;

2) научиться работать с файловой системой FAT;

3) ознакомиться с типичными задачами, требующими прямого доступа к файловой системе.





Поделиться с друзьями:


Дата добавления: 2016-11-12; Мы поможем в написании ваших работ!; просмотров: 372 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Победа - это еще не все, все - это постоянное желание побеждать. © Винс Ломбарди
==> читать все изречения...

2265 - | 2090 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.012 с.