Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3- 0_Операционные системы

.doc
Скачиваний:
18
Добавлен:
23.06.2014
Размер:
74.24 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

.

ТУСУР.

КАФЕДРА: СУ.

КОНТРОЛЬНАЯ РАБОТА № 3

ПО ДИСЦИПЛИНЕ

ОПЕРАЦИОННЫЕ СИСТЕМЫ И СИСТЕМНОЕ ПРГРАМИРОВАНИЕ

Контрольная работа №3. Изучение структуры основной памяти:

  • Задание

Проследить цепочку блоков основной памяти. Сравнить результат с выводом команды MEM /c , MEM /d.

  • Пояснения по выполнению работы

Для выполнения работы потребуются дополнительные утилиты (см. каталог TOOLS). Программа LOL.COM – для получения адреса системной «таблицы таблиц». Программа PEEK – для непосредственного просмотра содержимого основной памяти. Справочная информация – в файле 4_4-mem.txt.

  • Оформление результатов

Отчет с таблицей блоков памяти Вашей системы. Обязательные поля таблицы: адрес блока памяти; имя программы-хозяина; размер; тип.

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

  • Что такое виртуальная память? Для чего нужен файл подкачки (swap – файл)?

Виртуальная память (Virtual Memory) представляет собой программно-аппарат­ное средство расширения пространства памяти, предоставляемой программе в качестве оперативной. Эта память физически реализуется в оперативной и дисковой памяти под управлением соответствую­щей операционной системы.

Ото­бражение поддерживается с помощью специальных таблиц страничной переад­ресации, в которых, кроме связи адресов, есть указание на присутствие страни­цы в физической памяти на данный момент времени. Теперь страница памяти, не нужная процессору в данный момент времени, может быть выгружена на устройство хранения (диск). На ее место можно загрузить нужную страницу. Заявку на загрузку нужной страницы делает сам процессор, без каких-либо усилий выполняемой программы: если программе потребовалась ячейка вирту­альной памяти из страницы, образа которой сейчас нет в физической памяти, вырабатывается специальное исключение. Обработчик этого исключения (это часть ОС) найдет свободную физическую страницу (выгрузив на диск ту, кото­рая, по его мнению, пока не нужна), «подкачает» на нее с диска требуемую информацию и вернет управление процессу, прерванному исключением. Этот процесс ничего «не заметит» (кроме некоторой задержки выполнения инструк­ций). Таким образом, в распоряжение всех процессов, исполняемых на компьютере псевдопараллельно, предоставляется виртуальная оперативная память, размер которой ограничен суммой объема физической оперативной памяти и областью дисковой памяти, выделенной для подкачки страниц. А файл подкачки как раз и нужен для того, чтобы «подкачивать» информацию необходимую в данный момент с диска. Для того чтобы при­ложениям хватало памяти, на диске, несущем файл подкачки, должно быть до­статочно свободного пространства (десятки и сотни мегабайт). Поскольку файл подкачки изменя­ет свой размер в процессе работы, важно следить за фрагментацией диска, не­сущего этот файл – обращение к фрагментированному файлу выполняется мед­леннее, чем к не фрагментированному.

  • Как Вы понимаете одновременное выполнение нескольких задач в многозадачной ОС?

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

Очевидно, что главным требованием, предъявляемым к операционной системе, является способность выполнения основных функций: эффективного управления ресурсами и обеспечения удобного интерфейса для пользователя и прикладных программ. Современная ОС, как правило, должна реализовывать мультипрограммную обработку, виртуальную память, свопинг, поддерживать многооконный интерфейс, а также выполнять многие другие, совершенно необходимые функции. Для реализации данных требований в операционных системах используются аппаратные средства процессора. А именно разграничение прав на выполнение команд по приоритетам.(четыре уровня). Защищенный режим обращения к памяти реализованный через механизмы глобальных и локальных дескрипторных таблиц. Выполнение прерываний только обработчиками прерываний установленных только самой операционной системой.

  • Структура блоков основной памяти компьютера.

