Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Arkhitektura_OS_voprosy_otvety.docx
Скачиваний:
9
Добавлен:
18.09.2019
Размер:
359.1 Кб
Скачать
  1. Реализация поиска файла по имени в ос Win nt.

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

При поиске файла вначале при помощи механизма символьных ссылок в пространстве имен объектов решается задача трансляции имени диска "в стиле DOS" или буквы диска во внутренние имена устройств Windows. Для этого библиотечный вызов, содержащий имя файла в качестве параметра, передается библиотеке kernel32.dll и перед именем помещается название каталога именованных ресурсов "\??\" в пространстве имен менеджера объектов. В результате "F:\tmp\MyFile.txt" преобразуется в "\??\F:\tmp\MyFile.txt". Далее в каталоге \??\ ищется символьное имя "F:", которое является ссылкой на объект-раздел жесткого диска, например, "\Device\Harddisk\Volume5". Далее находится таблица MFT этого раздела, затем осуществляется навигация по каталогам и отыскивается искомый файл, см. рис. 12.5.

Рис. 12.5. Процесс поиска файла по имени

Для поиска файлов в каталоге применяются функции FindFirstFile и FindNextFile (см. MSDN).

Прогон программы, осуществляющей поиск файла в каталоге

Приведенная программа выводит список файлов в каталоге с заданным шаблоном поиска. Информация о найденных файлах содержится в структуре WIN32_FIND_DATA, которая является одним из параметров функций FindFirstFile и FindNextFile. Входным параметром функции FindFirstFile служит шаблон поиска, а выходным - дескриптор поиска, который является входным параметром функции FindNextFile и хранит информацию о текущем состоянии поиска (аналог указателя текущей позиции). Для закрытия описателя в данном случае применяется функция FindClose (а не CloseHandle как обычно).

  1. Основные принципы построения ос.

Принцип модульности

Принцип функциональной избирательности

Принцип генерируемости ОС

Принцип функциональной избыточности

Принцип виртуализации

Принцип независимости программ от внешних устройств

Принцип совместимости

Принцип открытой и наращиваемой ОС

Принцип мобильности (переносимости)

Принцип обеспечения безопасности вычислений

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