Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы_ГОС_2007.doc
Скачиваний:
72
Добавлен:
10.02.2016
Размер:
3.91 Mб
Скачать

Pause [сообщение] -- приостановка выполнения bat-файла и выдача сообщения

@ --- строки не выводятся на экран (@ echo off)

GOTO [ метка] -- переход к метке

IF -- условие. 3 типа проверки:

  1. IF [NOT] EXIST имя файла команда

  2. IF [NOT] строка1==строка2 команда

  3. IF [NOT] ERRORLEVEL константа команда

FOR -- цикл FOR %%f in (список) do команда

%%f – параметр цикла

список – возможные значения параметра цикла

do –1-а команда в которой используется параметр f

SHIFT --- сдвиг вправо формальных параметров, относительно списка фактических параметров. (до 10 формальных параметров)

CHOICE – выбор ответа пользователя

CALL [имя BAT-файла] – вызов другого BAT-файла.

Кроме данных команд, имеется ещё ряд команд для многовариантного конфигурирования.

COMMON, MENU, MENUITEM и т.д.

Утилита BE предназначена для создания диалоговых командных файлов и всевозможного их оформления.

Данная утилита входит в комплекс Norton Utilites.Собственного интерфейса не имеет и выполняется в командной строке.

Формат команды:

BE команды [параметры] [/DEBUG]

BE путь [ [GOTO] метка]

Команды:

ASK GOTO SA

BEEP JUMP SHIFTSTATE

BOX MONTHDAY TRIGGER

CLS PRINTCHAR WEEKDAY

DELAY REBOOT WINDOW

EXIT ROWCOL

/DEBUG на экран выводится код возврата (используется в процессе отладки).

Путь путь и имя файла в котором находятся команды и параметры ВЕ.

Метка метка в файле с которой стартует командный файл.

BE ASK "prompt" [key-list] [DEFAULT=key] [TIMEOUT=n] [ADJUST=n] [color]

Позволяет организовать диалог с пользователем.

"prompt" « сообщения »

[key-list] список символов

[DEFAULT=key] символ по умолчанию

[TIMEOUT=n] время ожидания =число секунд

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

BE BEEP [параметры] или BE BEEP command-file [/E]

Позволяет организовать звуковое сопровождение.

Параметры:

/Dn Длительность звучания звука n/18 секунд. /Fn Частота звука в Гц.

/Rn повторить n раз.

/Wn пауза между звуками n/18 секунд.

/E Вывод на экран параметров.

BE BOX левый верхний угол правый нижний угол [SINGLE | DOUBLE] [color]

Рисует прямоугольник.

SINGLE одинарной толщины.

DOUBLE двойной толщины.

color цвет прямоугольника.

BE CLS [color] Очистка и установка экрана в заданный цвет.

BE PRINTCHAR символ, колличество [color] Вывод необходимого колличества символа

BE REBOOT [/VERIFY] [/COLD] Перезагрузка

/VERIFY подтверждение

BE ROWCOL row col ["text"] [color] Устанавливает курсор в требуемую позицию и выводит текст.

row № строки

col № столбца

SA основная установка [/N] или SA [интенсивность] цвет символа [ON цвет фона] [/N] [/CLS]

Выбор интенсивности = Bright Bold Blinking (Яркость Жирность Мерцание)

Выбор основной установки = Normal Reverse Underline

Выбор для цвета символа и фона:

White Black Red Magenta

Blue Green Cyan Yellow

Ключи:

/N Не устанавливается цвет бордюра.

/CLS Очистка экрана.

BE WEEKDAY (Sunday = 1) Возвращает код ошибки дню недели.

BE WINDOW левый верхний угол правый нижний угол [color] [EXPLODE\ZOOM] [SHADOW]

Рисует окно.

EXPLODE разворот окна.

SHADOW тень окна.

67 OS/2. Краткая характеристика. Особенности вычисления адреса.

Цель создания OS/2 заключалась в том, чтобы создать операционную среду, удовлетворяющую потребностям учрежденческой деятельности. Ее разработкой в начале занимались Microsoft и IBM, позднее ее поддержанием занимается только IBM.

