Основные характеристики файловой системы ms-dos icon

Основные характеристики файловой системы ms-dos




Скачати 84.26 Kb.
НазваОсновные характеристики файловой системы ms-dos
Дата03.08.2012
Розмір84.26 Kb.
ТипЛабораторная работа

ЛАБОРАТОРНАЯ РАБОТА N 5


Системные средства обслуживания файлов и каталогов.


Краткие теоретические сведения

Основные характеристики файловой системы MS-DOS


В машинах типа IBM PC предусмотрены два уровня обращения к магнитным дискам. При работе на нижнем уровне пользователь с помощью прерывания BIOS INT 13h обращается непосредственно к драйверу диска. Типичными операциями этого уровня являются запись или чтение сектора, позиционирование головок, форматирование дорожки. Файловая система DOS не используется; требуемая информация отыскивается не по имени файла, а по номерам поверхности, цилиндра и сектора. Верхний уровень реализуется с помощью прерывания DOS INT 21h, поддерживающего, наряду с прочими, также и функции обслуживания файловой структуры. Программист работает не с драйвером диска, а с файловой системой DOS, получая возможность оперировать такими понятиями файловой системы, как логический диск, каталог, файл.

Как известно, для удобства работы с большим количеством разнородных файлов в DOS используется древовидная структура каталогов. Каталог представляет собой файл обычно относительно небольшого размера, в котором содержится перечень всех подкаталогов следующего уровня и файлов, входящих в данный каталог. Каждому подкаталогу или файлу отводится одна запись размером 32 байт, в которую DOS заносит информацию о файле: имя, начальный адрес на диске (номер кластера), дата и время создания, длина в байтах, а также набор характеристик файла, называемых его атрибутами. Кроме записей, относящихся к нижележащим каталогам и файлам, каждый каталог содержит еще две записи: о себе самом и о родительском каталоге. Атрибуты файла (в том числе файла каталога) хранятся в специально отведенном для них байте атрибутов и имеют следующие значения:


  • 0lh - файл только для чтения. Модификация или удаление файла запрещаются DOS;

  • 02h - скрытый файл (не "замечаемый" командой DIR и некоторыми функциями DOS);

  • 04h - системный файл (обычно с программами самой DOS);

  • 08h - запись о файле представляет собой метку тома. Такая запись (одна на весь том) может существовать только в корневом каталоге;

  • l0h - файл представляет собой каталог;

  • 20h - файл после создания или модификации не был архивирован и, следовательно,

  • нуждается в архивации (атрибут архивации).


При создании нового файла DOS сама отыскивает на диске свободное место и назначает его новому файлу, создавая и заполняя соответствующую этому файлу запись в каталоге. Хотя минимальной порцией информации, передаваемой контроллером диска в процессе записи или чтения файла, является сектор (512 байт) (и программы BIOS работают как раз с секторами), файловая система назначает место на диске целыми кластерами. Размер кластера на гибком диске составляет два сектора (1 Кбайт); на жестком диске в кластер могут входить 4 - 8 секторов. Таким образом, минимальный физический размер файла, даже если данные в нем занимают лишь несколько байт, составляет один кластер. Однако в записи каталога указывается не физическая, а логическая длина файла, т.е. объем содержащихся в нем данных в байтах. Методика работы с файлами существенно определяется тем обстоятельством, что каждый файл может занимать на диске несколько несмежных областей, т.е. может быть разрывным. Такая система выделения дискового пространства позволяет, во-первых, в процессе работы с файлом многократно дописывать в него новые данные, увеличивая при этом длину файла и, во-вторых, снимает проблемы с фрагментацией диска, поскольку даже самые маленькие и разрозненные свободные области на диске могут быть использованы для размещения нового файла. Следует, однако, иметь в виду, что сильно фрагментированный файл требует заметно больше времени для чтения или записи, что снижает скорость выполнения программ. Процедура обращения к файлу в общем случае распадается на следующие операции:


  • создание файла с заданным именем в указанном каталоге или открытие файла, если он был создан ранее;

  • запись в файл или чтение из файла всего содержимого либо любой его части;

  • закрытие файла.


Кроме перечисленных, имеется еще целый ряд вспомогательных операций: удаление файла, получение или установка его атрибутов, получение или изменение даты и времени создания файла, поиск файла с заданным именем (либо файлов, удовлетворяющих условиям заданного шаблона групповой операции) и др.

Существуют два способа выполнения операций с файлами: с использованием блоков управления файлами (FCB, File control block, в настоящее время практически не используется) и дескрипторов файлов (handle).

Второй способ операций с файлами предполагает использование дескрипторов (файловых индексов, файловых описателей), которые представляют собой номера системных областей, располагаемых в оперативной памяти и закрепляемых за открываемыми файлами. Обращение к файлу (а также и к стандартному периферийному устройству - терминалу, принтеру и o.a.) осуществляется по номеру дескриптора, идентифицирующего данный файл или устройство. Дескриптор назначается файлу системой при его открытии и освобождается при закрытии файла. Для работы со стандартными устройствами DOS предоставляет пять предопределенных дескрипторов:


0 - стандартный ввод (CON);

1 - стандартный вывод (CON);

2 - стандартная ошибка (CON);

3 - стандартный вспомогательный порт (AUX);

4 - стандартный принтер (PRN).


Таким образом, при работе с терминалом, принтером или последовательным портом нет необходимости открывать новые дескрипторы; ввод с клавиатуры осуществляется через дескриптор 0, вывод на экран - через дескрипторы 1 или 2, вывод на принтер - через дескриптор 4. Различие дескрипторов 1 и 2 заключатся в том, что стандартный вывод (как и стандартный ввод) можно перенаправить средствами DOS на любое устройство или в файл, а стандартная ошибка всегда связана с экраном. Обычно дескриптор 2 используют для вывода на экран аварийных или диагностических сообщений. Для облегчения ориентации в многочисленных функциях DOS, осуществляющих операции над файлами, каталогами и дисками, их удобно разбить на смысловые группы.


1. Создание, открытие и закрытие файла:

3Ch - создать файл;

5Ah - создать временный файл;

5Bh - создать новый файл;

3Dh - открыть файл; 3Eh - закрыть файл;

68h - сбросить файл на диск;

4lh - удалить файл.


2. Запись и чтение данных:

42h - установить указатель;

3Fh - читать из файла или устройства;

40h - записать в файл или устройство.


3. Изменение характеристик файла: 4

3h - получить или установить атрибуты файла;

56h - переименовать файл;

57h - получить или установить дату и 'время создания файла.


4. Поиск файла:

lAh - установить адрес области передачи данных (DTA);

2Fh - получить адрес области передачи данных (DTA);

4Eh - найти первый файл;

4Fh - найти следующий файл.


5. Операции над каталогами;

39h - создать каталог;

3Ah - удалить каталог;

3Bh - сменить текущий каталог:

47h - получить текущий каталог.


6. Операции над дисками:

19h - получить текущий диск;

0Eh - сменить текущий диск;

36h - получить информацию о диске.


Функции 3Ch и 5Bh позволяют создать файл с заданной спецификацией. Спецификация файла, т.е. путь к нему вместе с именем файла и расширением указывается в виде символьной строки, завершающейся двоичным нулем ("строки ASCIIZ") Адрес этой строки заносится в регистры DS:DX. В регистре СХ задается код атрибутов создаваемого файла:

  • 0 - отсутствие атрибутов,

  • 1 - только для чтения,

  • 2 - скрытый,

  • 4- системный,

  • 8 - метка тома,

  • 20h - атрибут архива.

Таким образом, с помощью этих функций можно создать как "настоящий" файл, так и метку тома (в корневом каталоге диска). В регистре АХ возвращается дескриптор созданного файла, которым можно в дальнейшем. пользоваться для записи в файл или чтения из него. Различие функций 3Ch и 5Bh проявляется лишь в случае, когда файл с заданной спецификацией уже существует. Функция 3Ch при этом фактически уничтожает имеющийся файл и создает новый с тем же именем, а функция 5Bh завершается с CF=1.

Функция 5Ah используется для создания временного. файла, имя которому (являющееся функцией текущего времени) дает система. В регистрах DS:DX указывается адрес пути к файлу (не имени файла!) в виде строки ASCIIZ, в конце которой должны быть предусмотрены 13 пустых байт, куда DOS поместит обратный слэш и имя создаваемого файла, завершаемое двоичным нулем. При необходимости файлу можно придать любые атрибуты (см. описание функций 3Ch и 5Bh) кроме атрибута метки тома. Обычно временные файлы удаляются перед завершением программы, причем забота об этом лежит на программисте (автоматически файл не удаляется). Для записи в созданный

временный файл следует использовать дескриптор, возвращаемый функцией 5Ah в регистре АX.

Функция 3Dh позволяет открыть уже имеющийся файл. В регистрах DS:DX задается спецификация файла (путь и имя файла с расширением) в виде строки ASCIIZ; в регистре AL - режим доступа (0 - чтение, 1 - запись, 2 - чтение и запись). В дальнейшем запись в файл и чтение из него осуществляется с помощью дескриптора, возвращаемого функцией в регистре АХ. Для каждого открытого файла DOS создаст и поддерживает указатель, который представляет собой относительный номер байта в файле, начиная от которого будут выполняться запись или чтение данных. Указатель только что открытого или созданного файла позиционируется системой на начало файла, а функции чтения или записи смещают его на число прочитанных или записанных байт. Таким образом, повторное использование функций чтения или записи реализует последовательный доступ к файлу. Для организации прямого доступа к произвольному месту файла предусмотрена функция 42h, позволяющая задать положение указателя относительно начала файла (для этого надо задать AL=0), конца файла (AL=2) или текущего положения указателя (AL=1). Само значение смещения указателя (со знаком) заносится в регистры СХ (старшая половина) и DX (младшая).

Функции 3Fh и 40h используются для чтения из файла или устройства (функция 3Fh) и записи в файл или устройство (функция 40h). Перед вызовом функции в регистр ВХ помещается дескриптор, в регистр СХ - число читаемых или записываемых байт, а в регистры DS:DX - адрес буфера в программе пользователя. Иногда возникает необходимость найти в некотором каталоге все файлы, удовлетворяющие условиям шаблона групповой операции (например, все файлы с расширением .ТХТ или все файлы с именем EXAMPLE и любыми расширениями). Поиск файлов по заданным шаблонам групповых операций осуществляется с помощью функций 4Eh (найти первый файл) и 4Fh (найти следующий файл). Для их использования необходимо с помощью функции lAh организовать ь программе область передачи данных (Disk transfer area, DTA) размером не менее 43 байт, либо с помощью функции 2Fh получить адрес области передачи данных, созданной DOS. Известно, впрочем, что в качестве DTA DOS использует область PSP от байта 80h до конца. DOS помещает в DTA информацию о найденном файле (атрибуты, время и дата создания, размер и o.a.). В частности, в байтах 1Eh...2Ah DTA содержится имя и расширение файла в виде строки ASCIIZ. При поиске файлов по заданному шаблону сначала активизируется функция 4Eh. В регистры DS:DX помещается адрес строки ASCIIZ с путем к рассматриваемому каталогу, а в регистр СХ - код комбинации атрибутов искомого файла. 0 обозначает "нормальный" файл, т.е. файл без атрибутов, 1 - только для чтения, 2 - скрытый, 4 - системный, 8 - метка тома, l0h - каталог, 20h - атрибут архивации. Если установлены атрибуты поиска, то ищутся как нормальные файлы, так и файлы с заданными атрибутами. В случае успешного нахождения заданного файла функция возвращает CF=0, а имя и расширение файла в виде строки ASCIIZ помешаются в DTA, в байты IEh...2Ah. Получив имя файла, можно открыть его с помощью функции 3Dh и выполнить далее требуемые операции (чтение, запись и т.д.). Поиск следующих файлов, удовлетворяющих условиям заданного шаблона, осуществляется с помощью функции 4Fh, которая используется так же, как и функция 4Eh поиска первого файла. При необходимости функцию 4Fh можно активизировать многократно, пока CF=1 не покажет, что все файлы, удовлетворяющие условиям заданного шаблона, исчерпаны.

^

Задание к лабораторной работе



1.Наберите ниже приведенную программу, оттранслируйте и отладьте ее. Просмотрите с помощью редактора содержимое полученного файла.

