Вопросы и ответы по ОС реального режима (DOS) Часть 1


Добавил:DMT
Дата создания:19 июня 2008, 0:24
Дата обновления:19 июня 2008, 0:26
Просмотров:10272 последний 6 декабря, 20:11
Комментариев: 0

1) Структура ОЗУ ПЭВМ IBM PC/AT. Аппаратная поддержка ОЗУ ПЭВМ IBM PC/AT.

1) На две ПЭВМ с разными материнскими платами установили микросхемы расширенной памяти в 16 Мбт. После этого программа MEM показала следующие сведения:

Первая ПЭВМ Вторая ПЭВМ

Memory Type

Total =

User +

Free

 

Memory Type

Total =

User +

Free

Conventional

655 360

71 648

583 712

 

Conventional

655 360

271 648

383 712

Upper

183 376

163 322

20 054

 

Upper

0

0

0

Rezerved

393 216

393 216

0

 

Rezerved

393 216

393 216

0

Extended (XMS)

15 938 480

0

15 938 480

 

Extended (XMS)

16 777 216

0

16 777 216

Total memory

16 777 216

628 186

16 542 246

 

Total memory

17 825 792

664 864

17 160 928

Что можно сказать об аппаратной реализации ОЗУ на каждой из машин и программном обеспечении управления этим ОЗУ?

Ответ: На 1 и 2 машине CMA = 655   360 б.

Память, заполняющая «дыры» в UMA, называется верхней (upper memory), или UMB-памятью (Upper Memory Biocks – блоки верхней памяти) на 1 ПЭВМ=183 376 б, на 2= 0б.

UMA = Rezerved. На 1 и 2 ПЭВМ = 393 216 б, это свидетельствует о том, что UMA есть.

Extended (XMS) на 1 ПЭВМ = 15 938 480 б, на 2 = 16 777 216 б.

2) Воспользовавшись тестовыми программами Вася определил, что на его компьютере имеется 63450 Кб памяти EMS , 62320 Кб памяти XMS , 64896 Кб памяти XMA и 640 Кб памяти CMA . Обрадованный Вася сложил полученные числа и пришел к выводу, что всего на его компьютере где-то около 192 Мб памяти.

Ошибся ли Вася в своих расчетах? Если да, то почему и насколько?

Ответ: Вася ошибся т.к. он не просто сложил все цифры, чего делать не стоило. XMS и EMS - это протоколы работающие с расширенной и дополнительной памятью, и могут накладываться друг на друга в области памяти.

Для правильного расчёта необходимо сложить CMA и XMA ПЭВМ Васи.

XMA + С MA = 65536 (почти 64 Mb ), т.е. он ошибся на 126464 Kb (126 Mb ).

2) Заполнение ОЗУ ПЭВМ при загрузке MS DOS.

 

9) Я установил пароль на SETUP своей машины и забыл его. Попробывал найти батарейку в своем компьютере и отключить ее от микросхемы CIMOS памяти, но оказалось, что на моей материнской плате батарейки вообще нет.

Почему? И что мне теперь делать?

Ответ: Для машин класса IBM PC и IBM XT конфигурация задается установкой перемычек на материнской плате и платах контроллеров периферийных устройств. Программа может получить информацию об установленных перемычках, прочитав состояние определенных портов компьютера.

В машинах класса IBM AT, IBM PS/2 и машинах более высокого класса установлена КМОП-память - память с малым энергопотреблением. Эта память питается от аккумуляторов и содержит информацию о конфигурации многих подсистем (в том числе дисковой подсистемы).

Во время инициализации системы BIOS опрашивает порты, к которым подключены перемычки и ячейки КМОП-памяти, содержащие информацию о конфигурации компьютера. Результат записывается в область данных BIOS - в слово конфигурации с адресом 0000:0410.

Для сброса пароля необходимо загрузиться с диагностической дискеты поставляемой с ПЭВМ и сбросить там пароль.

Если есть CMOS:

#include <stdio.h> #include <stdlib.h> main() { // Эта строка будет записана в КМОП-память static char password[12] = ""; int i,j; for (i=0;i<12;i++) password[i]=0; printf ("\ n *Запись в CMOS \ n \ n "); for(i=0x34,j=0; i<0x40; i++,j++) { // Задаем адрес ячейки КМОП-памяти outp(0x70,i); // Выполняем запись в эту ячейку outp(0x71,password[j]); } }

13) Я включаю компьютер, но при загрузке он выводит сообщение:

Keyboard is locked ...

и зависает .

Что мне делать?

Ответ: Если после загрузки компьютера, клавиатура не работает, то вам надо определить причину неисправности. Существует несколько основных причин по которым клавиатура может не работать:

  • разъем клавиатуры отсоединен от компьютера;
  • клавиатура заблокирована с помощью ключа (замка) на системном блоке;
  • неправильно установлен переключатель XT/AT на задней панели клавиатуры;
  • возникла аппаратная неисправность клавиатуры.

Клавиатура заблокирована с помощью ключа (замка) на системном блоке

Для устранения возможности несанкционированного доступа к компьютеру, на передней панели системного блока располагается специальный замок. С помощью ключа, входящего в комплект компьютера, вы можете полностью заблокировать клавиатуру. При этом любые нажатия на клавиши клавиатуры будут игнорироваться клавиатурным контроллером, а при загрузке компьютер выдаст сообщение о том, что клавиатура заблокирована и необходимо ее разблокировать:

Keyboard is locked... Unlock it  

Чтобы подключить клавиатуру обратно, необходимо повернуть ключ в положение "открыто" и перезапустить компьютер.

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

3) Механизм управления ОЗУ в MS DOS

В памяти ПЭВМ, работающей под DOS , запущено несколько TSR программ. Запускается главное приложение.

Предложите подробный алгоритм, каким образом запущенное приложение может определить находится ли в памяти ПЭВМ модуль с именем TUMBA . COM и если ДА, то как запущенное приложение может принудительно выгрузить этот модуль, а на его место загрузить и запустить на выполнение другой. Имеются ли тут принципиально непреодолимые трудности?

Ответ :

•  Послать прерывание int 21 h с функцией 52 h

•  Перейти по адресу es : bx -2

•  Считать слово и перейти по нему слово:0 h

•  Прочитать имя файла из PSP ( PSP +80) который располагается после MCB и размер MCB блока ( MCB +2)

•  Проверить не Tumba . com ли эта программа, если да то мы её нашли, иначе перейти на размер блока + текущий сегмент+1 и повторять операцию(повторят с шага 4) пока первый байт MCB блока не ‘ Z '

При выгрузке модуля из ОЗУ нарушиться цепочка прерываний(если модуль TSR ) и цепочка MCB блоков.

Но это можно сделать, если полностью восстановить цепочку прерываний и MCB блоков.

4. СПО управления ОЗУ ПЭВМ в MS DOS.

6. Я занимаюсь разработкой прикладного программного обеспечения с использованием языка С++ в среде MS DOS. Недавно купил 16 Мбт расширенной памяти. Как мне наиболее эффективно использовать ее в моей работе?

Ответ: Для использования расширенной памяти в среде MS - DOS необходимо подключить в файле Config . sys драйвер HIMEM . sys с правильными и наиболее подходящими для вашей ПЭВМ параметрами. Также есть возможность использовать дополнительную EMA память, подключить протокол эмуляции EMS , т.е. драйвер EMM 386. EXE . Этот драйвер содержит всеобъемлющие функции для работы с верхней памятью и отображаемой.

В частности, в расширенной памяти (вернее, в её небольшой начальной части размером около 64 килобайт, называющейся верхней памятью) могут располагаться модули, буфера и рабочие области самой операционной системы. Если в компьютере используется процессор 80386 или 80486, можно поместить в расширенную память резидентные программы и драйверы.

Если расположить в расширенной памяти MS-DOS, резидентные программы и драйверы, для программ останется порядка 600-620 килобайт памяти. Это на 100-140 килобайт больше, чем при использовании версий MS-DOS более ранних, чем 5.0. Теперь понятно, зачем надо обязательно переходить к использованию новой версии MS-DOS - у вас будет больше памяти для работы программ! Конечно, это не единственная причина (например, MS-DOS весрии 4.0 содержит ошибки), но довольно существенная.