Это ОДНОПОЛЬЗОВАТЕЛЬСКАЯ МНОГОЗАДАЧНАЯ система. Она специально разработана для высокопроизводительных структур, в котором каждый пользователь одновременно может работать с несколькими программами и взаимодействует с системой при помощи графического интерфейса.

По сравнению с DOS OS/2 имеет много кардинальных изменений:

  • Независимый от устройств графический интерфейс.

  • Истинная многозадачность.

  • Защита памяти на аппаратном уровне и виртуальное адресное пространство.

  • Предоставление прикладным программам прикладного интерфейса (API), который не зависит от имеющего в составе ЭВМ оборудования, и обладает значительными усовершенствованиями.

  • Новая файловая система HPFS - High Perfomance File System.

Программы могут работать в реальном и защищенном режиме.

Реальный режим предназначен для обеспечения совместимости с DOS - приложениями, и "с их точки зрения" они работают в обычной DOS.

Программы, работающие в защищенном режиме, используют виртуальное адресное пространство. Это означает, что задача может адресовать до 4 Гб памяти, то есть больше, чем физически установлено на компьютере. Процесс обмена является прозрачным для программы, она не знает того, где находится запрашиваемый блок - в ОЗУ или на жестком диске. Каждый процесс имеет собственное адресное пространство, защиту которого гарантирует операционная система. Процесс может выделить сегмент памяти длиной от 1 до 65535 байтов. OS/2 возвращает селектор сегмента, который однозначно идентифицирует сегмент и используется для ссылок на его содержимое. Если процесс указывает неправильный адрес и ссылается на байт за пределами выделенного сегмента, то OS/2 генерирует сигнал нарушения памяти и обычно прекращает выполнение программы. Отдельные сегменты можно сделать общедоступными для всех процессов.

Таким образом, OS/2 имеет страничную виртуальную память, с адресным пространством 4 Гб, и "flat" (однородную) физическую память, адресуемую с помощью 32-битовых указателей. Когда процесс адресуется внутри какого-то сегмента, физический адрес формируется следующим образом: старшие 16 бит - это номер сегмента, или страницы; младшие 16 бит - это смещение внутри страницы.

68. UNIX: Команды управления файлами и каталогами. Права доступа пользователей.

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

Linux - свободно распространяемая версия UNIX, первоначально была разработана Линусом Торвальдсом. Linux поддерживает большинство свойств, присущих другим реализациям UNIX, плюс ряд тех, которых больше нигде нет.

Linux - это полная многозадачная многопользовательская операционная система (точно также как и другие версии UNIX).

Команды управления файлами и каталогами:

pwd - Печать текущего каталога;

cd - Смена каталога;

ls [- флаги] - Вывод списка файлов и каталогов текущего каталога.

Флаг

Описание

-a

Отображает все файлы.

-A

Аналогичен флагу -а, за тем исключением, что . и .. не отображаются.

-b

Все неграфические символы отображаются в восьмеричной записи в виде \ddd.

-c

Для сортировки использует время последнего изменения.

Многоколоночный вывод имен файлов, отсортированных по колонкам. Это

-F

Помечает каталоги завершающими символами /, исполняемые файлы - *, символические ссылки — @, буферы FIFO — |, а сокеты - =

-i

Для каждого файла в первой колонке печатает его индекс.

-l

Отображает каталоги в расширенном

-n

Вместо имен отображает идентификаторы пользователей и групп, ассоциированных с каж­дым файлом и каталогом.

-q

Все неграфические символы в именах файлов заменяет на знаки вопроса (?).

-r

Изменяет порядок сортировки на обратный

-s

Отображает размеры всех файлов, включая любые дополнительные блоки, в килобай­тах.

-t

Сортирует файлы и каталоги не по именам, а по времени модификации

-u

Использует время последнего доступа при сортировке по времени (флаг -t) или при ото­бражении (флаг –l)

-x

Приводит к многоколоночному выводу имен файлов и каталогов с сортировкой не по ко­лонкам, а по строкам

