Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1-40.docx
Скачиваний:
5
Добавлен:
25.09.2019
Размер:
39.89 Кб
Скачать

1 Кб Векторы прерываний 000h

256 Б bios 00400h

512 б DOS 0050h

IO.SYS, MS-DOS 0070h

Загружаемые драйвера

Свободная память для размещения

прикладных и загружаемых программ A000h

64 Кб гр. DEga a000h

32 кб ИМВ B000h

64 кб т.б. EGA B8000h

128 Кб пзу p bios b8000h

64 кб ИМВ C0000h

12 Мб пзу bios c0000h

64 кб MMA 100000h

XMS 10FFF0h

Значения адресов даны в 16-ной системе счисления. Первые 640 кб адресного пространства с адресами 000h до 94fh отводятся под основную оперативную память, которую ещё называют основной. Начальный килобайт оперативы занят векторами прерываний, 250 векторов по 4 байта. В след. располагается область данных BIOS с адресами от 00400h до 004ffh. В этой области хранятся данные, используемые программами BIOS-a в процессе управления периферийным оборудованием. Тут размещается: входной буфер системы указателей (клавиатуры); адреса последовательных и параллельных портов; данные, характеризующие форму видеосистем; ячейки для подсчёта текущего времени; область межзадачных связей. Область данных BIOS заполняется инфой в процессе загрузки и динамически модифицируется системой по мере необходимости. В области памяти, начиная с адреса 500h, содержится область данных DOS, вслед за ней – сама Система ,загружаема из файлов IO.SYS и MS DOS.Система обычно занимает более 10-ка килобайт.Если в файл IO.SYS включены директивы – DEVICE (загрузки установливаемых драйверов SMARTDRV.SYS , ADM.SYS , EFM386.EXE ,ANSI.SYS. )то они подгружаются вслед за системой ,ниже драйверов размещается резидентная часть командного процессора COMMAND.COM,занимающая около 3 кб. Транзитная ,загружаемся часть COMMAND.COM

размещается в самом конце оперативной памяти ,затирается после загрузки программы (прога завершена),т.е транзитная часть грузится наново после включения.Перечисленные выше компоненты занимают от 60 до 90 кб. Вся оставшаяся память до 600 кб. (транзитные области) свободна для загрузки любых системных или прикладных программ. Оставшияся задачи адресного пространства (верхней памяти) первоначально были предназначены для размещения ПЗХ. Но на практике под ПЗХ отведена только часть адресов.В самом конце адресного пространства располагается основное ПЗУ BIOS ,а далее ПЗУ-расширение BIOS-а для обслуживания графических адаптеров и дисков .В состав компа наряду со стандартной памятью (640 кб) может входить расширенная память,макс.объем которой зависит от ширины шины процессора и в процессоре 802.86 может достичь 15 мб. Эта память распологается за пределами

1 мб адресуемой памяти .Поскольку функционирование расширенной памяти подчиняется ее спецификации(XMS).Доступ к расширенной памяти осуществляется в защищенном режиме поэтому для MS DOS(работающей в реальном режиме) эта память недоступна .Однако в современной версии MS DOS поставляется драйвер для взаимодействия с расширенной памятью(с помощью RAMDRIVE.SYS, к примеру можно разместить в памяти виртуальные диски) .Первые 64 кб расширенной памяти носят спец. Название (область старшей памяти) .Эта область находится за пределами 1-го мб. ,к ней можно обратится в реальном режиме работы микропроцессора ,если определить сегмент .Первые его 16 кб.заняты ПЗУ ,остальные можно использовать.Директива DOS=high грузит в область высокой памяти саму себя,в рез-те чего занятая системой область ст.памяти уменьшается.Старшую память обслуживает тот драйвер тот же драйвер MS.SYS поэтому загрузка возможно только с тем же драйвером.

СИСТЕМНЫЕ ФУНКЦИИ БИОС И ДОС

Дисковая ОС состоит из 2 основных компонентов :BIOS обеспечивает управление периферийным оборудованием копмпьютера и самой дисковой системы DOS в функции которой входит организация всех элементов вычислительной системы.

СРЕДСТВА РАБОТЫ С ФАЙЛАМИ,КАТАЛОГАМИ И ДИСКАМИ.Основные характеристики файловой системы MS DOS.

В машинах типа IBM-ПК предусмотрены 2 уровня обращения к магнитным дискам На нижнем уровне пользователь с помощью пррывания bios int13h обращается непосредственно к прогам управления дисками. Типичными примерами операций является запись и чтение сектора, позиционирование головок, форматирование дорожек(при этом dos не используется, т.к требуемая инфа ищется не по имени файла, а по имени сектора и цилиндра ).Верхний уровень реализуется с помощь прерывания Dos int 21h,поддерживающих так же и функции обслуживания файловой структуры. Программист работает не с программами ,а с файловой системой. Для работы с большим количеством разнородных файлов Dos используют структуру дерева.Каталог представляет собой файл в котором содержится.

Стек хранит в себе типы значений .При форматировании стека есть маркер стека. OC windows представляет технологию виртуальной адресации: совмещение адреса ,который видит программа, с адресом компа управляется windows.Подпрограммы в windows32 выделяется 4 ГБ(туда входят с тек и управляемая куча).

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

a(99-96)

B(95-88)

free

Пример int a,double b ещё в стеке хранятся параметры передаваемые в функцию

100

Касаемо управляемой кучи:

