Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2- 5_Операционные системы.rtf
Скачиваний:
30
Добавлен:
23.06.2014
Размер:
192.7 Кб
Скачать

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

ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ

И РАДИОЭЛЕКТРОНИКИ

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

по предмету «Операционные системы».

Выполнил: ColWer

Специальность:

Группа:.

Логическое имя:

Пароль: *******58

Вариант: V = (10*58)*div 100 = 5.

Проверил:

Изучение файловой системы fat

Задание:

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

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

Решение:

1. Для выполнения данного задания воспользуемся программой DISKEDIT и отформатированной дискетой в дисководе A.

Таблица размещения файлов (FAT) занимает сектора с 1 по 9, а каталог с 19 по 32. На диске присутствуют две идентичные таблицы FAT, вторая занимает сектора с 10 по 18. В случае сбоя основная таблица будет восстановлена по её копии.

Первоначально все элементы каталога нулевые:

Sector 19

00000000: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................

00000010: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................

00000020: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................

00000030: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................

00000040: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................

00000050: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................

а в FAT все элементы, кроме первых двух нулевые.

Sector 1

00000000: F0 FF FF 00 00 00 00 00 - 00 00 00 00 00 00 00 00 Ё  .............

00000010: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................

00000020: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................

00000030: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................

00000040: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................

00000050: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................

Запишем файл DISKEDIT.EXE на диск A.

Теперь каталог будет выглядеть так:

Sector 19

00000000: 44 49 53 4B 45 44 49 54 - 45 58 45 20 00 0A 55 7A DISKEDITEXE ..Uz

00000010: 24 34 24 34 00 00 51 A1 - 6C 2A 02 00 F0 57 0A 00 $4$4..Qбl*..ЁW..

00000020: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................

00000030: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................

00000040: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................

00000050: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................

Переименуем файл DISKEDIT.EXE в файл NORMA.EXE.

В каталоге произойдут изменения - добавится еще один элемент оглавления с новым именем переименованного файла; первая буква имени старого файла заменилась на символ “x”, что с точки зрения ДОС означает удаление файла из каталога.

Sector 19

00000000: E5 49 53 4B 45 44 49 54 - 45 58 45 20 00 0A 55 7A хISKEDITEXE ..Uz

00000010: 24 34 24 34 00 00 51 A1 - 6C 2A 02 00 F0 57 0A 00 $4$4..Qбl*..ЁW..

00000020: 41 4E 00 6F 00 72 00 6D - 00 61 00 0F 00 B4 2E 00 AN.o.r.m.a......

00000030: 45 00 58 00 45 00 00 00 - FF FF 00 00 FF FF FF FF E.X.E...  ..    

00000040: 4E 4F 52 4D 41 20 20 20 - 45 58 45 20 00 0A 55 7A NORMA EXE ..Uz

00000050: 24 34 24 34 00 00 51 A1 - 6C 2A 02 00 F0 57 0A 00 $4$4..Qбl*..ЁW..

Удалим файл NORMA.EXE.

В каталоге произойдут изменения - первая буква имени файла NORMA.EXE заменилась на символ “x”, что с точки зрения ДОС означает удаление файла из каталога.

Sector 19

00000000: E5 49 53 4B 45 44 49 54 - 45 58 45 20 00 0A 55 7A хISKEDITEXE ..Uz

00000010: 24 34 24 34 00 00 51 A1 - 6C 2A 02 00 F0 57 0A 00 $4$4..Qбl*..ЁW..

00000020: E5 4E 00 6F 00 72 00 6D - 00 61 00 0F 00 B4 2E 00 хN.o.r.m.a......

00000030: 45 00 58 00 45 00 00 00 - FF FF 00 00 FF FF FF FF E.X.E...  ..    

00000040: E5 4F 52 4D 41 20 20 20 - 45 58 45 20 00 0A 55 7A хORMA EXE ..Uz

00000050: 24 34 24 34 00 00 51 A1 - 6C 2A 02 00 F0 57 0A 00 $4$4..Qбl*..ЁW..

В FAT все элементы цепочки описывающей размещение файлов обнулились.

Sector 1

00000000: F0 FF FF 00 00 00 00 00 - 00 00 00 00 00 00 00 00 Ё  .............

00000010: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................

00000020: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................

00000030: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................

00000040: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................

00000050: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................

Восстановим файл NORMA.EXE.

В каталоге произойдут изменения - восстановлена первая буква имени файла NORMA.EXE (вместо символа “x”).

Sector 19

00000000: E5 49 53 4B 45 44 49 54 - 45 58 45 20 00 0A 55 7A хISKEDITEXE ..Uz

00000010: 24 34 24 34 00 00 51 A1 - 6C 2A 02 00 F0 57 0A 00 $4$4..Qбl*..ЁW..

00000020: E5 4E 00 6F 00 72 00 6D - 00 61 00 0F 00 B4 2E 00 хN.o.r.m.a......

00000030: 45 00 58 00 45 00 00 00 - FF FF 00 00 FF FF FF FF E.X.E...  ..    

00000040: E5 4╩▓52 4D 41 20 20 20 - 45 58 45 20 00 0A 55 7A хORMA EXE ..Uz

00000050: 24 3╦┤24 34 00 00 51 A1 - 6C 2A 02 00 F0 57 0A 00 $4$4..Qбl*..ЁW..

00000060: E5 49 53 4B 45 44 49 54 - 45 58 45 20 00 89 37 7C хISKEDITEXE .Й7|

00000070: 24 34 24 34 00 00 51 A1 - 6C 2A 02 00 F0 57 0A 00 $4$4..Qбl*..ЁW..

00000080: E5 4E 00 6F 00 72 00 6D - 00 61 00 0F 00 B4 2E 00 хN.o.r.m.a......