А если ваша программа имеет размер 2 мегабайта и к тому же ей требуется обрабатывать массивы данных размером в 1 мегабайт?

Для решения таких задач можно использовать дополнительную память. Эта память располагается на отдельной плате, которая вставляется в слот расширения материнской платы компьютера.

  • Расширенная память (extended memory) - лежит в адресном пространстве процессора выше границы 1024 килобайт, непосредственно адресуется процессорами 80286/80386/80486 в так называемом "защищённом режиме". Операционная система MS-DOS не может непосредственно использовать расширенную память для загрузки и выполнения программ. Вы можете использовать расширенную память для размещения ядра MS-DOS, системных буферов, резидентных программ и драйверов. Расширенная память располагается непосредственно на материнской плате компьютера.
  • Дополнительная память (expanded memory) - отображается в окна, расположенные в адресном пространстве ниже границы 1024 килобайта, то есть в стандартную память. Эта память доступна MS-DOS и программам, работающим в "реальном режиме", т.е. в дополнительную память могут загружаться программы и эти программы могут там выполняться под управлением MS-DOS. Дополнительная память располагается на отдельной плате, которая вставляется в слоты расширения материнской платы компьютера. Для работы дополнительной памяти в файле CONFIG.SYS должен быть установлен специальный драйвер, поставляющийся вместе с платой памяти

8. Я купил планшетный сканер и попробовал установить его драйвер в своей системе MS DOS, записав его в CONFIG.SYS. Однако при запуске системы драйвер отказался работать, сообщив, что для него надо освободить “окно С000”.

О каком “окне” идет речь и как удовлетворить требования драйвера?

EMS протокол отвечает за окна, т.е. с помощью драйвера EMM 386 нужно настроить управление окнами памяти с помощью переключателей этого драйвера:

Mm – предписывает драйверу разместить окно отображаемой памяти по адресу, закодированному натуральным числом m

m

Adress

m

Adress

1

0000

8

DC00

2

C400

9

E000

3

C800

10

8000

4

CC00

11

8400

5

D000

12

8800

6

D400

13

8C00

7

D800

14

9000

Необходимо в файле Config . sys написать подключения этого драйвера

Device = [path]driver M 0

10 В каком случае мне надо писать в CONFIG.SYS команду:

DOS = HIGH

а в каком:

DOS = UMB

Чем они отличаются?

Ответ: DEVICE = C :\ DOS \ HIMEM . SYS   DOS = HIGH // MS-DOS и все её рабочие области должны быть размещены в расширенной памяти. DOS = UMB // MS-DOS и все её рабочие области должны быть размещены в верхней памяти.  

11). При запуске нужной мне программы компьютер выдает сообщение:

NOT EMS MEMORY

и возвращается в DOS.

Что мне делать, чтобы программа заработала.

Ответ: У вас не подключен драйвер дополнительной памяти, либо не подключен драйвер эмуляции дополнительной памяти. Эти функции в ОС DOS выполняет драйвер EMM 386. EXE , именно его и необходимо подключить в файле CONFIG . SYS . Также необходимо учесть, что этот драйвер не будет эмулировать дополнительную память в расширенную, если не будет установлен драйвер расширенной памяти HIMEM . SYS .

12) Для оптимизации памяти своей машины я запустила MEMMAKER. Программа что-то там поделала, перезапустила компьютер, после чего появились панели NORTON COMMANDER. Я просмотрела объемы свободной оперативной памяти — они нисколько не изменились, даже немного уменьшились.

Почему MEMMAKER так плохо сработал ?

Ответ: Перед запуском MEMMAKER необходимо в файле AUTOEXEC . bat закомментировать строку с загрузкой NC .

Ответ: Андрей произвёл ручную оптимизацию, путём перестановки драйверов в файле CONFIG . SYS

Поставив на первое место KEY . SYS , потом MYDRV . SYS

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