Для выполнения данного задания используется компьютер с операционной системой Windows ME. Вся работа ведется в единственной запущенной виртуальной машине MS-DOS (“Сеанс MS-DOS”).

Программа LOL.com выдала адрес системной «таблицы таблиц» 01DF:0026H.

Указатель на первый блок управления памятью будет содержаться в ячейках 01DF:0026H.

Проследим цепочку блоков управления памятью с помощью программы PEEK.COM.:

¦01DF:0024¦ 20 03 50 13 DF 01 CC 00 DF 01 4C 00 70 00 00 00 ¦ .P.-.¦.-.L.p...¦

¦01DF:0034¦ 6A 08 00 02 6D 00 DF 01 00 00 C2 0F 00 00 C3 0B ¦j...m.-...T...+.¦

¦01DF:0044¦ 00 00 03 1A 00 00 71 0A 04 80 CA 0D D0 0D 4E 55 ¦......q..А¦.¦.NU¦

Учитывая, что младший байт находиться перед старшим в памяти при работе с процессорами архитектуры Intel x86, получаем адрес первого блока управления памятью:

¦0320:0000¦ 4D 08 00 30 0D 00 00 00 53 44 00 00 00 00 00 00 ¦M..0....SD......¦

¦0320:0010¦ 49 22 03 40 00 9A F0 52 1D F0 00 01 20 03 5C 4C ¦I".@.ЪЁR.Ё.. .\L¦

Для получения последущих блоков памяти надо к адресу начала фрагмента памяти (адрес начала блока памяти плюс один параграф) прибавить его величину хранимую в третьей и четвертой ячейке блока управления памятью (так же в параграфах) признаком последнего блока в цепочке блоков управления памятью является символ “Z” в первом байте блока. Проследим всю цепочку:

¦1051:0000¦ 4D 08 00 04 00 06 A2 05 53 43 36 C5 36 A2 05 C4 ¦M.....в.SC6+6в.-¦

¦1051:0010¦ 00 00 00 00 00 80 00 00 00 00 01 00 00 00 00 00 ¦.....А..........¦

¦1056:0000¦ 4D 69 10 11 00 00 00 00 00 00 00 00 00 00 00 00 ¦Mi..............¦

¦1056:0010¦ 43 4F 4D 53 50 45 43 3D 43 3A 5C 57 49 4E 44 4F ¦COMSPEC=C:\WINDO¦

¦1068:0000¦ 4D 69 10 97 00 7E 18 18 56 4D 4D 33 32 00 00 00 ¦Mi.Ч.~..VMM32...¦

¦1068:0010¦ CD 20 00 A0 00 9A F0 FE 1D F0 CF 39 3B 93 5C 4C ¦= .а.ЪЁ¦.Ё¦9;У\L¦

¦…

¦1100:0000¦ 4D 15 11 13 00 00 00 00 00 00 00 00 00 00 00 00 ¦M...............¦

¦1100:0010¦ 43 4F 4D 53 50 45 43 3D 43 3A 5C 57 49 4E 44 4F ¦COMSPEC=C:\WINDO¦

¦1114:0000¦ 4D 15 11 5D 01 00 00 00 43 4F 4D 4D 41 4E 44 00 ¦M..]....COMMAND.¦

¦1114:0010¦ CD 20 00 A0 00 9A F0 FE 1D F0 8C 01 15 11 7A 26 ¦= .а.ЪЁ¦.ЁМ...z&¦

¦1272:0000¦ 4D 15 11 59 00 98 FA 6B 8B 1E B1 08 3C 02 74 1F ¦M..Y.Ш·kЛ.-.<.t.¦

¦1272:0010¦ 43 4F 4D 53 50 45 43 3D 43 3A 5C 57 49 4E 44 4F ¦COMSPEC=C:\WINDO¦

¦12CC:0000¦ 4D 0E 14 13 00 A0 1A 00 8A E0 89 07 1F 07 58 5B ¦M....а..КрЙ...X[¦

¦12CC:0010¦ 43 4F 4D 53 50 45 43 3D 43 3A 5C 57 49 4E 44 4F ¦COMSPEC=C:\WINDO¦

¦12E0:0000¦ 4D 00 00 07 00 42 50 4C 00 77 69 6E 62 6F 6F 74 ¦M....BPL.winboot¦

¦12E0:0010¦ 4D 00 00 06 00 3A 5C 57 49 4E 44 4F 57 53 00 77 ¦M....:\WINDOWS.w¦

¦12E8:0000¦ 4D E9 12 24 01 8F 06 03 44 4F 53 4B 45 59 00 50 ¦Mщ.$.П..DOSKEY.P¦

¦12E8:0010¦ CD 20 0D 14 00 9A F0 FE 1D F0 97 02 15 11 67 01 ¦= ...ЪЁ¦.ЁЧ...g.¦

¦140D:0000¦ 4D 0E 14 8A 02 13 20 1A 50 45 45 4B 00 01 00 00 ¦M..К.. .PEEK....¦

¦140D:0010¦ CD 20 98 16 00 9A F0 FE 1D F0 97 02 15 11 67 01 ¦= Ш..ЪЁ¦.ЁЧ...g.¦

¦1698:0000¦ 4D 00 00 41 00 8B 16 4E 2F 03 06 54 2F 13 16 56 ¦M..A.Л.N/..T/..V¦

¦1698:0010¦ 43 4F 4D 53 50 45 43 3D 43 3A 5C 57 49 4E 44 4F ¦COMSPEC=C:\WINDO¦

¦16DA:0000¦ 5A 15 11 25 89 2F A3 44 2F A3 5A 2F A3 58 2F A3 ¦Z..%Й/гD/гZ/гX/г¦

¦16DA:0010¦ 78 2F A3 2C 34 A3 7A 2F A3 70 3A A3 6E 3A A3 74 ¦x/г,4гz/гp:гn:гt¦

Размер последнего блока памяти – это размер свободной памяти выраженной в параграфах (8925h). Что будет равно 561744 байтам.

Команда mem c ключами /c и /d вывела следущую информацию:

“mem /c”:

Модули, использующие адреса памяти ниже 1 МБ:

Имя Размер Обычная память Верхняя память

-------- ---------------- ---------------- ----------------

MSDOS 66 912 (65K) 66 912 (65K) 0 (0K)

VMM32 2 720 (3K) 2 720 (3K) 0 (0K)

COMMAND 7 360 (7K) 7 360 (7K) 0 (0K)

PEEK 10 736 (10K) 10 736 (10K) 0 (0K)

DOSKEY 4 688 (5K) 4 688 (5K) 0 (0K)

Свободно 562 608 (549K) 562 608 (549K) 0 (0K)

Сведения о памяти:

Тип памяти Размер Занято Свободно

---------------- ----------- ----------- -----------

Обычная 655 360 92 752 562 608

Верхняя 0 0 0

Зарезервировано 0 0 0

Память XMS 66 977 792 1 253 376 65 724 416

---------------- ----------- ----------- -----------

Всего памяти: 67 633 152 1 346 128 66 287 024

Ниже 1 МБ: 655 360 92 752 562 608

Всего отображаемой памяти (EMS): 66 437 120 (63M)

Свободно отображаемой памяти (EMS): 16 777 216 (16M)

Максимально допустимый размер программы: 562 464 (549K)

Наибольший свободный блок верхней памяти: 0 (0K)

Резидентная часть MS-DOS загружена в сегмент HMA.

“mem /d”:

Сведения о распределении обычной памяти:

Сегмент Размер Имя Тип

------- ---------------- ----------- --------

00000 1 024 (1K) Вектор прерываний

00040 256 (0K) Область обмена ПЗУ

00050 512 (1K) Область обмена DOS

00070 5 872 (6K) IO Системные данные

CON Драйвер системного устройства

AUX Драйвер системного устройства

PRN Драйвер системного устройства

CLOCK$ Драйвер системного устройства

A: - C: Драйвер системного устройства

COM1 Драйвер системного устройства

LPT1 Драйвер системного устройства

LPT2 Драйвер системного устройства

LPT3 Драйвер системного устройства

COM2 Драйвер системного устройства

COM3 Драйвер системного устройства

COM4 Драйвер системного устройства

XMSXXXX0 Драйвер системного устройства

001DF 5 136 (5K) MSDOS Системные данные

00320 54 032 (53K) IO Системные данные

1 024 (1K) Перемещенные данные EBIOS

01051 80 (0K) MSDOS Системная программа

01056 288 (0K) VMM32 Данные

01068 2 432 (2K) VMM32 Программа

01100 320 (0K) COMMAND Данные

01114 5 600 (5K) COMMAND Программа

01272 1 440 (1K) COMMAND Переменные средыДанные

012CC 320 (0K) PEEK Переменные средыДанные

012E0 128 (0K) MSDOS -- Свободно --

012E8 4 688 (5K) DOSKEY Программа

0140D 10 416 (10K) PEEK Программа

01698 336 (0K) MEM Переменные средыДанные

016AD 90 464 (88K) MEM Программа

02CC3 472 016 (461K) MSDOS -- Свободно --

Сведения о памяти:

Тип памяти Размер Занято Свободно

---------------- ----------- ----------- -----------

Обычная 655 360 92 752 562 608

Верхняя 0 0 0

Зарезервировано 0 0 0

Память XMS 66 977 792 1 253 376 65 724 416

---------------- ----------- ----------- -----------

Всего памяти: 67 633 152 1 346 128 66 287 024

Ниже 1 МБ: 655 360 92 752 562 608

Дескриптор Имя EMS Размер

------- -------- ------

0 08C000

Всего отображаемой памяти (EMS): 66 437 120 (63M)

Свободно отображаемой памяти (EMS): 16 777 216 (16M)

Память, доступная через прерывание Int 15h: 0 (0K)

Максимально допустимый размер программы: 562 464 (549K)

Наибольший свободный блок верхней памяти: 0 (0K)

Резидентная часть MS-DOS загружена в сегмент HMA.

Версия XMS: 3.00; версия драйвера: 3.95

Версия EMS: 4.00

Таким образом сведения по участкам памяти находятся в таблице таблиц MSDOS в следующем порядке:

Сегментный адрес

Размер

(в байтах)

Имя программы-хозяина

Тип

00000

1 024

Таблица векторов прерываний

00040

256

Область обмена BIOS

00050

512

Область обмена DOS

00070

5 872

IO

Системные данные

001DF

5 136

MSDOS

Системные данные

00320

54 032

IO

Системные данные

01051

80

MSDOS

Системная программа

01056

288

VMM32

Данные

01068

2 432

VMM32

Программа

01100

320

COMMAND

Данные

01114

5 600

COMMAND

Программа

01272

1 440

COMMAND

Переменные среды

012CC

320

PEEK

Переменные среды

012E0

128

MSDOS

Свободная память

012E8

4 688

DOSKEY

Программа

0140D

10 416

PEEK

Программа

01698

336

MEM

Переменные среды

016AD

90 464

MEM

Программа

02CC3

472 016

MSDOS

Свободная память

Выводы: результаты вывода программы “MEM” хорошо согласуются с реальным распеределением памяти. При подсчете размера занимаемой памяти так же учитывается память, занимаемая системными управляющими структурами. Рассогласование в подсчете свободной памяти при работе с программой PEEK и результатом работы программы MEM объясняются тем, что программа MEM учитывает и память занимаемую самой собою. Также в выводе команды MEM учитываются системные таблицы. Такие как таблица векторов прерываний, и области обмена BIOS и DOS.