mv - Перемещение(переименование) файлов и каталогов.

Ккоманда file, используется для того чтобы определить тип файла, а также узнать является ли файл исполняемым, текстовым или содержит какие-либо другие данные.

синтаксис:

file [-vczl] [-f namefile] [-m magicfile] filelist

Аргументы команды file

Аргумент

Описание

Распечатывает “магический” файл /usr/lib/magic, содержащий множество заголовков двоичных файлов для их корректной идентификации. Этот аргумент часто используется совместно с -m для отладки нового файла перед его установкой.

-z

Анализирует содержимое сжатого файла, пытаясь определить его тип

-L

Заставляет программу работать с символьными связями

-f namefile

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

-m magicfile

Задает отличный от стандартного “магический” файл. По умолчанию используется файл /usr/lib/magic

Filelist

Список файлов, тип которых требуется определить. Имена файлов в списке должны быть разделены пробелами

mkdir имя каталога ------ создание каталога

ср from to ------ Копирование файлов

rm ---- Удаление файлов и каталогов

–r --- Удаление каталогов

–i --- запрос подтверждения на удаление

cat ----- для просмотра коротких текстовых файлов.

cat filel file2 > file -- объединение файлов.

more filename ---поэкранный просмотр содержимого файлов только в одном направлении, с возможностью редактирования.

less filename --- поэкранный просмотр содержимого файлов в обоих направлениях, без возможности редактирования.

find <путь поиска> <параметры> <имя файла> <команда, выполняющаяся после удачного завершения поиска> --- Поиск файлов

Команда

Описание

-name file

выбираеися каждый файл, чье имя удовлетворяет шаблону или имени file.

-links n

выбираются все файлы, на каждый из которых имеется n или больше ссылок

-size n[c]

выбираются все файлы, размер которых равен или больше n 512-байтных блоков.

[c]-- выбираются файлы, которые состоят из n или больше символов

-atime n

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

-exec cmd

Для каждого файла, удовлетворяющего критериям поиска, выполняется команда Linux, принимающая в качестве параметра имя найденного файла. Имя найденного файла представляется {}, а команда должна заканчиваться последовательностью символов \;

-print

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

Sort[параметры]filename --- Сортировка текстовых файлов

+1 -- сортировка по первой букве имени

-b -- сортировка по третьему полю с игнорированием лидирующих пробелов.

–o -- сохранение результатов сортировки в файле.

<,> ---- Перенаправление ввода и вывода и создание нового файла

<<,>>--- Перенаправление ввода и вывода и дополнение существующего файла.

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

Права доступа данного файла можно узнать, выполнив команду ls –l, т.е. получить список файлов текущего каталога в расширенном формате. Результат выполнения команды выглядит примерно так:

drwx------ 5 sglines doc 1024 Jan 17 08:22 News

-rw------- 1 sglines doc 1268 Dee 7 15:01 biblio

-rw-r----- 1 sglines doc 105990 Dee 27 21:24 duckie.gif

В первой колонке приводятся права доступа к файлам.

вторая показывает количество связей файла,

третья указывает на владельца файла (пользователь, группа пользователей и все пользователи)

четвертая колонка содержит имя группы, которой принадлежит данный файл;

пятая показывает размер файла в байтах,

шестая — дату и время его создания и, наконец,

седьмая — имя файла.

Первая колонка, содержащая права доступа к файлу, состоит из четырех полей:

- rwx rwx rwx

Первое поле показывает тип файла:

Возможные значения

Символ

Значение

-

Обыкновенный файл

B

Файл, представляющий блочное устройство

C

Файл, представляющий символьное устройство

D

Каталог

L

Символическая связь

Три следующих поля указывают права доступа к файлу соответственно для чтения, записи и запуска на выполнение. Первое поле указывает права индивидуального владельца файла, второе - права группы пользователей, а третье — права всех остальных пользователей. Каждое из этих полей содержит по три символа.

Например, последовательность rwx в первом поле означает, что владелец файла имеет права на чтение, запись и выполнение данного файла.

Рассмотренные поля могут дать больше информации, чем просто права доступа — на самом деле в этих трех полях хранятся данные о нескольких атрибутах файла. К сожалению, смысл этих атрибутов зависит, во-первых, от текущей версии Linux, а во-вторых от того, является ли данный файл выполняемым.

user ID bit ------- бит пользователя файла, если=1, то владельцем программы является владелец соответствующего выполняемого файла.

group ID bit ----- , если=1, то владельцем программы является группа, владеющая соответствующим выполняемым файлом.

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

Задание и изменение прав доступа к файлу производится с помощью команды chmod., используя два формата — абсолютный и относительный.

Абсолютная форма ----- задание в команде восьмеричного кода прав доступа к файлу

Полный код режима файла=сумме кодов соответствующих элементарных режимов,

Код

Режим файла

0001

Права на запуск для остальных

0002

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

0004

Права на чтение для остальных

0010

Права на запуск для группы

0020

Права на запись для группы

0040

Права на чтение для группы

0100

Права на запуск для владельца

0200

Права на запись для владельца

0400

Права на чтение для владельца

1000

Включен бит сохранения задачи

2000

Если файл выполняемый, это означает включение бита владения группой, во всех других случаях – полностью блокирует доступ к файлу

4000

Если файл выполняемый, включен бит владельца файла

Относительная форма --- задание в команде набора параметров прав доступа к файлу. Напрмер: chmod a=rwx file

Значение параметра

Описание параметра

Группа пользователей

A

Все пользователи(данный пользователь, группа данного пользователя и все остальные)

G

Группа данного пользователя

O

Все пользователи, не входящие в группу данного пользователя

U

Только данный пользователь

Операция

+

Добавить указанные права к уже имеющимся

-

Изъять указанные права вместо имеющихся

=

Установить указанные права вместо имеющихся

Права доступа к файлу

X

Право на выполнение

R

Право на чтение

W

Право на запись

S

Включен бит пользователя

T

Включен бит сохранения задачи

69 Windows. Краткая характеристика. Режимы работы.

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

Основные хар-ки:

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

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

  3. Совместимость с DOS-приложениями ---- для запуска DOS-приложений нет необходимости выходить из Windows.

  4. Средства обмена данными:

  • буфер обмена данными (clipboard)

  • динамический обмен данными (DDE) --- одна программа может использовать данные, созданные другой программой.

  • механизм связи и внедрения объектов (OLE) --- усовершенствование средств DDE ---- приложение, использующее данные, может запустить программу, с помощью которой были созданы ”внедрённые” данные,для их изменения.

  • поддержка масштабируемых шрифтов (True Type)

  • удобство поддержки устройств --- при подключении новых устройств необходимо только подключить драйвер к Windows.

  • поддержка мультимедия

  1. Независимость программ от внешних устройств ---- работа с внешними устройствами происходит не непосредственно с аппаратными средствами, а через посредство Windows.

  2. Средства для построения пользовательского интерфейса.

  3. Динамическое подключение библиотек (.DDL-файлы).

Режимы работы Windows:

  1. Стандартный ----- Windows работает в защищённом режиме процессора.

  2. Расширенный----- Windows работает в режиме виртуального 8086процессора.

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

Фирмой Microsoft бала разработана и выпущена следующая версия Windows --- Windows 3.11 for workgroup, представляющая собой Windows 3.1+средства для работы с сетью и некоторые улучшения сущестующих возможностей.

В 1995г Microsoft выпустила Windows 95, которая в отличии от Windows3.1 и 3.11 не была оболочкой и надстройкой над операционной системой DOS, а являлась полноценной 16/32 разрядной операционной системой, основными улучшениями которой были:

  • Значительно изменённый и улучшенный интерфейс.

  • Средство Plug&Play + БД драйверов Windows.

  • Возможности по созданию и работе с 32-р приложениями.

  • Расширенный набор средств для работы с сетями и Internet.

  • Расширенные возможности для работы с дисками, памятью, внешними устройствами, мультимедия и т.д.

К режимам добавились:

1. Режим работы при сбоях

2. Эмуляция MS-DOS.