Для того, чтобы сначала происходила загрузка драйверов и программ, которые занимают больший объем оперативной памяти, вы должны определить объем памяти, занимаемой каждой программой, а затем переставить команды в файлах CONFIG.SYS и AUTOEXEC.BAT.

5) Исполняемые файлы MS - DOS

COM-файл - это двоичный образ Вашей программы, состоящий из кода и данных. То есть это файл, содержащий программу в "чистом" виде. Такая программа (как и EXE-программа) может загружаться в любое место памяти. DOS выполняет ее привязку к физическим адресам при загрузке с помощью установки сегментных регистров. Существенным ограничением COM-программы является то, что она не может занимать больше одного сегмента (соответственно, файл .COM не может быть по длине больше 64К).

Программа в формате EXE может иметь любой размер. В самом начале файла программы содержится заголовок (у COM-файла заголовка нет). Этот заголовок используется операционной системой в процессе загрузки программы в память для правильной установки сегментных регистров. Заголовок EXE-файла нужен только при загрузке; когда программа загружена и готова к работе, самого заголовка уже нет в памяти.

Заголовок EXE-файла состоит из форматированной зоны и таблицы расположения сегментов (Relocation Table). Форматированная зона выглядит следующим образом:

(0) 2

signature

два байта 'MZ' (4Dh, 5Ah), индентифицирующие файл в формате EXE

(+2) 2

part_pag

длина последней страницы программы в байтах (страница содержит 512 байт)

(+4) 2

file_size

размер программы в страницах по 512 байт

(+6) 2

rel_item

число элементов в таблице расположения сегментов

(+8) 2

hdr_size

размер заголовка файла в параграфах (длина параграфа - 16 байт)

(+10) 2

min_mem

минимальное количество памяти в параграфах, которое нужно зарезервировать в памяти за концом загруженной программы

(+12) 2

max_mem

максимальное количество памяти в параграфах, которое нужно зарезервировать в памяти за концом загруженной программы

(+14) 2

ss_reg

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

(+16) 2

sp_reg

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

(+18) 2

chk_summ

контрольная сумма всех слов в файле

(+20) 2

ip_reg

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

(+22) 2

cs_reg

смещение от начала программы для установки сегментного регистра кода CS

(+24) 2

relt_off

смещение от начала файла таблицы расположения сегментов программы

(+26) 2

overlay

номер оверлея, равен 0 для основного модуля

Таблица расположения сегментов программы начинается сразу после форматированной области и состоит из четырехбайтовых значений в формате "смещение:сегмент".

Область файла после таблицы расположения сегментов выравнивается на границу параграфа с помощью байта-заполнителя, и дальше начинается сама программа.

Процесс загрузки программ в память

Загрузка COM- и EXE-программ происходит по-разному, однако есть некоторые действия, которые операционная система выполняет в обоих случаях одинаково.

  • Определяется наименьший сегментный адрес свободного участка памяти для загрузки программы (обычно DOS загружает программу в младшие адреса памяти, если при редактировании не указана загрузка в старшие адреса).
  • Создаются два блока памяти (и, следовательно, два блока MCB, описанные ранее) - блок памяти для переменных среды и блок памяти для PSP и программы.
  • Для DOS версии 3.х и старше в блок памяти переменных среды помещается путь файла программы.
  • Заполняются поля префикса сегмента программы PSP в соответствии с характеристиками программы (количество памяти, доступное программе, адрес сегмента блока памяти, содержащего переменные среды и т.д.)
  • Устанавливается адрес области Disk Transfer Area (DTA) на вторую половину PSP (PSP:0080).
  • Анализируются параметры запуска программы на предмет наличия в первых двух параметрах идентификаторов дисковых устройств. По результатам анализа устанавливается содержимое регистра AX при входе в программу. Если первый или второй параметры не содержат правильного идентификатора дискового устройства, то соответственно в регистры AL и AH записывается значение FF.

А дальше действия системы по загрузке программ форматов COM и EXE будут различаться.

Для COM-программ, которые представляют собой двоичный образ односегментной программы, выполняется чтение файла программы с диска и запись его в память по адресу PSP:0100. Вообще говоря, программы типа COM могут состоять из нескольких сегментов, но в этом случае они должны сами управлять содержимым сегментных регистров, используя в качестве базового адреса адрес PSP.

После загрузки файла операционная система для COM-программ выполняет следующие действия:

  • сегментные регистры CS, DS, ES, SS устанавливаются на начало PSP;
  • регистр SP устанавливается на конец сегмента PSP;
  • вся область памяти после PSP распределяется программе;
  • в стек записывается слово 0000;

указатель команд IP устанавливается на 100h (начало программы) с помощью команды JMP по адресу PSP:100.

Загрузка EXE-программ происходит значительно сложнее, так как связана с настройкой сегментных адресов:

  • Считывается во внутренний буфер DOS форматированная часть заголовка файла.
  • Определяется размер загрузочного модуля по формуле:
size=((file_size*512)-(hdr_size*16)-part_pag
  • Определяется смещение начала загрузочного модуля в EXE-файле как hdr_size*16.
  • Вычисляется сегментный адрес для загрузки START_SEG, обычно используется значение PSP+10h.
  • Загрузочный модуль считывается в память по адресу START_SEG:0000.
  • Сканируются элементы таблицы перемещений, располагающейся в EXE-файле со смещением relt_off.
  • Для каждого элемента таблицы:

1. Считывается содержимое элемента таблицы как два двухбайтных слова (OFF,SEG).

2. Вычисляется сегментный адрес ссылки перемещения

REL_SEG = (START_SEG + SEG)

3. Выбирается слово по адресу REL_SEG:OFF, к этому слову прибавляется значение START_SEG, затем сумма записывается обратно по тому же адресу.

  • Заказывается память для программы, исходя из значений min_mem и max_mem.
  • Инициализируются регистры, и программа запускается на выполнение.

При инициализации регистры ES и DS устанавливаются на PSP, регистр AX устанавливается так же, как и для COM-программ, в сегментный регистр стека SS записывается значение START_SEG + ss_reg, а в SP записывается sp_reg.

Для запуска программы в CS записывается START_SEG+cs_reg, а в IP - ip_reg. Такая запись невозможна напрямую, поэтому операционная система сначала записывает в свой стек значение для CS, затем значение для IP и после этого выполняет команду дальнего возврата RETF (команда возврата из дальней процедуры).

9. Какие параметры и на какие значения должна изменить Ваша программа в этом заголовке, если она имеет размер 3560 байтов, должна приписаться в конце этого файла, загрузиться вместе с ним при загрузке его в память и получить управление сразу после старта EXE файла.

Ответ: Вам представлен заголовок EXE файла:

4D 5A BE 00 ¦ 08 00 05 00 ¦ 20 00 71 00 ¦ FF FF CC 00

08 07 00 00 ¦ 10 00 00 00 ¦ 1E 00 00 00 ¦ 01 00 90 08

00 00 1E 00 ¦ 00 00 0A 01 ¦ 00 00 00 00 ¦ A8 00 72 00

AD 00 00 00 ¦ 00 00 00 00 ¦ 00 00 00 00 ¦ 00 00 00 00

00 00 00 00 ¦ 00 00 00 00 ¦ 00 00 00 00 ¦ 00 00 00 00

00 00 00 00 ¦ 00 00 00 00 ¦ 00 00 00 00 ¦ 00 00 00 00

00 00 00 00 ¦ 00 00 00 00 ¦ 00 00 00 00 ¦ 00 00 00 00

BEh =190 байт в последней странице

8 страниц по 512 б.

Общий размер программы = 4286 б.

Наша программа = 3560 б.

В итоге сумма 7846 б.

7846= A 6+512* Fh

CS =0 h

IP =10 h

Получившиеся CS и IP такие:10 BE :0010 h

4D 5A A6 00 ¦ 0F 00 05 00 ¦ 20 00 71 00 ¦ FF FF CC 00

08 07 00 00 ¦ 10 00 BE 10 ¦ 1 E 00 00 00 ¦ 01 00 90 08

00 00 1 E 00 ¦ 00 00 0 A 01 ¦ 00 00 00 00 ¦ A 8 00 72 00

AD 00 00 00 ¦ 00 00 00 00 ¦ 00 00 00 00 ¦ 00 00 00 00

00 00 00 00 ¦ 00 00 00 00 ¦ 00 00 00 00 ¦ 00 00 00 00

00 00 00 00 ¦ 00 00 00 00 ¦ 00 00 00 00 ¦ 00 00 00 00

00 00 00 00 ¦ 00 00 00 00 ¦ 00 00 00 00 ¦ 00 00 00 00

10. Мне бы хотелось давать файлам имена на русском языке. Могу ли я это сделать в MS DOS? Если “да”, то как?

Ответ: Необходимо подключить драйвер поддержки русского языка в файле AUTOEXEC . bat : Keyb . com RU ,, keybrd 2.

Для "русификации" видеоадаптеров можно либо перепрограммировать ПЗУ адаптера, либо использовать специальные резидентные программы, подменяющие набор символов видеоадаптера своим собственным.

"Русификация" видеоадаптеров на уровне ПЗУ позволяет в дальнейшем сохранить несколько килобайт оперативной памяти компьютера, так как отпадет необходимость в использовании специальных резидентных программ. Кроме того, если вам не повезло и на вашем компьютере установлен видеоадаптер CGA или Hercules, то перепрограммирование ПЗУ является единственной возможностью (кроме, конечно, замены видеоадаптера, что, кстати, в этом случае предпочтительней) для отображения символов кириллицы в текстовых режимах.

Однако для перепрограммирования ПЗУ видеоадаптера нужны специальные аппаратные средства и сведения о расположении в ПЗУ набора шрифтов. Таким образом перепрограммирование ПЗУ является весьма сложной задачей и может выполняться только высококвалифицированными специалистами.

При "русификации" видеоадаптера с помощью специальных программ необходимо загрузить в оперативную память компьютера небольшой резидентный модуль. Этот резидентный модуль будет подменять набор символов, записанный в ПЗУ видеоадаптера.

В разделе "Как русифицировать MS-DOS" будет более подробно описан процесс русификации видеоадаптера.

Операционная система MS-DOS версии 6.0 содержит команды и программы для интернациональной поддержки.

Мы предлагаем вам для проведения русификации, после установки MS-DOS версии 6.0, заменить файлы команд и программ интернациональной поддержки соответствующими файлами из русскоязычной версии MS-DOS. В настоящее время выпущены русскоязычные версии MS-DOS 4.01, 5.0 и 6.0.

Если у вас нет русской версии MS-DOS, скопируйте из русскоязычной версии 4.0 или 5.0 операционной системы MS-DOS, следующие файлы: COUNTRY.SYS, DISPLAY.SYS, KEYBOARD.SYS, KEYB.COM, а также файлы с расширением CPI. Замените этими файлами соответствующие файлы в каталоге MS-DOS.

Так как драйвер DISPLAY.SYS и программа KEYB.COM проверяют версию операционной системы, то их необходимо "обмануть". Для этого выполните следующие команды:

C:\DOS\SETVER KEYB.COM 4.01 C:\DOS\SETVER DISPLAY.SYS 4.01

Затем с помощью любого текстового редактора вам надо добавить в файлах CONFIG.SYS и AUTOEXEC.BAT команды интернациональной поддержки. В файле CONFIG.SYS вы должны загрузить драйвер SETVER.EXE, добавить вызов команды COUNTRY и загрузить драйвер DISPLAY.SYS:

DEVICE=C:\DOS\SETVER.EXE COUNTRY=7,,C:\DOS\COUNTRY.SYS DEVICE=C:\DOS\DISPLAY.SYS CON=(EGA,437,1)

В файле AUTOEXEC.BAT необходимо добавить вызов двух команд MODE и выполнить загрузку резидентной программы KEYB:

c:\dos\mode CON CP PREP=((866) C:\DOS\EGA.CPI) c:\dos\mode CON CP SEL=866 D:\DOS\keyb RU,,D:\DOS\KEYBOARD.SYS /ID:093

После внесения всех изменений в файлы CONFIG.SYS и AUTOEXEC.BAT перезагрузите компьютер. При перезагрузке компьютера в оперативную память загружаются резидентные модули программ русификации. Не используйте для редактирования файлов CONFIG.SYS и AUTOEXEC.BAT текстовые процессоры, сохраняющие редактируемые файлы в специальных форматах. При сохранении редактируемого текста в файле, имеющем специальный формат, в него, помимо текста, будет записана другая управляющая информация. В результате MS-DOS не сможет интерпретировать эти файлы и загрузка компьютера произойдет неправильно. Теперь вы сможете просматривать и редактировать документы, написанные на русском языке, кроме того, у вас останутся все преимущества MS-DOS версии 6.0. При редактировании текстов на русском языке переключите клавиатуру в режим ввода символов кириллицы. Для этого нажмите на правую клавишу <Ctrl>. Нажав на правую клавишу <Ctrl> второй раз, вы переключите клавиатуру обратно на ввод латинских символов.

6) Структура системных записей на дисках в MS DOS.