Ответьте на следующие вопросы:

  • к какому типу относится программа?

  • перечислите известные Вам директивы Ассемблера, которые встречаются в программе. Сжато опишите их назначение;

  • какие функции 21-го прерывания DOS использованы в программе? Какое у них назначение?


title программа создания и записи в файл

code segment 'code'

assume cs:code,ds:code

org 100h

main proc

mov ah,3ch ;?

mov cx,0

comment *

В регистре СХ задается код атрибутов создаваемого файла

0 - нет атрибутов; 1 - только для чтения;

2 - скрытый; 4 - системный; 8 - метка тома;

20h - атрибут архива * (* - ограничитель)

mov dx,offset filename ;адрес имени файла

int 21h

mov handle,ax ;сохраним дескриптор файла в handle

;запишем строку в файл

mov ah,40h ;?

mov bx,handle

mov cx, meslenth

lea dx,messege

int 21h

;закрыть файл

mov ah, 3eh ;?

mov bx,handle

int 21h

;завершить программу

mov ah,4ch ;?

mov al,0

int 21h

main endp

messege db 'Фамилия, имя, отчество',cr,lf

meslenth equ $-messege

filename db 'myfile.txt',0

cr equ 13 ;возврат каретки

lf equ 10 ;перевод строки

handle dw ? ;дескриптор файла

code ends

end main


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


title программа чтения файла с диска

code segment 'code'

assume cs:code,ds:code

org 100h

main proc far

;открыть файл для чтения

;прочитать строку из файла (функция 3Fh)

;выведем строку на терминал(функция 40h)

;закрыть файл

;переименовать файл

;завершить программу

main endp

bufferin db 80 dup(' ')

filename db 'myfile.txt',0

………………………………….. ;определите необходимые переменные

code ends

end main

Описание необходимых функций 21h прерывания DOS найдите в справочной системе

Схожі:

Основные характеристики файловой системы ms-dos iconЛабораторная работа Изучение приемов администрирования ресурсов Windows 2000
Цель работы: Научиться работать с учетными записями пользователей и группами пользователей, назначать права пользователей на определенные...
Основные характеристики файловой системы ms-dos iconЛабораторная работа Изучение приемов администрирования ресурсов Windows 2000
Цель работы: Научиться работать с учетными записями пользователей и группами пользователей, назначать права пользователей на определенные...
Основные характеристики файловой системы ms-dos iconЛабораторна робота №1: " Операційна система ms dos "
Мета роботи: Отримати навички роботи з персональним комп’ютером під управлінням операційної системи ms dos
Основные характеристики файловой системы ms-dos iconЛабораторна робота №1: " Операційна система ms dos "
Мета роботи: Набути навички роботи з персональним комп’ютером під управлінням операційної системи ms dos
Основные характеристики файловой системы ms-dos iconУдк 621. 92. Хороманская О. Г. (Украина) Основные положения методологии проектирования системы государственного регулирования
Основные положения методологии проектирования системы государственного регулирования
Основные характеристики файловой системы ms-dos iconУдк 621. 92. Хороманская О. Г. (Украина) Основные положения методологии проектирования системы государственного регулирования
Основные положения методологии проектирования системы государственного регулирования
Основные характеристики файловой системы ms-dos iconОперационные системы Windows 95/98/NT/2000
Существует около десятка видов операционных систем для персональных компьютеров. Ещё совсем недавно (в 90-х годах) наибольшее распространение...
Основные характеристики файловой системы ms-dos iconТема Архитектура компьютера
Что такое файл? Опишите основные характеристики файла. Какие предусмотрены операции с файлами?
Основные характеристики файловой системы ms-dos iconКонспект по предмету: «Системы технологий в менеджменте»
Различные организационные уровни обслуживают четыре главных типа информационных систем: системы с эксплуатационным уровнем, системы...
Основные характеристики файловой системы ms-dos iconКонспект по предмету: «Системы технологий в менеджменте»
Различные организационные уровни обслуживают четыре главных типа информационных систем: системы с эксплуатационным уровнем, системы...
Додайте кнопку на своєму сайті:
Документи


База даних захищена авторським правом ©zavantag.com 2000-2013
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації
Документи