Міністерство освіти та науки України
Кіровоградський Державний Технічний університет
Кафедра програмного забезпечення
Курсова робота
з дисципліни “Програмування на мові ASM-86” на тему:
Розробити програму-аналог програми ДОС UNDELETE
Зміст
1. Вступ
2. Постановка задачі
3. Обґрунтування вибору методів розв’язку задачі
4. Алгоритм програми
5. Реалізація програми
6. Системні вимоги
7. Інструкція для користувача
8. Висновки
9. Використана література
Додаток
Тепер комп’ютери відіграють у житті людини все більшу та більш роль. Раніше, коли ще не було комп’ютерів, чи вони були мало розповсюдженні, все робилося вручну. Коли комп’ютери одержали широке розповсюдження, комп’ютер став допомагати людині, бо він може багато операцій робити набагато швидше, ніж людина.
На сьогоднішній день можливість вирішення багатьох задач на комп‘ютерах визначається необхідністю інформаційної швидкості та ефективності характерних обчислювальних засобів, тому розширення сфери використання комп‘ютерної техніки в останній час обумовлено в першу чергу ростом продуктивності.
В операційних системах є таке поняття, як вилучення файлів з диска. Але така операція може бути небезпечною, бо користувач може помилково вилучити файл, який ще потрібен. Тому необхідність програм, які б могли хоча б у деяких випадках відновляти вилучені файли, дуже велика.
Розробити програму-аналог програми ДОС UNDELETE на мові програмування ASM-86.
Отже, необхідно написати програму-аналог програми UNDELETE. При виборі алгоритму програми я використала інформацію з електронного довідника BOOK.
Сектора каталогу.
Сектора каталогу містять інформацію про каталог для усіх файлів у кореневому каталозі диска. Інформація для файлів, що містяться в підкаталогах, зберігається у файлі підкаталогу, елемент для який поміщений у його батьківський каталог (кореневий чи інший підкаталог). Коли ви видаєте команду DIR, інформацію одержують із секторів каталогу, якщо зчитується кореневий каталог, чи одержують із файлу підкаталогу, що описує поточний підкаталог. Оскільки один сектор звичайно займає 512 байтів у довжину, ми можемо легко обчислити, що кожен елемент каталогу має довжину 32 байта. Загальна кількість елементів у кореневому каталозі залежить від того, скільки секторів каталогу задано. Наприклад, однобічні гнучкі диски усього мають 64 елемента в кореневому каталозі, у те час, як двосторонні 40-трекові диски мають 112 таких елементів, а двосторонні 80-трекові 5,25-дюймові диски мають 224 елемента в кореневому каталозі.
Для більшості твердих дисків загальна кількість елементів у каталозі залежить від того, як був відформатований диск. Кожен варіант розбивки твердого диска має максимальна кількість елементів кореневого каталогу, що відповідає регістрам частин розбивки. Загальна кількість елементів кореневого каталогу визначає максимальна кількість імен файлів, що може бути поміщене в кореневий каталог. Це обмеження, однак, не поширюється на підкаталоги. Оскільки елементи підкаталогу, що відповідають розміщеним у підкаталогах файлам, самі поміщені у файл опису підкаталогу, не існує обмежень на кількість файлів, поміщених у підкаталог; файл опису підкаталогу може збільшуватися в міру потреби.
Інформація, що міститься в елементі каталогу підрозділяється на шість компонентів, чотири з яких напряму відносяться до відновлення стертих файлів.
Чотирма частинами елемента каталогу, з якими ми будемо мати справу, є: ім'я й тип файлу, атрибут (атрибути), початковий кластер і розмір файлу.
Ім'я файлу, тип файлу й стан файлу.
Ім'я й тип файлу складаються з 11 байтів, у яких представлене ім'я файлу, якому відповідає елемент каталогу. Кожен байт містить символ АSСІІ.
В операційній системі MS-DOS версії 2.0 і вище ім'я файлу в елементі каталогу завжди відноситься до файлу, що зберігається в кореневому каталозі. Оскільки імена підкаталогів вважаються операційною системою MS-DOS файлами, вони також мають свої елементи в секторах каталогу. Ім'я підкаталогу, однак, містить інформацію в елементі каталогу, що злегка відрізняється від звичайних файлів. Нижче в розділах цієї глави ми обговоримо ці розходження.
Відзначимо також, що під керуванням операційної системи MS-DOS версії 2.0 і вище, максимальне число чи файлів елементів каталогу, що гнучкий диск може вмістити (64, 112 і 224), відповідає скільки обсягу кореневого каталогу. Оскільки усі файли, розміщені в підкаталозі, мають каталогові елементи в самому підкаталозі "файл", не існує обмежень на кількість файлів, який можна розмістити на диску в межах місця, передбаченого конкретним типом чи диска формату.
При стиранні файлу з диском відбуваються дві речі. Першим елементом, що торкається до відновлювання, є перший символ імені файлу в елементі каталогу. Перший байт в елементі каталогу може або вказувати стан файлу, або представляти перший символ ASCII в імені файлу. Якщо елемент каталогу не був використаний з моменту останнього форматування диска, перший байт завжди встановлений у значення "00". У такий спосіб операційній системі MS-DOS потрібно тільки вважати перший байт елемента каталогу для визначення, чи може він використовуватися. При створенні файлу перший байт міняється й перетворюється в перший символ імені файлу. Коли пізніше файл стирається, перший байт міняється в шіснадцяткове значення "E5". Інша інформація в елементі каталогу, що відноситься до стертого файлу, залишається колишньої. Коли ви переглядаєте сектори диска в пошуках інформації про елемент каталогу стертого файлу, то значення є для вас першим ключем до розгадки потрібного елемента каталогу.
Другим ключем, звичайно, є представлення іншої частини імені файлу і її набір у форматі ASCII. Але перший символ шістнадцяткового значення "E5" говорить про те, що елемент каталогу являє собою стертий файл. Цей байт встановлений у таке значення для того, щоб операційна система MS-DOS знала, що елемент каталогу звільнився й у нього може бути внесена інформація про новий файл, якщо цей елемент буде потрібно системі.
Розроблювачі операційної системи MS-DOS передбачили такий спосіб видалення файлів. Завдяки цьому, ми тепер можемо (у більшості випадків) відновити тільки що стертий файл.
Атрибут.
Байт атрибута містить інформацію про атрибути розміщення файлу. Атрибути вказують, як операційна система MS-DOS поводиться з файлом. Кожен біт цього байта визначає якийсь конкретний атрибут і приймає значення "1", коли цей атрибут призначається файлу. Відзначимо, що файлу може бути призначено кілька атрибутів. Наприклад, якщо файлу призначені атрибути "тільки для читання" (значення 01) і "схований" ("тільки для читання" (значення 02), що результат у байті атрибута буде являти собою суму обох значень атрибутів, тобто значення 03. Інформація, що міститься в байті атрибута може бути, а може не бути корисною для відновлення файлу. Наприклад, малоймовірно, щоб ми стали намагатися відновлювати файл, атрибутом якого було значення "тільки для читання", якщо тільки ми не намагаємося відновити весь зруйнований диск. Звичайно, ми не піклуємося про атрибути файлу. Але, якщо, однак, ми відновлюємо файл з атрибутом "схований", ми захочемо змінити цей атрибут, тому що в противному випадку ми не зможемо побачити цього файлу при видачі команди DIR, а, отже, не зможемо переконатися в тім, що файл був відновлений. Інша причина, по якій ми можемо захотіти звертатися до байта атрибута файлу, полягає в бажанні відновлення імені підкаталогу.
Початковий кластер.
Початковий кластер являє собою 2-байтовий, 16-цифровий двійковий номер, що визначає першу секцію диска, зайняту файлом. Ця секція диска називається кластером. Незважаючи на те, що фізично зформатованний диск розглядається з погляду треків і секторів, операційна система MS-DOS у дійсності розглядає диск із погляду кластерів секторів, а не окремих цілих секторів. Початковий кластер являє собою вихідний "покажчик" на перший сектор даних файлу, а також на наступні покажчики в секторах таблиці FAT. Вважавши цей початковий покажчик в елементі каталогу, операційна система MS-DOS продовжує зчитувати інші покажчики. На сектори даних файлів у секторі таблиці FAT. Нижче ми будемо говорити про сектори таблиці FAT, але зараз відзначимо, що звертання до початкового кластера є одним із найбільш важливих перших кроків у відновленні стертих чи зруйнованих файлів.
Розмір файлу.
Розмір файлу представлений 4-байтовим двійковим числом, перший байт якого являє собою молодшу частину розміру файлу. Четвертий байт є старшою частиною розміру файлу, і ми використовуємо це значення для визначення крапкою довжини файлу, і тим самим для визначення кількості секторів, що займав стертий чи файл передбачається, що він займав.
Тепер, після того, як були визначені важливі частини елемента каталогу, ми переходимо до розгляду секторів таблиці FAT.
Інформація в цих секторах представляє додаткові ключі для розгадки того, як стертий чи зруйнований файл може бути відновлений.
Сектора таблиці розміщення файлу (FAT).
Сектори, що містять таблицю FAT, використовуються операційною системою MS-DOS для визначення місця розташування на диску кожної частини кожного файлу. На відміну від деяких операційних систем, що завжди розташовують файли послідовно і використовують сектора безупинно, операційна система MS-DOS може розміщати файли й частини одного файлу довільним образом. Система, що завжди розташовує файл послідовно, більш просто може відслідковувати місце розташування файлів, а, отже, може звертатися до файлів більш швидко. Для відновлення файлу, розташованого безупинно, нам потрібно знати тільки адреси його початку й кінця.
Усі дані в цьому проміжку є даними файлу.