•  На отформатированную дискету 1.44 Мбт было записано 23 COM - файла размерами от 812 до 1000 байт. Затем было произведено безопасное форматирование дискеты без сохранения системных областей. После чего вдруг потребовалось восстановить четвертую по прядку программу. Какие записи нужно ввести в область ROOT и FAT , чтобы на дискете восстановился нужный файл (заполните пустые бланки):

ROOT : FAT :

Имя Размер Нач.кластер

00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Каждый файл занимает по 2 кластера, в каждом кластере по 512 байт.

Соответственно приведём таблицу размещения файлов:

ROOT : FAT :

Имя File 4. com Размер 812 Нач.кластер 8

0 3 FF 0 5 FF 0 7 FF 0 9 FF 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

•  Напишите фрагмент программы, читающий 16 байт, начиная с линейного адреса 0 EF 586 A 2 в область первого FCB PSP Вашей программы.

Ответ :

mov bx,es

mov es,ds

add bx,92

mov cx,16

mov si,86A2h

loop_1:

mov [es:bx],[0ef5h:si]

inc bx

inc si

loop loop_1

•  Работая в DOS Павел имел два раздела на винчестере С: и D:, оба - сжатые DRVSPACE. Павел прикупил еще один винчестер и установил его на компьютер. Теперь он виден как D:, а старый D: со всей информацией исчез.
Прокомментируйте ситуацию и дайте совет Павлу как восстановить потерянный раздел.

Ответ: Отключаем новый винчестер после чего диск D будет виден, и утилитой DRVSPACE разжимаем разделы, после чего они оба будут видны при подключении нового винчестера. Могут возникнуть проблемы в случае если на старом винчестере не хватает места для разжатая этих разделов. В этом случае мы переносим эти данные с диска С на новый винчестер. Если не хватает места на D то мы сначала переместим данные с D на С, после чего подключим новый винчестер и перенесем данные на него. После отключаем новый винт, разжимаем данные, подключаем винт.

7. Порядок и СПО подготовки дисков к работе в MS DOS.

•  Я провел низкоуровневое форматирование своего винчестера и переустановил операционную систему. После этого быстродействие винчестера резко ухудшилось.
Почему это случилось, и что мне делать?

Ответ: При низкоуровневом форматировании размер кластера становиться маленьким, это приводить к возрастанию количества обращений к винчестеру, что замедляет систему. В этой ситуации необходимо отформатировать диск заново стандартными средствами форматирования и установить систему заново.

•  У меня на винчестере есть разделы C, D, E. Могу ли я разбить раздел D еще на два, не повредив информации на C и E.
Как это сделать?

Ответ: Для этого нужно воспользоваться стандартными или другими средствами управления дисками( fdisk Partition Magic ) и с их помощью проделать следующие действия:

•  Удалить раздел D

•  Создать раздел на месте бывшего D как EXTENDED

•  Создать первый и второй разделы ( LOGICAL )

•  Отформатировать их.

8. СПО сопровождения дисков в MS DOS.

При включении ПЭВМ я вдруг обнаружил, что на винчестере исчезли все файлы со всеми программами и документами, с которыми я раньше работал. Остались несколько системных файлов, и какой-то файл DBLSPASCE.001, который я вообще не создавал.
Что произошло, и что мне теперь делать?

Ответ:

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

записать в AUTOEXEC.BAT:

DBLSPACE /MOUNT=001 C: /NEWDRIVE=D:

Я стер несколько файлов и сразу спохватился, решил их восстановить программой UNERASE, но она сказала, что файлы подлежат только ручному восстановлению.
Почему так случилось и что я должен делать, чтобы в будущем можно было бы восстанавливать стертые файлы в автоматическом режиме UNERASE?

Ответ: Для избегания таких ситуаций, необходимо дефрагментировать диски и при удалении файлов, не записывать другие, т.к. они будут записываться на место старых, после чего вы не сможете их восстановить старые.

Мне принесли дискету с важным документом, но она на моем компьютере не читается. Проверили дискету на другом компьютере — все нормально. Проверили мой дисковод — другие дискеты он читает отлично, а эту не хочет.
Почему это может быть?

Ответ:

Если вы не можете считать файл с дискеты - при считывании возникают ошибки, то этому могут быть несколько причин.

  • Несоответствие типа дисковода и типа дискеты. Например, вы не сможете прочитать дискету с высокой плотностью записи емкостью 1,2 Мбайта на дисководе, поддерживающим только формат с двойной плотностью.
  • Вы пытаетесь считать дискету, отформатированную нестандартным методом и не запустили программу 800.COM или аналогичную. Подробно использование нестандартного форматирования дискет описано в разделе "Как увеличить емкость дискет".
  • Вы отформатировали дискету двойной плотности в дисководе высокой плотности и считываете ее в дисководе двойной плотности. Вследствие различий в количестве дорожек, которое может расположить на дискете дисковод с высокой плотностью (80 дорожек) и дисковод с двойной плотностью (40 дорожек), ширина магнитных головок у этих дисководов различна. Ширина магнитной головки у дисковода высокой плотности меньше, чем у дисковода двойной плотности и поэтому может наблюдаться нестабильность при считывании "узких" дорожек на дисководе двойной плотности (с "широкими" магнитными головками). Мы рекомендуем форматировать дискеты двойной плотности в дисководах двойной плотности.

Полгода назад я купил компьютер, интенсивно работал на нем, а на днях заметил, что дисковые операции стали выполняться медленнее, чем это было раньше.
В чем дело и как мне исправить ситуацию?

Ответ: Необходимо дефрагментировать диск. Программой DEFRAG . EXE

Дело было так: я очень торопился к шефу, тут как раз мне принесли дискету с важными документами. Я быстро включил свой компьютер, перебросил информацию дискеты в новый каталог, выключил компьютер и побежал на совещание. Когда вернулся и вновь включил ПЭВМ, то скопированной информации не обнаружил. Ни нового каталога, ни документов, хотя я ясно помню, что на экране перед моим уходом они были. UNERASE не показал никаких следов стертых файлов.
Что произошло и как мне восстановить пропавшую информацию?

Ответ: Ваша таблица FAT переполнилась и не записала информацию о файлах, т.е. их имена и размеры. Для восстановления файлов, вам необходимо удалить несколько ненужных файлов с диска и прописать в таблице ROOTe информацию о созданных директориях и файлах.

Друзья Павел и Андрей имели абсолютно одинаковые компьютеры. Для выполнения работ им выдали старую базу данных (работала только под DOS). Поработав с базой, Павел пришел к Андрею пожаловаться на маленькую скорость обработки данных и увидел, что у того база, по тем же DOS, работает раз в двадцать быстрее.
Прокомментируйте ситуацию и дайте совет Павлу как ускорить работу базы на его компьютере.

Ответ: Возможно Павел не проводил профилактических работ по оптимизации оперативной памяти и дефрагментации рабочих дисков. Для увеличения производительности базы данных и всего компьютера, необходимо :

•  Оптимизировать оперативную память программой Memmaker . exe или другой

•  Дефрагментировать рабочие диски.

up