Управления файловой систем
Для своего варианта разработать программный эмулятор файловой системы, который должен уметь создавать и манипулировать файловой системой (ФС), используя в качестве носителя файл прямого доступа (файл-образ), необходимого размера.
Эмулятор должен реализовывать следующее минимальное множество команд:
1) Создание ФС в файле образа.
Например :
Emulator FSfname.im /CREATE /SIZE:600 /CLUST:4 /ROOT:2 /FAT:1
создание DOS-подобной ФС (на основе FAT) в файле образа с именем “FSfname.im“ общим размером 600kB, размером кластера 4 kB, 1 копией FAT и корневым директорием размером 2 кластера.
2) Получение информации о структуре и состоянии ФС, находящейся в файле образа (аналог DiskEdita).
Например :
Emulator Fsfname.im /INFO
3) Копирование файлов.
Например :
a) копирование файлов в образ ФС
Emulator Fsfname.im /COPYTO SRCfname DSTfname
где
Fsfname . im – имя файла-образа
SRCfname – имя файла-источника на диске
DSTfname – имя файла-приемника в образе ФС
b) копирование файлов из образа ФС
Emulator Fsfname.im /COPYFROM SRCfname DSTfname
где
Fsfname . im – имя файла-образа
SRCfname – имя файла-источника в образе ф.с.
DSTfname – имя файла-приемника на диске
4) Удаление файла из ФС.
Emulator Fsfname.im /DEL fname
5) Вывод списка файлов ФС.
Emulator Fsfname.im /DIR
6) Оптимизация расположения файлов в ФС. (аналог SpeedDisk или DiskDEfragmenter).
Emulator Fsfname . im / OPTIMIZE
Методические указания
Для уменьшения трудоемкости работы предлагается придерживаться следующих рекомендаций:
1) для проектируемой ФС не реализовывать иерархическое представление (например для DOS-а иметь только корневой каталог)
2) для файлов хранить минимум атрибутов (например только имя и расширение, совместимое с DOS-ом)
3) не реализовывать систему защиты.
При этом основное внимание следует сосредоточить на реализации логики функционирования ф.с.
Работу можно разбить на несколько этапов:
I. Проектирование ФС
1) описать постановку задания для своего варианта;
2) ознакомиться с устройством, принципами и алгоритмами функционирования файловой системы Операционной Системы, предложенной в качестве прототипа;
3) спроектировать свою ФС:
a) Общее описание ФС
b) Спецификации ФС (форматы и структуры данных)
c) Спецификации сновных запросов к ФС (Open/Close/Seek/Flush и т.д.)
II. Реализация эмулятора ФС
4) Проектирование эмулятора (спецификация команд эмулятора)
- синтаксис и семантика команд (в случае реализации интерфейса в командной строке)
- описание пунктов меню и основных диалогов …
5) Разработка алгоритмов функционирования
6) Программирование эмулятора
7) Отладка:
В качестве теста можно использовать следующую последовательность действий (просматривая после каждого шага листинг состояния ф.с.):
1- создать ФС объемом 100kB
2- скопировать в ФС файл f20 (размером 20kB)
3- скопировать в ФС файл f10 (размером 10kB)
4- скопировать в ФС файл f40 (размером 40kB)
5- удалить из ФС файл f10
6- скопировать в ФС файл f30 (размером 30kB)
7- удалить из ФС файл f30
8- скопировать в ФС файл f5 (размером 5kB)
9- скопировать в ФС файл f60 (размером 60kB)
10- удалить из ФС файл f20
11- оптимизировать ФС
Примечание: в данном тестовом примере не учитываются эффекты выравнивания при кластерной организации ФС.
III. Анализ функционирования
8) Анализ недостатков спроектированной ФС.
9) Выдвижение проедложений по усовершенствованию
10) Составить отчет и сдать работу
Содержание отчета
1) Общее описание спроектированной ФС
2) Спецификации ФС (форматы и структуры данных)
3) Спецификация команд эмулятора:
- синтаксис и семантика команд (в случае реализации интерфейса в командной строке)
- описание пунктов меню и основных диалогов …
4) исходные тексты основных модулей, определяющих структуры данных и логику работы системы
5) распечатку листинга состояния ФС после применения тестовой последовательности команд, демонстрирующей особенности функционирования системы
6) Выводы: анализ функционирования спроектированной ФС и предложения по ее улучшению.
Варианты заданий:
В качестве прообраза ФС в зависимости от варианта (по классификатору) необходимо реализовать в эмуляторе следующие дополнительные команды:
1) Добавить к файлу
2) Усечение файла
3) Удаление всех файлов сразу (Quick Format)
Реализовать утилиту подсчета потерь дискового пространства в “хвостах” файлов (WASTE).
Раздел 8
Дата: 2019-02-25, просмотров: 293.