Есть у нас класс:

Customer arabel (создание ссылки на класс)

Customer arable =new Customer( ):

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

Перечень вложенных каталгов.

Каждому каталогу или файлу отводится под запись 32 байта.DOS пишет туда инфу о имени ,начальном адресе на диске ,дате и времени создания,длину в байтах ,а также набор характеристик файлов,называех его атрибутами. Кроме записей выышеперечисленных , каждый каталог имеет ещё запись о себе и о родительском каталоге.Атрибуты файла каталога хранятся в спец. Отведенном для них байте атрибутов номера кластера ,с которого начинается файл позволяет найти на диске начало файла.Инфа о последующех кластерах содержится в таблице размещения файла (FAT).

В последних 4-ёх байтах записи каталога хранится длина файла в байтах .Если размерность файла

Увеличилась,то ДОС изменяет значение этого поля.При создании нового файла свободное место,создавая и заполняя соответствующую запись в каталоге. Хотя min порции информации передаваемые котроллером дисков в процессе записи файла является сектор.

Файлова система назначает память кластерами.Размер кластера обычно составляет на гибком диске 2,на жестком от 2 до 8 секторов.Таким образом min физический объем данных ,составляет 1 кластер (сколько бы байт он не занимал) .Однако в записи каталога указывается длина файла ,т.е.

Объем содержащихся в нем данных.Каждый файл может занимать на диске несколько областей,т.е быть разрывным.Такая система позволяет при работе многократно дописывать в него данные (длину) ,во-вторых снимает проблемы с фрагментацией диска,т.к даже самые маленькие и разрозненные области на диске могут быть использованы для записи.Сильно фрагментированный файл требует времени для чтения или записи ,это снижает скорость выполнения программ.Принятый в ДОС способ операций с файлами предполагает работу с дескрипторами,которые в первом приближении можно рассматривать как номера открытых файлов.

Организация работы с файлами в DOS

  1. Создание файла с заданными именем в указанном каталоге или открытие его ,если он уже был был создан.

  2. Запись в файл или чтение из него всего содержимого или его части

  3. 3акрытие файла.

Для открытия файла предусмотрена спец. функция ДОС. Открывая файл,ДОС назначает ему очередной свободный элемент спец. системной таблицы(таблицы открытых файлов ,SRT) ,располагаемой в оперативной памяти среди системных областей данных.Объем этой таблицы ,определяющей max число файлов,с которого можно одновременно работать задается на этапе конфигурирования ДОС директивой files файла config.sys.

Найдя в системе каталогов запись об открываемом файле ДОС пишет в выделенный элемент SRT основные характеристики файлов.Часть инфы переписывается в элемент SRT из записи каталога,часть ДОС поставляет сама( к примеру указатель блока параметров диска).

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

После окончания работы с файлом, ДОС закрывает файл спец. функцией .В процессе закрытия осуществляется сброс данных буфера В dos , модификации SRT и освобождение памяти SRT.

Буферы DOS

Буферы DOS, количество которых определяется директивой buffers файла config.sys служат для ускорения работы с файлом. Dos, получив из выполняемой программы заказ на чтение позиции файлов данных, находит и считывает некоторые сектора диска, и переслав прочитанные данные в прогу, сохраняет содержимое секторов в своих внутренних буферах. Если в дальнейшем программа обратится к этим же данным, то все манипуляции над этими данными будут совершаться не на диск, а в буфере, что на несколько порядков больше увеличивает скорость работы. Однако в этом случае состояние файла не диске не всегда совпадает с его логическим образом в программе. Сброс буферов на диск в процессе закрытия файлов выполняет физ. Обновление файла на диске и приведение его в соответствие с характеристиками файла записи каталога. Пока идет работа с файлом, информация о его характеристиках обновляется только в блоке описания файла в SRT. Каталог на диске модифицируется только при закрытии, тогда измененные характеристики переписываются из SRT в запись каталога. При закрытии файла освобождается выделенной (ии??) файл дескриптора. И то и другое теперь можно использовать при работе с другим файлом. Таким образом, система может последовательно работать с неограниченным количеством файлов, но число одновременно открытых ограниченно FAT-ом. При завершении программы (для этого предусмотрена функция ???? выполняется автоматическое закрытие всех файлов , поэтому в простых и не слишком ответственных прогах файлы можно явно не закрывать. Файловые функции чтения и записи через дескрипторы можно использовать для ввода-вывода через стандартные устройства.

Есть 5 предопределенных дескрипторов

0 – стандартный ввод

1 –стандартный вывод

2- стандартная ошибка

3 – стандартный вспомогательный порт

4 – стандартный принтер.

Таким образом нет необходимости при работе с вышеперечисленными открывать новые дескрипторы. Различия дескрипторов 1 и 2 в том, что стандартный вывод можно перенаправить средствами DOS на любое устройство или файл, а ошибка всегда идет на экран. Обычно дескриптор 2 выводит авариные или диагностические сообщения.

Системные средства обслуживания дисков и файлов

При работе с диском на уровне DOS мы обращаемся к файлам по их именам. От пользователя остается скрытым положение файлов на диске и он не может обратиться напрямую к таблицам замещения файлов и каталогов. Для работы с ними используется внутренняя функция драйвера BIOS INI13h, либо 2 прерывания DOS INI25h или INI26h, осуществляющую к ним доступ как у секторам диска. Для использования системных этих средств надо предоставлять физическую организацию секторов на диске.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]