70 Классификация прерываний IBM РС. Аппаратные прерывания. Маскирование аппаратных прерываний.

Прерывания --- это приостановка ЦП для выполнения специальных программ (обработчиков прерывания).

Процесс прерывания можно разделить на 3-и этапа:

  1. Приостановка основного процесса

  2. Выполнение программы обработчика

  3. Продолжение выполнения основного процесса

При возникновении прерывания происходят следующие действия:

  1. В стеке сохраняются значения флагов и текущий адрес возврата.

  2. В вектор прерывания помещается адрес обработчика прерывания.

  3. Происходит переход к ПОП и её выполнение, которое заканчивается командой IRET.

  4. Извлекаются из стека значение флагов и адрес возврата.

  5. Возврат в основную программу.

Классификация прерываний:

аппаратные

1.1. внутренние (процессорные)

1.2. внешние (маскируемые, немаскируемые)

программные

2.2. пользовательские (60-66, F1-FF ----- зарезервированные)

2.3. системные

2.3.1. BIOS

2.3.2. DOS

2.3.3. адресные

2.3.4. обрабатывающие программы (mouse, BASIC, Turbo C, EMS)

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

Уровень прерывания

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

Устройство

IRQ0

08h

таймер

IRQ1

09h

клавиатура

IRQ2

0Ah

Вход для каскадирования

IRQ8

70h

КМОП - микросхема

IRQ9

71h

Перенаправлено на int 0Ah

IRQ10

72h

резерв

IRQ11

73h

Резерв

IRQ12

74h

Мышь PS/2

IRQ13

75h

Исключение сопроцессора

IRQ14

76h

HDD

IRQ15

77h

Резерв

IRQ3

0Bh

COM2

IRQ4

0Ch

COM1

IRQ5

0Dh

LPT2

IRQ6

0Eh

FDD

IRQ7

0Fh

LPT1

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

Контроллер прерываний состоит из:

  • регистр запросов IRR

  • регистр маски IMR

  • схема анализа приоритетов IPR

  • регистр обслуживаемых запросов ISR

Сигнал запроса прерывания поступает на IRR и устанавливает в 1 соответствующий бит этого регистра. Затем сигнал, пройдя IMR, поступает на IPR, где учитывая приоритет сигнала, разрешается или нет его прохождение на ISR. Учитывая разрешение прерываний (флаг IF процессора), устанавливается в 1 соответствующий бит регистра обслуживаемых запросов и сбрасывается соответствующий бит регистра запросов. После этого происходит обработка прерывания, предварительно запретив все аппаратные прерывания (IF).

Для того, чтобы замаскировать прерывание, необходимо передать регистру маски через порт 21h или A1h 8-ми разрядный код, установленные биты которого соответствуют замаскированным прерываниям. Причём № бита = № IRQ прерывания.

71 Обработчики прерываний IBM PC. Обработка прерываний с использованием языков ASM & C. Модификация обработчиков прерываний.

Обработчики прерывания --- представляют собой подпрограммы обработки возникающих аппаратных и программных прерываний.

Отличие обработчика от процедуры:

  1. Имеет атрибут FAR

  2. Сохраняется не только адрес возврата, но и регистр флага.

  3. Возврат выполняется по IRET, а не по RET.

  4. Вызов происходит не по адресу, а по № вектора прерывания, т.е. косвенная адресация через таблицу векторов прерываний.

Структура обработчика прерываний и его взаимодействие со структурами программного комплекса:

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

  2. Программа обработчика может быть резидентной или транзитной.

  3. Вектор обрабатываемого прерывания может быть свободным или использоваться системой.

  4. Если вектор используется системой, то новый обработчик может полностью заменять системный или сцепляться с ним.

  5. В случае сцепления с системным обработчиком, новый обработчик может выполняться до или после системного.

Для того, чтобы прикладной обработчик получал управление, его адрес необходимо поместить в соответствующий вектор прерывания (функция DOS 25h прерывания DOS Int 21h). Обработчик внешних аппаратных прерываний не должен вызывать функции DOS, из-за нереентерабельности DOS, либо вызывать функции DOS после проверки флага занятости DOS (InDOS).