00000090: 45 00 58 00 45 00 00 00 - FF FF 00 00 FF FF FF FF E.X.E...  ..    

000000A0: E5 4F 52 4D 41 20 20 20 - 45 58 45 20 00 89 37 7C хORMA EXE .Й7|

000000B0: 24 34 24 34 00 00 51 A1 - 6C 2A 02 00 F0 57 0A 00 $4$4..Qбl*..ЁW..

000000C0: 41 4E 00 6F 00 72 00 6D - 00 61 00 0F 00 B4 2E 00 AN.o.r.m.a......

000000D0: 45 00 58 00 45 00 00 00 - FF FF 00 00 FF FF FF FF E.X.E...  ..    

000000E0: 4E 4F 52 4D 41 20 20 20 - 45 58 45 20 00 89 37 7C NORMA EXE .Й7|

000000F0: 24 34 24 34 00 00 51 A1 - 6C 2A 02 00 F0 57 0A 00 $4$4..Qбl*..ЁW..

2. Для выполнения данного задания используется компьютер с операционной системой Windows XP (Pro, SP1). Вся работа ведется в единственной запущенной виртуальной машине MS-DOS.

Программа LOL.com выдала адрес системной «таблицы таблиц» - List of list location: 00A7:0026H. Указатель на первый блок управления памятью будет содержаться в ячейках: 00A7:0026H. Проследим цепочку блоков управления памятью с помощью программы PEEK.com:

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

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

¦00A7:0046¦ 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 байтам.

Выведем сведения об используемой и свободной памяти:

C:\>mem /c

Обычная память :

Имя Размер (десятичный) Размер (Hex)

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

MSDOS 12128 ( 11.8K) 2F60

KBD 3296 ( 3.2K) CE0

HIMEM 1248 ( 1.2K) 4E0

COMMAND 3968 ( 3.9K) F80

СВОБОДНО 112 ( 0.1K) 70

СВОБОДНО 634432 (619.6K) 9AE40

Всего СВОБОДНО : 634544 (619.7K)

Верхняя память :

Имя Размер (десятичный) Размер (Hex)

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

SYSTEM 200688 (196.0K) 30FF0

MOUSE 12528 ( 12.2K) 30F0

MSCDEXNT 464 ( 0.5K) 1D0

REDIR 2672 ( 2.6K) A70

DOSX 34848 ( 34.0K) 8820

NW16 2512 ( 2.5K) 9D0

VWIPXSPX 496 ( 0.5K) 1F0

СВОБОДНО 848 ( 0.8K) 350

СВОБОДНО 864 ( 0.8K) 360

СВОБОДНО 880 ( 0.9K) 370

СВОБОДНО 70672 ( 69.0K) 11410

Всего СВОБОДНО : 73264 ( 71.5K)

Всего доступно программам (обычной + верхней памяти): 707808 (691.2K)

Максимальный размер программы: 633552 (618.7K)

Максимальный размер блока верхней памяти: 70672 ( 69.0K)

1048576 байт - всего непрерывной дополнительной памяти

0 байт - доступно непрерывной дополнительной памяти

941056 байт - доступной памяти XMS

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

C:\>mem /d

Адрес Имя Размер Тип

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

000000 000400 Вектор прерывания

000400 000100 Область обмена ПЗУ (ROM)

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

000700 IO 000370 Системные данные

CON Системный драйвер устройства

AUX Системный драйвер устройства

PRN Системный драйвер устройства

CLOCK$ Системный драйвер устройства

COM1 Системный драйвер устройства

LPT1 Системный драйвер устройства

LPT2 Системный драйвер устройства

LPT3 Системный драйвер устройства

COM2 Системный драйвер устройства

COM3 Системный драйвер устройства

COM4 Системный драйвер устройства

000A70 MSDOS 001670 Системные данные

0020E0 IO 002090 Системные данные

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

HIMEM 0004E0 DEVICE=

XMSXXXX0 Установленный драйвер устройства

000490 FILES=

000090 FCBS=

000170 LASTDRIVE=

0007E0 STACKS=

004180 COMMAND 000B50 Программа

004CE0 MSDOS 000070 - Свободно -

004D60 COMMAND 000430 Окружение

0051A0 MEM 000360 Окружение

005510 MEM 0174E0 Программа

01CA00 MSDOS 0835E0 - Свободно -

09FFF0 SYSTEM 031000 Системная программа

0D1000 IO 003100 Системные данные

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

0D4110 MSDOS 000350 - Свободно -

0D4470 MSCDEXNT 0001D0 Программа

0D4650 REDIR 000A70 Программа

0D50D0 DOSX 0087A0 Программа

0DD880 DOSX 000080 Данные

0DD910 MSDOS 000360 - Свободно -

0DDC80 NW16 0009D0 Программа

0DE660 MSDOS 000370 - Свободно -

0DE9E0 VWIPXSPX 0001F0 Программа

0DEBE0 MSDOS 011410 - Свободно -

655360 байт - всего обычной памяти

655360 байт - доступно для MS-DOS

633552 максимальный размер исполняемой программы

1048576 байт - всего непрерывной дополнительной памяти

0 байт - доступно непрерывной дополнительной памяти

941056 байт - доступной памяти XMS

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

Выводы:

  • результаты вывода программы “MEM” хорошо согласуются с реальным распределением памяти. При подсчете размера занимаемой памяти так же учитывается память, занимаемая системными управляющими структурами.

  • рассогласование в подсчете свободной памяти при работе с программой PEEK и результатом работы программы MEM объясняются тем, что программа MEM учитывает и память занимаемую самой собою. Также в выводе команды MEM учитываются системные таблицы. Такие как таблица векторов прерываний, и области обмена BIOS и DOS.

Контрольные вопросы: