49908 (Програма для роботи з файловою системою), страница 2

2016-07-29СтудИзба

Описание файла

Документ из архива "Програма для роботи з файловою системою", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. .

Онлайн просмотр документа "49908"

Текст 2 страницы из документа "49908"

Не існує логічного розходження між обробкою 12-бітових й 16-бітових входів FAT; розходження ставляться тільки до пам'яті й методів доступу. Оскільки процесор 8086 особливо призначений для эфективний обробки 8- або 16-бітових величин, то процедура доступу для 12-бітової FAT є більше складної, чим для 16-бітової.



_____________________________________________________________________

12-бітовий 16-бітовий Значення |

-і-і-і-і-і-і-і-і-і-і-і-і-і-і-і-і-і-і-і-і-і-і-і-і-і-і-і-і-і-і-і-і-і-і|

000H 0000H Вільний кластер |

001H 0001H Код не використається |

FF0-FF6H FFF0-FFF6H Резерв |

FF7H FFF7H Дефектний кластер |

(не використається) |

FF8-FFFH FFF8-FFFFH Останній кластер в |

файлі |

Всі інші значення Посилання на наступний |

кластер у файлі |

____________________________________________________________________|





Вхід FAT

0 1 2 3 4 5 6 7 8 9

___________________________________________________________________

| FFDH| FFFH| 003H| 005H| FF7H| 006H| FFFH| 000H| 000H| 000H|

| 4093| 4095| 3 | 5 | 4087| 6 | 4095| 0 | 0 | 0 |

|___________________________________________________________|______

| | | |

| | | |

| | | |

| | | |__ не використаний:

| | | доступний кластер

| | |

| | |_____ використати не можна

| |

| |______ не використається: не доступний

|

|

|______ диск двосторонній з подвійною щільністю



Розподіл пам'яті в FAT для типового диска MS DOS



FAT є високоефективною "бухгалтерською" системою, однак тут можуть виникнути різні проблеми й необхідність компромісних рішень. Одна із проблем пов'язана з наявністю частково заповненого кластера наприкінці файлу. При цьому виникає проблема ефективності, пов'язана з використанням кластера більшого розміру, коли відбувається виділення цілого кластера, незалежно від числа содержащихся в ньому байтів. Наприклад, десять 100-байтовых файлів на диску із кластерами розміром по 16 Кбайт, займає 160 Кбайт дискової пам'яті; ті ж файли на диску із кластерами розміром 1 Кбайт займають тільки 10 Кбайт – різниця становить 150 Кбайт, що означає зменшення обсягу пам'яті в 15 разів при використанні кластерів меншого розміру. З іншого боку, програма для 12-бітової FAT, показана на мал.3-10, демонструє складність (а отже, низьку швидкість) переміщення у великому файлі, які мають довгий список посилань між невеликими кластерами. Таким образом, необхідно враховувати характер даних: додатка більших баз даних працюють ефективніше всього із кластерами більшого розміру; використовують кластери меншого розміру, можна розмістити на диску безліч невеликих текстових файлів драйвер, що розробляє, для дискового програміст звичайно встановлює розмір кластера).

Внаслідок відключення електроенергії або безладного виконання програм виникають проблеми руйнування каталогів або таблиць розміщення файлів, які , не будучи виправлені, можуть привести до більше серйозним проблемам. Програма MS DOS CHKDSK може виявляти й фіксують деякі дефекти. (см. КОМАНДИ КОРИСТУВАЧА CHKDSK). Наприклад, однієї з типових проблем є наявність списків "повислих" посилань (dangling allocation lists), викликане тим, що в каталозі відсутній покажчик на початок списку. Подібна ситуація часто буває, коли не був обновлений вхід у каталог, тому що не відбулося закриття файлу перед вимиканням або перезавантаженням комп'ютера. Наслідки цього досить необразливі: дані недоступні, однак це обмеження не впливає на інші операції по розміщенню файлів. Команда CHKDSK може вирішити цю проблему, створивши новий вхід каталогу й зв'язавши його зі списком.

Інші труднощі виникають, якщо розмір файлу у вході каталогу не збігається з його довжиною, що обчислює за допомогою перегляду списку посилань в FAT. Це може викликати невірне виконання програми і повідомлення про помилки MS DOS.

Більше складна й рідше виникаюча проблема зустрічається, коли вхід каталогу заданий правильно, однак список посилань (весь або деяка його частина) використаний також іншим входом каталогу. Виникає важка ситуація, тому що запис або додавання в один файл змінює вміст іншого. Ця помилка звичайно викликає серйозне руйнування даних й/або каталогу й приводить до краху системи.

Подібна проблема зустрічається, коли список зв'язків завершується вільним кластером замість номера останнього кластера. Якщо вільний кластер розподілений до виправлення цієї помилки, ситуація наприкінці кінців перетворюється в описаний вище випадок. Пов'язана із цим труднощі виникає, коли зустрічається значення посилання 1 або значення, перевищує розмір FAT.

Крім CHKDSK, для обслуговування FAT можна використати безліч комерційно доступних сервісних програм. Наприклад, програми реорганізації диска (disk reorganizers) можна застосовувати для зміни структури FAT й упорядкування каталогу так, щоб всі файли на диску були розміщені послідовно в області файлів даних й, зрозуміло, в FAT.



12-бітовий FAT FFFH 007H 000H

003H _____ ____ ____

Резерв _____ | | _|_ | _|__ |

____|____ _|__ | __|_ | 00 |07| | |00| |

| | | | | 00 | FF | 6F |____| F0 FF 0

F9 FF FF 03 40 |___| | | | |__|

| | | | | |

| | | | | |

|______| |_____| |___|

004H

16-бітовий FAT

Резерв

| 0003H

____________ _____ ____ ____ _____ ____ _____ _____

| | | | | | | | | | | | | | | |

F8 FF FF FF 03 00 04 00 FF FF 06 00 07 00 FF FF 00 00

Вхід FAT

__________________________________________________

12-бітовий FAT |резерв| 003H| 004H| FFFH| 006H| 007H| FFFH| 000H|

16-бітовий FAT | |0003H|0004H|FFFFH|0006H|0007H|FFFFH|0000H|

|______|_____|_____|_____|_____|_____|_____|_____|



Вхід каталогу ____________

(указує на |FILE1.TXT |

2 вхід FAT) |___________|



(указує на ____________

5 вхід FAT) |FILE2.TXT |

|___________|



Область файлів даних Відповідний вхід FAT

__________________________________

| FILE1.TXT | 2

|________________________________|

| FILE1.TXT | 3

|________________________________|

| FILE1.TXT | 4

|________________________________|

| FILE2.TXT | 5

|________________________________|

| FILE2.TXT | 6

|________________________________|

| FILE2.TXT | 7

|________________________________|

| не використається (доступний) | 8

|________________________________|



Відповідність між FAT й областю файлів даних



;-і-і-і Одержати номер наступного посилання з 12-бітової FAT

;Параметри:

; ax = поточний номер ліворуч

; ds:bx = адреса FAT (повинна бути безперервної)

;

; Повертає:

; ax = номер наступного посилання

;

; Використає ax, bx, cx

next 12 proc near

add bx,ax /ds:bx - частковий індекс

shr ax,1/ax = зсув /2

/ зрушення не потрібний

pushf / зберегти зрушення

add bx,ax /ds:bx - індекс номера наступного кластера

mov ax,|bx| /ax = індекс номера наступного кластера

popf / зрушення не потрібний

jc shift / пропустити при використанні більше 12 біт

and ax,0fffh / менш 12 біт

ret

shift: mov cx,4/ cx = лічильник зрушень

shr ax,c1 /cx =

ret

next12 endp



Ассемблерная програма для доступу до 12-бітового FAT



Корневий каталог



Входи каталогу, як у кореневому, так й у підкаталогах, мають довжину 32 байта. Кожен вхід включає ім'я файлу й розширення, розмір файлу, початковий вхід в FAT , час і дату створення або останньої модифікації файлу і його атрибути. Ця структура нагадує формат блоків управління файлом (file control blocks - FCBs) для СР/М, використовуваний у файловій системі MS DOS, версії 1.х.

Угода про найменування файлів в MS DOS відбувається також з СР/М: восьмисимвольне ім'я файлу й наступний за ним трьохсимвольний тип файлу, вирівняні ліворуч і при необхідності доповнені пробілами. В межах обмежень символьного ряду ім'я й тип є абсолютно довільними. Час і дата задаються у форматі, використовуваному іншими функціями MS DOS і відбивають час останнього запису файлу.

Показаний дамп сектора каталогу обсягом 512 байт, що тримає 16 входів (кожен вхід у цьому прикладі займає два рядки). Байт зі зсувом ОАВН, що містить значення 10Н позначає, що вхід починаючи з адреси 0А0Н, ставиться до підкаталогу. Байт зі зсувом



;-і-і-і Одержати номер наступного посилання з 16-бітової FAT

;Параметри:

; ax = поточний номер ліворуч

; ds:bx = адреса FAT (повинна бути безперервної)

;

; Повертає:

; ax = номер наступного посилання

;

; Використає ax, bx, cx

next 16 proc near

add ax,ax /ax = зсув ліворуч

add bx,ax /ds:bx - індекс номера наступного посилання

mov ax,|bx| /ax = номер наступного посилання

ret

next16 endp



Ассемблерная програма для доступу до 16-бітового FAT



160Н, що містить 0Е5Н, означає, що файл вилучений. Байт зі зсувом

8ВН і значенням 08Н указує, що вхід каталогу, починаючи зі зсуву

80Н, є міткою тому. В остаточному підсумку, байт зі зсувом 1Е0Н

означає кінець каталогу, з огляду на, що наступні входи каталогу ніколи не використалися й, отже, їхній пошук не потрібно

