ГОТОВЫЕ ДИПЛОМНЫЕ РАБОТЫ, КУРСОВЫЕ РАБОТЫ, ДИССЕРТАЦИИ И РЕФЕРАТЫ

Практическое задание по дисциплине - Операционные среды, системы и оболочки.

Автор Ольга
Вуз (город) Москва
Количество страниц 7
Год сдачи 2008
Стоимость (руб.) 1100
Содержание Контрольная работа №1

Изучить структуру системных таблиц реального режима Windows и организацию цепочек блоков памяти

Познакомиться с работой одной из программ, позволяющих просмотреть содержимое ОЗУ в виде шестнадцатеричного дампа - PEEK.COM.
Найти в памяти таблицу таблиц (для получения ее адреса запустить lol.com), познакомиться с ее содержимым и посмотреть указатель на 1 MCB.
Проследить в памяти цепочку блоков, определяя их принадлежность и сравнивая с информацией из карты памяти.
Написать отчет с описанием процесса нахождения блоков MCB. В отчете указать цепочку блоков памяти с их адресами и размерами.
Список литературы Список использованной литературы

1. Гук М. Аппаратные средства IBM PC. Энциклопедия. СПб.: Издательство "Питер", 2000. - 816 c.
2. Дейтин Г. Введение в операционные системы. Перевод с английского. В 2-х томах, М., Мир, 1987 г.
3. Роберт Журден. Справочник программиста на персональном компьютере фирмы IBM.
4. Операционная система MS-DOS. Руководство разработчика
5. Операционная система MS-DOS (версия 6.0). Справочное руководство.
6. Питер Абель. Ассемблер и программирование для IBM PC
7. Справочная система Tech Help.
8. Фигурнов В.Э. IBM PC для пользователей. М.:ИНФРА,1997г.
Выдержка из работы Исследование цепочки блоков основной памяти

MCB – это управляющий блок, который DOS использует при распределении, модификации и освобождении блоков системной памяти.
Формат блока:
Смещ. Длина Содержимое
▀▀▀▀▀ ▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
┌───┐ ┌──► 'M'(4dH) - за этим блоком есть еще блоки
+0 1 │Тип├──┴──► 'Z'(5aH) - данный блок является последним
├───┴───┐
+1 2 │Владелец параграф владельца (для FreeMem); 0 = владеет собой
├───┴───┤
+3 2 │Размер │ число параграфов в этом блоке распределения
├───┴───┴───────┐
+5 3 │зарезервировано│
└───┴───┴───-───┘
+8 8 ASCIIZ имя хозяина

+10H ? Блок памяти начинается здесь и имеет длину (Размер*10H) байт.

Замечания:
 блоки памяти всегда выровнены на границу параграфа ("сегмент_блока");
 блоки M-типа: следующий блок находится по (сегмент_блока+Размер):0000;
 блоки Z-типа: (сегмент_блока+Размер):0000 = конец памяти.

Сегмент первого блока в цепочке MCB-блоков хранится по смещению -2 в таблице таблиц (векторной таблице связи) MS-DOS. В векторной таблице связи есть полезная информация, открывающая доступ практически ко всем внутренним структурам данных операционной системы.

Таблица 1 – Формат векторной таблицы связи
Смещение, байт Размер, байт Имя поля Описание
-2 2 mcb_seg Сегмент первого блока памяти MCB
0 4 dev_cb Указатель на первый блок управления устройствами MS-DOS (MS-DOS Device Control Block)
4 4 file_tab Указатель на таблицу файлов MS-DOS
8 4 clock_dr Указатель на драйвер CLOCK$ , установленный в файле config.sys или резидентный
12 4 con_dr Указатель на драйвер CON , установленный в файле config.sys или резидентный
16 2 max_btbl Максимальный размер блока (в байтах) для устройства, выполняющего передачу данных отдельными блоками
18 4 disk_buf Указатель на структуру, описывающую дисковые буферы
22 4 drv_info Указатель на массив информации об устройствах
26 4 fcb_tabl Указатель на таблицу FCB
30 2 fcb_size Размер таблицы FCB
32 1 num_bdev Число устройств, выполняющих передачу данных отдельными блоками
33 1 lastdriv Значение LASTDRIVE в файле config.sys (по умолчанию равно 5)
34 ? null_dr Начало драйвера NUL. Этот драйвер всегда первый в списке драйверов MS-DOS

Предварительно загрузив резидентную программу PEEK.EXE для просмотра содержимого памяти, определим с помощью утилиты LOL.COM адрес начала таблицы таблиц:
List of list location: 00A7:0026H

По смещению -2 находится адрес сегмента, по которому расположен первый MCB в цепочке блоков основной памяти. В данном случае этот адрес равен 0213:0000