Код пользовательского режима может получить доступ к файлам
на диске или всевозможным устройствам (физическим, логическим и виртуальным)
только через описатели файловых объектов, обеспечиваемых менеджером ввода/вывода
по запросу от пользовательской программы на открытие/создание файла или
устройства. После открытия/создания виртуального файла, обозначающего любой
источник или приемник ввода/вывода (работа с которым идет так, как если бы он
был обычным файлом на диске), программы могут осуществлять ввод/вывод в этот
виртуальный файл, манипулируя им посредством описателя.
Итак, файловый объект - это
объект, видимый из режима пользователя, который представляет всевозможные
открытые источники или приемники ввода/вывода: файл на диске или устройство
(физическое, логическое, виртуальное). Физическим устройством может быть,
например, последовательный порт, физический диск; логическим -логический диск;
виртуальным - виртуальный сетевой адаптер, именованный канал, почтовый ящик.
Всякий раз, когда некоторый поток открывает файл, создается
новый файловый объект с новым набором атрибутов. В любой момент времени сразу
несколько файловых объектов могут быть ассоциированы с одним разделяемым
виртуальным файлом, но каждый такой файловый объект имеет уникальный описатель,
корректный только в контексте процесса, поток которого инициировал открытие
файла. Возможны ситуации, когда два процесса имеют разные описатели, ссылающиеся
на один и тот же файловый объект:
- 1. когда процесс дублирует описатель файлового объекта для
другого процесса;
- 2. когда дочерний процесс наследует описатель от
родительского.
Файловые объекты, как и другие объекты, имеют иерархические
имена, охраняются объектной защитой, поддерживают синхронизацию и обрабатываются
системными сервисами.
Тестирование параллельного программного обеспечения представляет собой более
сложную задачу по сравнению с тестированием последовательной программы. Программист
должен знать о подводных камнях при тестировании параллельного кода, имеющихся
методологиях и инструментарии.
Аннотация. В статье кратко рассматривается архитектура AMD64 компании AMD и ее
реализация EM64T компании Intel. Описаны особенности архитектуры, ее возможности,
достоинства и недостатки.