Корнєвій каталог може мати спеціальний тип входу, що називається міткою тому, ідентифікується типом атрибута 08Н и використається для позначення імені диска. Корнєвій каталог може містити тільки одну мітку тому. Корнєвій каталог може також включати входи, указиває на підкаталоги; такі входи ідентифікуються типом атрибута 10Н і нульовим розміром файлу. Програми обробки підкаталогів повинні здійснює трасування ланцюжків кластерів в FAT.

Два інших особливих типи входів каталогу зустрічаються тільки в підкаталогах. Ці входи містять . и.., що означає відповідно поточний каталог і батьківський каталог для поточні. Ці спеціальні входи, називані іноді альтернативними іменами каталогу (directory aliases), використаються для швидкого переміщення в структурі каталогу.

0 1 2 3 4 5 6 7 8 9 A B C D E F

0000 49 4F 20 20 20 20 20 20-53 59 53 27 00 00 00 00 10......SYS'.....

0010 00 00 00 00 00 00 59 53-89 0B 02 00 D1 12 00 00 ......YS....O....

0020 4F 53 44 4F 53 20 20 20-53 59 53 27 00 00 00 00 MSDOS...SYS'....

0030 00 00 00 00 00 00 41 49-52 0A 07 00 C9 43 00 00 ......AIR...IC..

0040 41 4E 53 49 20 20 20 20-53 59 53 20 00 00 00 00 ANSI.....SYS....

0050 00 00 00 00 00 00 41 49-52 0A 18 00 76 07 00 00 ......AIR...V...

0060 58 54 41 4C 4B 20 20 20-45 58 45 20 00 00 00 00 XTALK....EXE....

0070 00 00 00 00 00 00 F7 7D-38 09 23 02 84 0B 01 00 ......W18.......

0080 4C 41 42 45 4C 20 20 20-20 20 20 08 00 00 00 00 LABEL...........

0090 00 00 00 00 00 00 8C 20-2A 09 00 00 00 00 00 00 .........*.D..R.

00A0 4C 4F 54 55 53 20 20 20-20 20 20 10 00 00 00 00 LOTUS...........

00B0 00 00 00 00 00 00 E0 OA-E1 C6 A6 01 00 00 00 00 ......'.a.&.a...

00C0 4C 54 53 4C 4F 41 44 20-43 4F 4D 20 00 00 00 00 LTSLOAD.COM.....

00D0 00 00 00 00 00 00 E0 0A-E1 06 A7 01 A0 27 00 00 ......'.a.......

00E0 4D 43 49 2D 53 46 20 20-58 54 4B 20 00 00 00 00 MCI-SE...XTK....

00F0 00 00 00 00 00 00 46 19-32 0D B1 01 79 04 00 00 .......F.2.1.y..

0100 58 54 41 4C 4B 20 20 20-48 4C 50 20 00 00 00 00 XTALK...HLP.....

0110 00 00 00 00 00 00 C5 6D-73 07 A3 02 AF 88 00 00 ......Ems.#.....

0120 54 58 20 20 20 20 20 20-43 4F 4D 20 00 00 00 00 TX COM....

0130 00 00 00 00 00 00 05 61-65 0C 39 01 E8 20 00 00 .................

0140 43 4F 4D 4D 41 4E 44 20-43 4F 4D 20 00 00 00 00 COMMAND COM .....

0150 00 00 00 00 00 00 41 49-52 0A 27 00 55 3F 00 00 ......AIR.'.UP...

0160 E5 32 33 20 20 20 20 20-45 58 45 20 00 00 00 00 e23 EXE.....

0170 00 00 00 00 00 00 9C B2-85 0B 42 01 80 5F 01 00 ........2..B.....

0180 47 44 20 20 20 20 20 20-44 52 56 20 00 00 00 00 GD.......DRV.....

0190 00 00 00 00 00 00 E0 0A-E1 06 9A 01 5B 08 00 00 .......'a...'....

01A0 4B 42 20 20 20 20 20 20-44 52 56 20 00 00 00 00 KB.......DRV.....

01B0 00 00 00 00 00 00 E0 0A-E1 06 9D 01 60 01 00 00 .......'a...'....

01C0 50 52 20 20 20 20 20 20-44 52 56 20 00 00 00 00 PR.......DRV.....

01D0 00 00 00 00 00 00 E0 0A-E1 06 9E 01 49 01 00 00 .......'a..'.....

01E0 00 F6 F6 F6 F6 F6 F6 F6-F6 F6 F6 F6 F6 F6 F6 F6 .................

01F0 F6 F6 F6 F6 F6 F6 F6 F6-F6 F6 F6 F6 F6 F6 F6 F6 .................

Шестнадцатеричный дамп сектора каталогу обсягом 512 байт



Область файлу



Область файлу містить підкаталоги, даних файлу й нерозподілені кластери. Область розділяється на кластери фіксованого розміру й використання кожного кластера регламентується відповідним входом FAT.

Практична частина



Лістинг модулів програми



Модуль, який блокує запуск COM та EXE файлів

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5302
Авторов
на СтудИзбе
416
Средний доход
с одного платного файла
Обучение Подробнее