Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Описание работы. Темы для предварительной проработки




Темы для предварительной проработки.

Цель работы.

Лабораторная работа 6 СТРУКТУРА МАГНИТНЫХ ДИСКОВ

Особенности программирования

Порядок выполнения

4.1. Написать программу, реализующую изображенный на рис.2

алгоритм чтения из буфера клавиатуры ASCII и скан-кодов.

4.2. В соответствии с индивидуальным заданием определить

ASCII и скан-код требуемых клавиш.

── 1 ────────────

Начало

────────┬────────

┌────────────────>

│ │

│ да 2

<────── Буфер пуст?

│ │ нет

│ ┌── 3 ────┴─────────┐ ┌

│ │Чтение байта по ад-│ │ Чтение кода ASCII

│ │ресу начала буфера │ │ нажатой клавиши

│ └─────────┬─────────┘ └

│ │ ┌

│ ┌── 4 ────┴─────────┐ │Чтение скан-кода, если

│ │ Чтение байта по │ │ASCII код <> 0, иначе -

│ │ следующему адресу │ │номера расширенного кода

│ └─────────┬─────────┘ └

│ │

│ ┌── 5 ────┴─────────┐

│ │ ASCII и скан-код │

│ │ │

│ └─────────┬─────────┘

│ ┌── 6 ────┴─────────┐

│ │Коррекция указателя│

│ │ начала буфера │

│ └─────────┬─────────┘

│ │ ┌

│ нет 7 │Окончание по Ctrl-Break

- └────── Ctrl-Break? │для чтения кодов любой

│ клавиши

│ да └

─ 8 ────┴────────

Конец

─────────────────

 

Рис.2

5.1. На языке Турбо-Паскаль.

5.1.1. Для чтения данных из буфера клавиатуры используйте

предопределенный массив Mem. Например, для чтения содержимого ука-

зателя хвоста применяется выражение Mem[$0040:$001c], а для чтения

ASCII кода из начала буфера - Mem[$0040:Mem[$0040:$001a]].

 

5.2. На языке Турбо-Си.

 

5.2.1. Для чтения данных из буфера клавиатуры используются дальние

указатели,которые обьявляются в программе следующим образом:

 

char far * uk;

 

Например, для чтения содержимого указателя хвоста применяется выражение

 

uk=(char far *) 0x0040001c;

b=* uk;

 

а для чтения ASCII кода из начала буфера

 

uk=(char far *) 0x0040001a;

b=* uk;

 

 

где: b- переменная типа char.

 

6. Индивидуальные задания

 

6.1. Определить ASCII код русской буквы, номер которой в ал-

фавите совпадает с номером студента в журнале.

 

6.2. Определить скан-код этой клавиши.

 

7. Содержание отчета

 

7.1. Тема лабораторной работы.

7.2. Цель работы.

7.3. Индивидуальное задание.

7.4. Текст программы.

7.5. Результаты работы программы.

 

 


Изучение физической и логической структуры магнитных дисков и

приобретение практических навыков определения местонахождения ос-

новных элементов логической структуры дисков - корневой записи,

корневого каталога и таблицы размещения файлов.

2.1. Физическая и логическая структура магнитных дисков.

3.1. Физическая структура диска.

Все диски как гибкие, так и жесткие организованы одинаковым об-

разом. Данные всегда записываются на магнитной поверхности диска в

виде концентрических окружностей, называемых дорожками (цилиндра-

ми), а дорожки в свою очередь делятся радиально на сектора. Гибкие

диски (дискеты) имеют две стороны. Жесткие (фиксированные) диски

могут иметь более двух сторон.

Количество информации на одной стороне диска зависит от числа

дорожек (называемого плотностью) и числа секторов на одной дорож-

ке. Плотность может существенно меняться от диска к диску. Напри-

мер, диски двойной плотности имеют 40 дорожек, а диски учетверен-

ной (высокой) плотности - 80 дорожек. Если число дорожек и число

сторон являются конструктивными особенностями дисков, то располо-

жение, число и размер секторов задаются программно при первона-

чальной разметке (форматировании каждой дорожки диска). Для всех

типов дисков в MS-DOS размер сектора равен 512 байтам.

Например, стандартная дискета с диаметром 5.25 дюйма имеет 40

дорожек и в системе MS-DOS каждая такая дорожка может быть разбита

на 9 секторов, что дает общую емкость дискеты 360K (512 байт х 9

секторов х 40 дорожек х 2 стороны = 360K), на 15 секторов с ем-

костью дискеты 1.2М или на другое число секторов.

Файл располагают на таком количестве секторов, которое необхо-

димо, чтобы вместить его полностью. Только несколько секторов на

внешнем ободе дискеты зарезервированы для специальных нужд. Ос-

тальные доступны на основе правила "первый подошел - первого обс-

лужат". Это означает, что по мере заполнения диска данными сектора

постепенно заполняются по направлению к центру диска. При уничто-

жении файла сектора освобождаются и со временем свободные области

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

доступ к ним для чтения и записи.

3.2. Логическая структура гибкого диска.

Процесс форматирования диска делит общее количество секторов

на четыре части, образующие непрерывные сегменты. Эти сегменты (в

порядке расположения на диске) называются загрузочная запись (Boot

Record), таблица размещения файлов (FAT - File Allocation Table),

каталог (Directory) и пространство данных.

3.2.1. Загрузочная запись.

На дискетах первый сектор (дорожка 0, сторона 0, сектор 1) со-

держит запись начальной загрузки, которая является небольшой прог-

раммой, позволяющей компьютеру считывать с дискового накопителя

остальные части MS-DOS, а также данные о структуре диска. Формат

сектора представлен в таблице 1.

. Таблица 1

───────────────────────────────────────────────

Смещ. Длина Содержимое

───────────────────────────────────────────────

+0 3 JMP xx xx NEAR-переход на код загрузки

+3 8 имя компании и версия системы

+0bH 2 SectSiz число байтов на сектор ══ начало BPB ══╗

+0dH 1 ClustSiz число секторов на единицу распределения ║

(кластер) ║

+0eH 2 ResSecs число резервных секторов ║

(секторов перед первой FAT) ║

+10H 1 FatCnt число таблиц FAT ║

+11H 2 RootSiz макс. число 32-байтовых элементов ║

корневого оглавления ║

+13H 2 TotSecs общее число секторов на носителе ║

(раздел DOS) ║

+15H 1 Media дескриптор носителя ║

(то же, что 1-й байт FAT) ║

+16H 2 FatSize число секторов ║

в одной FAT ══ конец BPB ═══╜

+18H 2 TrkSecs число секторов на дорожке (цилиндре)

+1aH 2 HeadCnt число головок чтения/записи (сторон)

+1bH 2 HidnSec спрятанных секторов

+1eH начало программы загрузки и данных

──────────────────────────────────────────────────────────────────

Замечания:

- подмножество BPB корневого сектора используется драйверами

устройств

-последние три поля структуры требуются, начиная с DOS 3.0.

 

3.2.1.1. Адрес области FAT.

Адрес области FAT вычисляется следующим образом:

Адрес FAT = начало раздела + корневой сектор + число резерв-

ных секторов.

 

3.2.1.2. Адрес корневого каталога.

Адрес корневого каталого вычисляется следующим образом:

Адрес каталога = начало раздела + корневой сектор + число ре-

зервных секторов + число FAT x число секторов в одной FAT.

Необходимо заметить, что при вычислении адресов области FAT и

 

каталога с использованием трехмерных координат для задания адреса

сектора (головка, цилиндр, сектор) сначала изменяется значение

сектора, затем - головки, последним изменяется номер цилиндра.

 

3.2.2. Таблица размещения файлов (FAT).

FAT располагается непосредственно после загрузочной записи,

начиная с сектора 2 на дорожке 0 стороны 0 и содержит код формата

и полную карту принадлежности секторов файлам. MS DOS использует

FAT для хранения сведений о размещении файлов. Каждый элемент таб-

лицы соответствует участку дискового пространства и содержит код

состояния этого участка: занят, свободен или содержит дефект по-

верхности и поэтому не используется. Сохранность таблицы размеще-

ния файлов имеет критическое значение для сохранности всего диска,

поэтому на диске хранится две идентичные копии этой таблицы.

 

3.2.3. Каталог файлов.

Каталог представляет собой таблицу, в которой каждый элемент

соответствует файлу или другому каталогу и содержит информацию об

имени файла, его размере и др.

 

3.2.4. Пространство данных.

Пространство данных используется для хранения собственно дан-

ных и занимает большую часть диска (более 99% и с ростом емкости

дисков этот процент увеличивается).

 

3.3. Логическая структура жесткого диска.

Логическая структура жеского диска включает в себя все эле-

менты структуры гибкого диска, описанные в п. 2.2 и имеющие то же

самое назначение. Однако, помимо этого, жесткий диск содержит в

самом первом секторе (цилиндр (дорожка) 0, головка (сторона) 0,

сектор 1) программу, называемую главной корневой записью. Послед-

няя часть этого сектора содержит таблицу разделов ─ 4-элементную

таблицу с 16-байтовыми элементами. Этой таблицей манипулирует

программа FDISK. Каждый раздел на жестком диске имеет логическое

имя, например, 1-й раздел - "C:", 2-й раздел - "D:" и т.д.

Во время загрузки ROM-BIOS загружает главную корневую запись

в память и передает ей управление. Эта программа считывает таблицу

разделов, чтобы определить раздел, помеченный как активный. Затем