Модификация обработчиков прерывания --- это добавление прикладных обработчиков до или после стандартных(системных) .------ “сцепление”

Структура программы с обработчиком прерываний, не используемых системой:

text segment ‘code’

intr proc

……

iret

intr endp

main proc

push cs ;установим адресуемость

pop ds ;к програмному сегменту

mov dx,offset intr ;DS:DX--> intr

mov ax,25h ;функция заполнения вектора

mov al,0Ah ;тип вектора

int 21h ;

;Вектор прерывания инициализирован.

;далее текст основной программы

……

main endp

Структура программы с обработчиком прерываний, который заменяет системный обработчик:

text segment ‘code’

intr proc

……

iret

intr endp

main proc

;сохранение системного вектора в начале программы

mov ah,35h ;функция получения вектора

mov al,09h ;номер вектора

int 21h

mov word ptr old_09, bx ;относительный адрес системного обработчика

mov word ptr old_09+2, es ;сегмент системного обработчика

; инициализация вектора прерывания intr

……

;далее текст основной программы

…..

;восстановление системного вектора в конце программы

push ds ;сохраним ds

lds dx, old_09 ;заполним DS:DX из old_09

mov ax,25h ;функция заполнения вектора

mov al,09h ;тип вектора

int 21h

pop ds ;восстановим адресуемость

…..

main endp

;поля данных

old_09 dd 0

Структура программы с обработчиком прерываний, который выполняется после системного обработчика :

text segment ‘code’

new_int proc

pushf

call cs:old_int ;в системный обработчик возвратом

…… ;прикладная обработка

iret

new_int endp

main proc

;сохранение системного вектора в начале программы в двухсловную ячейку old_int

; инициализация вектора прерывания new_int

;далее текст основной программы

;восстановление системного вектора в конце программы из двухсловной ячейки old_int

main endp

;поля данных

old_int dd 0

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

text segment ‘code’

new_int proc

…….

jmp cs:old_int ;в системный обработчик c возвратом в

;основную программу

new_int endp

main proc

;сохранение системного вектора в начале программы в двухсловную ячейку old_int

; инициализация вектора прерывания new_int

;далее текст основной программы

;восстановление системного вектора в конце программы из двухсловной ячейки old_int

main endp

;поля данных

old_int dd 0

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

text segment ‘code’

new_int proc

……. ;прикладная обработка до системной

pushf

call cs:old_int ;в системный обработчик c возвратом

…… ; прикладная обработка после системной

iret

new_int endp

main proc

;сохранение системного вектора в начале программы в двухсловную ячейку old_int

; инициализация вектора прерывания new_int

;далее текст основной программы

;восстановление системного вектора в конце программы из двухсловной ячейки old_int

main endp

;поля данных

old_int dd 0

Структура программы с обработчиком прерываний, который выполняет анализ ситуации и передаёт управление системному обработчику или выполняет обработку сам :

text segment ‘code’

new_int proc

……. ;анализ ситуации. Если системная обработка требуется:

jmp sys

….. ; Если системная обработка не требуется:

; прикладная обработка

iret

sys: call cs:old_int ;в системный обработчик

new_int endp

main proc

;сохранение системного вектора в начале программы в двухсловную ячейку old_int

; инициализация вектора прерывания new_int

;далее текст основной программы

;восстановление системного вектора в конце программы из двухсловной ячейки old_int

main endp

;поля данных

old_int dd 0

72. Структура дисковых томов в MS-DOS.

Самый первый сектор жесткого диска (head 0, cylinder 0, sector 1) содержит главную загрузочную запись (MBR, Master Boot Record), которая загружается в

память подпрограммой загрузки, записанной в ROM-BIOS. В этом секторе находится т. н. "таблица разделов" (Partition Table) - таблица, содержащая информацию о

разделах, на которые разделен жесткий диск. Данными из этой таблицы манипулирует, например, утилита FDISK, входящая в состав операционной системы MS-DOS,

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

