Лабораторная работа №7.
Измерение производительности файловых систем.
Кроссплатформенное программирование.

Задание

  1. Создать для своей виртуальной машины дополнительный жесткий диск с 4-мя разделами с файловыми системами ext3, xfs, fat32, ntfs. В ОС Linux подключить их в каталоги соответственно /mnt/ext3, /mnt/xfs, /mnt/fat32, /mnt/ntfs. В ОС Windows раздел с fat32 подключить к диску F:, раздел с ntfs подключить к диску N:.
  2. Создать кроссплатформенную консольную программу filespeed (filespeed.exe), которая измеряет время
    1. создания набора из X пустых файлов,
    2. заполнения случайными значениями объемом в N байт каждого из X файлов (размер сохраняемого в файле блока должен быть кратен 4096 байт, кроме, возможно, последнего блока),
    3. удаления набора из X файлов, каждый из которых объемом в N байт.
    На входе программы 3 параметра:
    1. каталог, в котором производятся манипуляции по созданию, заполнению, удалению;
    2. количество файлов X;
    3. объем каждого файла N.
    На выходе программы 7 числовых значений по одному в каждой строке:
    1. операционная система, на которой призводились измерения (1 - Windows, 2 - Linux)
    2. файловая система, на которой призводились измерения (1 - ext3, 2 - xfs, 3 - fat32, 4 - ntfs)
    3. кол-во файлов X
    4. объем каждого файла N
    5. время в миллисекундах, затраченное на создание файлов
    6. время в миллисекундах, затраченное на заполнение файлов
    7. время в миллисекундах, затраченное на удаление файлов
    Язык программирования - кроссплатформенный компилируемый по выбору студента (c, freepascal и т.п.).
    Пример запуска под Windows: filespeed.exe f: 100000 1000
    Пример запуска под Linux: filespeed /mnt/fat32 10000 8192
  3. Проверить работоспособность программы под Windows на файловых системах fat32, ntfs, зафиксировать результаты.
    Проверить работоспособность программы под Linux на файловых системах ext3, xfs, fat32, ntfs, зафиксировать результаты.
    Сравнить полученные результаты, сделать выводы.