в память считывается корневой сектор активного раздела и выполня-

ется. В таблице 2 приведена структура таблицы разделов.

 

 

Таблица 2

. Таблица разделов

────────────────────────────────────────────────────────────────

Смещ. Длина Содержимое

────────────────────────────────────────────────────────────────

 

+0 1beH программа загрузки и выполнения корневого

сектора активного раздела

+1beH 10H элемент раздела 1 (см. табл. 3)

+1ceH 10H элемент раздела 2

+1deH 10H элемент раздела 3

+1eeH 10H элемент раздела 4

+1feH 2 55 aa - подпись (окончание)

таблицы разделов (0aa55H)

───────────────────────────────────────────────────────────────

 

Таблица 3

Структура элемента раздела

─────────────────────────────────────────────────────────────────

Смещ. Длина Содержимое

────────────────────────────────────────────────────────────────

+0 1 Boot - флаг загрузки: 0=не активен,

80H = активен

+1 1 Hd - начало раздела: номер головки (стороны)

+2 2 Sec Cyl - начало раздела: сектор/цилиндр(дорожка)

корневого сектора

+4 1 Sys - код системы: 0=неизвестна (незадана),

1=DOS с 12-бит. FAT,

4=DOS с 16-бит. FAT

5=дополнительный DOS

+5 1 Hd - конец раздела: номер головки

+6 2 Sec Cyl - конец раздела: сектор/цилиндр

последнего сектора

+8 4 мл. ст. - относительный номер начального сектора

+0cH 4 мл. ст. - размер (число секторов)

+10H начало следующего элемента раздела

(или 0aa55H для последнего элемента)

──────────────────────────────────────────────────────────────────

Замечания:

Значения цилиндра и сектора занимают 10 и 6 бит соответс-

твенно. Формат слова, задающего значения цилиндра и сектора приве-

ден на рис. 1 (ц - разряды значения цилинда, Ц - старший разряд;

 

с - разряды значения сектора, С - старший разряд).

 

. ╓15┬14┬13┬12┬11┬10┬09┬08╥07┬06┬05┬04┬03┬02┬01┬00╖

. ║ ц ц ц ц ц ц ц ц Ц ц С с с с с с║

. ╙──┴──┴──┴──┴──┴──┴──┴──╨──┴──┴──┴──┴──┴──┴──┴──╜

Рис. 1

 

Относительный сектор 0 совпадает с цилиндром 0, головкой 0,

сектором 1. Относительный номер сектора увеличивается сначала по

каждому сектору на головке, затем по каждой головке и наконец по

каждому цилиндру.

 

3.4. Чтение сектора диска в память.

Для чтения содержимого требуемого сектора в указанную область

памяти используется функция 2 прерывания 13h. При этом регистры

имеют следующее назначение:

. ah - номер функции;

. dl - номер дисковода: 0 - "A", 1 - "B", $80 - жесткий диск;

. dh - номер головки (стороны);

. ch - номер дорожки (цилиндра);

. cl - номер сектора;

. al - число секторов;

. es - значение сегмента адреса области памяти;

. bx - значение смещения адреса области памяти.

Если функция прерывания выполнена без ошибок, то флаг перено-

са CF (младший разряд регистра флагов Flags) установлен в 0 и ре-

гистр ah содержит 0. Если флаг переноса установлен в 1, значит бы-

ла ошибка и регистр ah содержит код ошибки (байт состояния). В

таблице 1 приведен формат байта состояния для дискеты.

Таблица 1

Байт состояния дискеты

. ────────────────────────────────────────────────────────────────

. Биты

. 7 6 5 4 3 2 1 0 Значение

────────────────────────────────────────────────────────────────

....... 1 Неверная команда: неправильный запрос

к контроллеру дискеты

...... 1. Плохой адресный маркер: неверная маркировка

идентификатора сектора или маркер не найден

..... 1.. Плохой сектор: на дискете нет заданного

сектора

─────────────────────────────────────────────────────────────────

 

. Продолжение табл.1

───────────────────────────────────────────────────────────────

. Биты

. 7 6 5 4 3 2 1 0 Значение

────────────────────────────────────────────────────────────────

 

.... 1... Ошибка прямого доступа к памяти (DMA)

 

... 1.... Ошибка циклического кода: ошибка в четнос-

ти данных при чтении дискеты

.. 1..... Ошибка контроллера дискеты: неисправность

контролллера дискеты

. 1...... Ошибка поиска: ошибка при перемещении на

заданную дорожку

1....... Тайм-аут: дисковод не отвечает

...... 1 1 Ошибка защиты записи: попытка записи на за-

щищенную дискету

.... 1.. 1 Ошибка границы DMA: попытка обращения за

пределы области 64K

─────────────────────────────────────────────




Поделиться с друзьями:


Дата добавления: 2014-12-07; Просмотров: 387; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.