
Лабароторная № 1
.docМИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Московский государственный институт электроники и математики
(технический университет)
Кафедра информационных технологий и автоматизированных систем
ОТЧЕТ ПО ЛАБОРАТОРНОМУ ПРАКТИКУМУ ЗА 2 СЕМЕСТР
ЛАБОРАТОРНАЯ РАБОТА №1
по дисциплине
«ОПЕРАЦИОННЫЕ СИСТЕМЫ»
Группа АП-41
Выполнил студент
Евдокимова Е.А.
Руководитель
Витушкин П.И..
Москва 2007
-
Постановка задачи
При выполнении лабораторной работы необходимо разработать алгоритм и составить программу, имитирующую работу простейшей файловой системы(fat16), (в дальнейшем будем называть ее "системой"), которая должна выполнять перечисленные ниже действия:
– создание файлов и их размещение в файловой таблице fat;
– отображать изменения в таблице fat и корневом каталоге при соответствующих операциях с существующими файлами: переименования, копирование, изменение размера файла, удаление файла;
– возможно создание пользовательских папок-каталогов;
-
Структура программы
Программа содержит:
Функции, которые обрабатывают нажатие на кнопки
void __fastcall saveClick(TObject *Sender); - функция создания файла и размещения его в таблицах;
void __fastcall directoryClick(TObject *Sender);
void __fastcall systemClick(TObject *Sender); функции, проверяющие
void __fastcall hidenClick(TObject *Sender); наличие атрибутов для создаваемого
void __fastcall read_onlyClick(TObject *Sender); файла
void __fastcall printClick(TObject *Sender); - функция, заполняющая таблицу по желанию пользователя, где отображены ячейки fat, которые занимает указанный пользователем файл, и содержание этих ячеек;
void __fastcall o4Click(TObject *Sender); - функция, которая очищает поля таблицы, где отображены ячейки fat;
void __fastcall del_fileClick(TObject *Sender);-функция, реализующая удаление файла, указанного пользователем;
void __fastcall BitBtn5Click(TObject *Sender);- функция, реализующая переименование файла, указанного пользователем;
void __fastcall BitBtn6Click(TObject *Sender); - функция изменения размера файла, указанного пользователем;
void __fastcall Button1Click(TObject *Sender); - функция копирования файла по указанному адресу;
void __fastcall Button2Click(TObject *Sender); - функция, реализующая удаление пользовательской папки-каталога вместе со всем ее содержимым;
void __fastcall Button3Click(TObject *Sender);- функция, реализующая дефрагментацию диска;
void __fastcall Button4Click(TObject *Sender);- функция выводит информацию о диске, о его емкости, размере кластера и количестве секторов в кластере.
Тестовый пример:
-
Нажав на кнопку ‘справка’ – посмотрим информацию о диске : имя, емкость, размер кластера, количество секторов в кластере и размер кластера;
-
Создадим папку dir1/; поместим в нее файл f1и папку dir2/;
-
переименуем файл f1 в file1;
-
копируем файл file1 из папки dir1/на диск z/;
-
удалим папку dir1/ - вместе с ней удалится и все что в ней находится – file1 и dir2/;
-
создадим на диске z/ еще несколько файлов file2, file3…
-
их размещение в таблице Fat можно посмотреть во второй таблице, введя правильный путь и имя файла;
-
уменьшим размер файла file2;
-
создадим файл fil4;
-
посмотрим во второй таблице как расположились файлы;
-
увеличим размер файла file3;
-
посмотрим размещение в ячейках ;
-
удалим файл file4 ,при этом освободятся занимаемые им ячейки в таблице fat
-
нажав кнопку “дефрагментация диска” cдвинем оставшиеся фалы в начало таблицы, таким образом избежим фрагментации дискового пространства.