Таблица разделов состоит из четырех записей, каждая из которых имеет длину

16 байт.

Структура MBR:

Смещение Размер Содержимое

0h 1BEh Исполняемый код загрузки ОС с активного раздела

1BEh 10h Первая запись таблицы разделов

1CEh 10h Вторая запись таблицы разделов

1DEh 10h Третья запись таблицы разделов

1EEh 10h Четвертая запись таблицы разделов

1FEh 2h Сигнатура таблицы разделов (AA55h)

Перед загрузкой операционной системы подпрограмма загрузки BIOS считывает этот сектор в ОЗУ по адресу 0000:7C00 и передает управление записанной в нем

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

раздела (Boot Sector) и передает управление записанной в нем программе дальнейшей загрузки ОС.

Четыре записи таблицы разделов содержат сведения о четырех возможных разделах на жестком диске. Каждая запись имеет следующий формат:

Смещение Размер Содержимое

0h 1 0 - раздел не активный, 80h - раздел активный

(с активного раздела производится загрузка ОС,

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

1h 3 Начало раздела (головка - 8 бит,

цилиндр - 10 бит, сектор - 6 бит)

4h 1 Тип файловой системы раздела:

00H неизвестный тип файловой системы

01H MS-DOS 12-bit FAT; размер раздела < 10 Mb

04H MS-DOS 16-bit FAT; размер раздела < 32 Mb

05H расширенный раздел MS-DOS

06H MS-DOS 16-bit FAT; 32 Mb < размер раздела < 2 Gb

другие коды используются для разделов других ОС

5h 3 Конец раздела (головка/цилиндр/сектор)

8h 4 Абсолютный номер первого сектора раздела

0Ch 4 Общее количество секторов раздела

Абсолютные номера секторов определяются по следующей формуле:

<номер сектора> = <номер цилиндра> * <количество секторов на дорожке> * <количество головок> +

+ <номер головки> * <количество секторов на дорожке> + (<номер сектора> - 1)

Абсолютный сектор 0 является сектором 1 цилиндра 0 стороны 0 диска. Номера абсолютных секторов увеличиваются сперва с увеличением номера сектора, затем с

увеличением номера головки, затем с увеличением номера цилиндра.

Версии MS-DOS, более ранние, чем 3.3, имели ограничение на размер одного раздела 32 Mb. В связи с этим максимальный объем жесткого диска, с которым они

могли работать, составлял 128 Mb (4 раздела по 32 Mb).

<причины>

В MS-DOS версии 3.3 введена поддержка т. н. "расширенных" разделов DOS, с использованием которых на одном жестком диске можно создавать произвольное

количество разделов DOS.

Если байт типа файловой системы раздела в одной из записей таблицы разделов содержит значение 05h, это означает, что запись описывает расширенный раздел

MS-DOS. Такой такой раздел обрабатывается, как отдельный физический диск, содержащий свою таблицу разделов.

Как правило, дополнительная таблица разделов, находящаяся в первом секторе расширенного раздела MS-DOS, содержит две непустые записи. Первая из них опре-

деляет расположение на жестком диске и размер обычного раздела MS-DOS, и ее байт типа файловой системы раздела имеет значение 01h, 04h или 06h. Вторая

запись (если она присутствует) описывает следующий расширенный раздел MS-DOS, и ее байта типа файловой системы раздела равен 05h.

Таблица разделов расширенного раздела MS-DOS имеет следующие отличия от обычной таблицы разделов:

- разделы, описываемые этой таблицей, не могут быть активными;

- разделы, описываемые этой таблицей, могут быть только разделами MS-DOS;

- таблица может содержать не более двух записей; с помощью одной таблицы можно описать только один нерасширенный раздел MS-DOS;

- для записей с типами файловой системы раздела 01h, 04h или 06h, номера секторов, дорожек и цилиндров в полях записи, определяющих расположение раз-

дела на жестком диске, записаны относительно первого сектора расширенного раздела; для записи, определяющей расширенный раздел MS-DOS (05h), эти данные

записаны в абсолютном виде (относительно физического начала жесткого диска).