Анализ средств, реализующих программный принцип управления — КиберПедия 

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

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Анализ средств, реализующих программный принцип управления

2017-09-30 181
Анализ средств, реализующих программный принцип управления 0.00 из 5.00 0 оценок
Заказать работу

Конспект лекций ВМСиС

 

Анализ средств, реализующих программный принцип управления

 

Вычислительная система определяется как совокупность взаимосвязанных и взаимодействующих программных и аппаратных средств. Пример – сеть, узлами которой являются ЭВМ и средства коммутации. ЭВМ - это вычислительная система, состоящая из программного обеспечения (ПО) и аппаратуры. Аппаратура включает CPU, память, средства электронной связи (шинный интерфейс), периферийные устройства и контроллеры, обеспечивающие подключение устройств к шинному интерфейсу.

 

CPU

 
 

 

 


МОСТ
USB
Мост
SCSI
LAN
PCI

 

Шина USB

 

Рис. 1. Аппаратные компоненты ЭВМ.

Основными шинными интерфейсами подключения устройств являются ISA, PCI, LPT, COM, USB и FireWire. Шины можно подразделить на внутренние, или системные, и внешние для динамического подключения и отключения устройств. Внутренними интерфейсами для подключения устройств являются ISA и PCI. Шина ISA является устаревшим интерфейсом и отсутствует в выпускающихся в настоящее время компьютерах. Шина PCI в настоящее время усовершенствована и реализуется в виде последовательного интерфейса.

При подключении устройства к компьютеру для устройства необходимо выделить ресурсы процессора (адресное пространство памяти, используемые уровни запросов прерывания и другие ресурсы). Назначение требуемых ресурсов для устройства может осуществляться автоматически в момент подключения устройства к компьютеру с помощью специального программного средства (Plug-and-Play), имеющегося в операционной системе ЭВМ. Для автоматического выделения устройству ресурсов и последующего распознавания подключенного устройства необходимо, чтобы устройство обладало способностью предоставлять информацию об устройстве по запросу от операционной системы ЭВМ.

 

 

Таблица. Сравнительные характеристики интерфейсов

Шина (BUS) Тип интерфейса Максимальная пропускная способность Кабель и разъемы Plug-and-Play
ISA - 16 параллельный, внутренний 8Мбайт/с 98-контактный слот если реализовано в устройстве
PCI - 32 параллельный, внутренний 132Мбайт/с 120-контактный слот да
COM-порт последовательный, внешний 115Кбит/с 15-ти или 25-ти контактные разъемы если реализовано в устройстве
IEEE1284 (LPT) параллельный, внешний 2Мбайт/с 25-контактный разъем если реализовано в устройстве
USB 1.1 последовательный, внешний 12Мбит/с экранированная витая пара, 4-контактные разъемы да
USB 2.0 последовательный, внешний 480Мбит/с экранированная витая пара, 4-контактные разъемы да
FireWire 400 последовательный, внешний 400Мбит/с экранированная витая пара, 6-ти или 4-х контактные разъемы; оптоволокно да
FireWire 800 последовательный, внешний 800Мбит/с экранированная витая пара, 9-ти контактные разъемы; оптоволокно да

 

 

Шина (bus) представляет собой совокупность линий (проводников на печатной плате или в кабеле, или в шлейфе) передачи данных, адресов и сигналов управления для организации взаимодействия устройств. ЭВМ предназначена для автоматического выполнения алгоритмов, записанных программистом на алгоритмическом языке. Алгоритмическое описание транслируется в последовательность машинных команд. Для автоматического выполнения программы используется три вида средств:


software

firmware

Рис. 2. Базовые средства ЭВМ.

hardware

 

Аппаратные средства

Основа аппаратных средств представляется множеством интегральных схем (ИС). Характеристикой сложности ИС является уровень интеграции, оцениваемый числом базовых логических элементов, реализованных на кристалле. Существуют аббревиатуры МИС, СИС и БИС, обозначающие микросхемы малой, средней и большой сложности. МИС реализуют простые логические элементы, например шесть инверторов. В виде БИС реализуют микропроцессоры. Существуют БИС с реконфигурируемой структурой, называемые программируемыми логическими (цифровыми) интегральными схемами (ПЛИС). Существуют программируемые аналоговые интегральные схемы (ПАИС).

Управление аппаратными средствами осуществляется с помощью микропрограмм, которые интерпретируют алгоритмы выполнения инструкций (команд) ЭВМ. Микропрограммные устройства управления, реализуемые в виде последовательностной или хранимой логики, вырабатывают последовательность сигналов, подаваемых на управляющие входы ИС в зависимости от сигналов, получаемых с выходов, оповещающих о состоянии ИС. Команды ЭВМ, составляющие пользовательскую программу, хранятся в оперативной памяти (RAM), из которой извлекаются поочередно для выполнения в CPU.

Выделим некоторые характеристики CPU:

1) Тактовая частота.

2) Разрядность операндов и адресов, используемых для выбора ячеек памяти.

3) Система команд, способы адресации, типы данных.

4) Возможность совмещения выполнения нескольких команд (конвейерная обработка).

5) Режимы работы CPU и взаимодействие с другими компонентами.

Приведем значения указанных выше характеристик современных CPU:

1) Данная характеристика измеряется в ГГц и определяет скорость работы ЭВМ.

2) Обычно для персональных ЭВМ используются величины 32, 64 бита.

3) При анализе данной характеристики выделяют 3 класса: 1. CISC – Complex Instruction Set Computer. Избыточность команд и способов адресации. 2. RISC – Reduced Instruction Set Computer. Малое число команд и каждая выполняется за один такт синхронизации. 3. SISC – Specialized Instruction Set Computer. Специализация.

4) В современных микропроцессорах используется конвейерная обработка команд и операндов. Гарвардская архитектура – предусматривает разделение оперативной (основной) памяти на две независимые части для хранения команд и данных. Такое разделение позволяет совмещать процесс выполнения выбранной (текущей) из памяти команды с процессом выборки очередной команды. Принстонская архитектура – предусматривает общую память для команды и данных. Современные процессоры используют многоуровневую кэш-память. Например, L1 – кэш-память размещена на кристалле вместе с CPU, а L2 – на системной (материнской) плате.

5) В обычном режиме работы CPU пользователю предоставляются не все возможности и ресурсы (например, команды, регистры) процессора. Однако пользователю предоставляется возможность переключения режимов с целью доступа к скрытым ресурсам. Например, для одновременного выполнения нескольких задач (порций работы) процессор Intel можно переключить в защищенный режим. Тогда процессор предоставляет средства для сохранения состояния задачи, запуска задачи и передачи управления от одной задачи к другой.

Для взаимодействия CPU с другими устройствами (внешними) используются различные средства и способы:

a. С помощью команд ввода in и вывода out, обеспечивается доступ к внешним устройствам, которые представляются в виде набора ячеек или регистров (портов).

b. Без использования команд (без CPU), но с помощью сигналов, вырабатываемых контроллером для выполнения прямого доступа к памяти (DMA – Direct Memory Access) с целью перемещения (чтения или записи) данных из внешней памяти (устройства) в ОЗУ или наоборот.

c. С помощью запроса от устройства, который прерывает текущую программу, выполняющуюся на CPU. При появлении сигнала (запроса) прерывания осуществляется переход от текущей программы к процедуре обработки прерывания. Источником прерывания может быть аппаратура или программа. Аппаратные прерывания асинхронны, программные – синхронны (используется команда int).

d. С помощью средств дальней связи, осуществляемой: телеграфным способом – через асинхронный порт (COM-port); с использованием модема; через локальные сети.

Программное обеспечение ЭВМ

Программное обеспечение Software (ПО) – это набор программ, обеспечивающих функциональную жизнеспособность ЭВМ. ПО делится на 2 класса.

I. Системное ПО служит для разработки программных продуктов и предоставления услуг пользователю.

Системное ПО

               
     
 
ОС
     
Техническое обслуживание
 
 

 

 


 

Операционная система (ОС ) предназначена для управления ресурсами ЭВМ, для организации работы аппаратуры и обеспечения взаимодействия с пользователем.

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

Инструментальные средства – это интегрированные среды для разработки ПО.

Техническое обслуживание – средства для поиска неисправностей и сбора статистики.

II. Прикладное ПО создается для решения целевых задач.

При разработке прикладного ПО используются различные алгоритмические языки. Знание языка ассемблера позволяет уяснить особенности организации и функционирования ЭВМ. Поэтому предполагается приобретение навыков разработки программ на языке ассемблера.

Представление информации

При решении задач на ЭВМ можно выделить шесть этапов.

1. Разработка математической модели решаемой задачи.

2. Разработка методики решения и определение ограничений на решаемую задачу.

3. Разработка алгоритма и запись его на некотором языке.

4. Проектирование для созданного алгоритма программы, представляемой на языке программирования.

5. Тестирование и отладка программы.

6. Решение задачи на ЭВМ.

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

Имя EQU выражение

ORG – директива изменения значения адресного счетчика, который служит для

указания значения смещения местоположения текущей команды (или данных) относительно начала сегмента.

ORG выражение

Выражение может содержать текущее значение адресного счетчика. Для обозначения текущего значения счетчика адреса используется знак $.

Директива ORG используется при описании исходного модуля, для которого создается компактный исполняемый модуль (.com), имеющий размер не более сегмента. Ниже приведено описание структуры com-программы.

TITLE com_prog

code segment

assume cs:code,ds:code,ss:code,es:code

org 100h;для служебной информации резервируется память.

;определение данных, имеющих значения 5, 2, 7, каждое из которых представлено байтом.

F db 5,2,7;Fобозначает адрес ячейки памяти размером 8 бит, в которую помещено число 5.

;------------

main: add F+1,5; описана команда сложения величин 2 и 5.

code ends

end main

Ранее рассмотренная директива segment может иметь 5 операндов:

1) Readonly (для ассемблера MASM) – при записи в сегмент, содержащий в качестве операнда ключевое слово Readonly выдается сообщение об ошибке.

2) Операнд выравнивания сегмента, указывающий кратность адреса начала сегмента. Сегмент может начинаться с четного адреса, если используется операнд word, или с любого адреса, если используется операнд byte. По умолчанию используется выравнивание с адреса, кратного 16.

3) Операнд типа объединения сегментов.

4) Разрядность (use16, use32) сегмента.

5) Класс сегмента, обозначаемый меткой, выделенной апострофами.

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

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

имя segment тип_объединения.

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

Public – этот тип используется для кодовых сегментов и сегментов данных. В загрузочном модуле сегменты различных объектных модулей сцепляются в один сегмент. Порядок сцепления необходим редактору связей (link).

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

Stack – стек. Тип stack аналогичен типу public, но используется для стековых сегментов. Выделяется один сегмент, длина которого равна сумме длин отдельных стековых сегментов.

AT <выражение>; используется для размещения сегмента в памяти по абсолютному адресу. <выражение> - константное выражение, указывающее адрес размещения сегмента в памяти.

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

Модель задается с помощью директивы:

.model (1) модель, (2) язык, (3) модификатор

(1) tiny – код, данные и стек находятся в одном сегменте, размер которого 65 Кбайт.

ü Small – код в одном сегменте, данные и стек в другом.

Compact – код в одном сегменте, а данные в нескольких.

Medium – код в нескольких сегментах, а данные в одном.

Huge – и код и данные в нескольких сегментах.

FLAT - то же, что и tiny, но используются сегменты размером 4 Гбайт.

(2) – можно задать имя языка программирования.

(3) NEARSTACK (по умолчанию)

FARSTACK в этом случае сегмент стека не будет объединяться в одну группу с сегментами данных.

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

TITLE prog

.model small

.stack 100h

.data

len EQU 5

val db len dup(?)

mes db 10,13,’’vvod chisla: $’’;10 и 13 коды управляющих символов для перемещения;курсора

.code

begin: mov AX, @data

mov DS, AX

Директива описания процедуры.

Процедура – это поименованная часть программы. Используется для структурирования программы. Вызывается с помощью команды call имя_процедуры. Формат описания процедуры следующий.

имя proc атрибуты

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

операторы процедуры

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

ret;команда завершения процедуры

имя endp

При выполнении команды ret из стека извлекается на регистр IP адрес возврата, который был помещен в стек при выполнении команды call.

Адрес возврата может быть дальний (far). Для его хранения используются 2 слова, которые из стека перемещаются в регистры CS:IP. Если адрес возврата ближний (near), тогда для хранения используется 1 слово, перемещаемое в регистр IP. Размер слова – 2 байта. Для указания типа адреса возврата используется атрибут в директиве proc. Тип атрибута определяется местоположением тела процедуры по отношению к оператору вызова процедуры call

а) Если call и тело процедуры расположены в одном сегменте кода и в одном модуле, то используется near. Указывать явно необязательно.

б) Если call и тело процедуры расположены в разных сегментах, но в одном модуле, то используется тип far и атрибутный оператор ptr (указатель).

call FAR PTR имя

в) Если call и тело процедуры расположены в разных сегментах и в разных модулях, то используется far и еще требуется в начале модуля основной программы, содержащей call, указать имя процедуры в списке extrn, а в модуле, содержащем тело процедуры, указывается имя процедуры в списке public. В операторе call использовать тип и атрибутный оператор FAR PTR не требуется.

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

 

Операционная система DOS

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

1. Общения пользователя с ЭВМ (пользовательский интерфейс).

2. Организация и управление процессами, выполняющимися в ЭВМ.

3. Организация и управление основной (оперативной) памятью.

4. Организация и управление внешней памятью.

5. Организация и управление вводом/выводом (ближняя и дальняя связи).

Для промышленного применения используется дисковая ОС – DOS, структура которой представляется ниже.

 

верхний уровень

№³20

Интерфейс

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

Аппаратные компоненты
интерфейс программ (API)

 

· ·

 

INT № - команда

№<20 прерывания

нижний функционирования.

Драйверный уровень

интерфейс

BIOS – Basic Input Output System.

 

 

Рис.6. Структура операционной системы DOS.

API – интерфейс прикладных программ. Для обращения к функциям ОС DOS в языке ассемблера используются программные прерывания. Обращение осуществляется при помощи команды int №, где № - это номер прерывания. При этом в AH – старшем байте регистра AX должен содержаться номер вызываемой функции DOS.

Рассмотрим некоторые функции программного интерфейса DOS:

01h – ввод символа (чтение с клавиатуры в AL) и отображение символа на экран (эхо).

02h – вывод на экран символа, который должен быть сформирован в DL (ASCII).

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

09h – вывод на экран символьной строки, завершающейся символом ‘$’.

4Сh – завершение работы модуля и передача управления операционной системе (mov AX, 4C00h).

3Ch – создание файла. При создании необходимо в DX поместить адрес ASCIIZ-строки (строка заканчивается нулем), в которую помещено описание полного имени файла. В CX необходимо задать один из атрибутов файла:

00h – обычный файл, 01h – только для чтения, 02h – скрытый файл, 04h – системный файл, 08h – метка тома, 20h – архивный файл, 43h – изменение атрибутов файла.

3Dh – открытие файла. При открытии файла в AL задается режим доступа: 00h – только чтение, 01h – только запись, 02h – чтение и запись.

3Eh – закрытие файла. В BX должен быть помещен номер файла, полученный при открытии или создании файла

3Fh – чтение из файла или ввод с устройства. В BX должен быть номер файла.

40h – запись в файл. В BX должен быть номер файла, в CX – число байт, которые будут записаны, в DX – адрес области вывода.

42h – установка позиции для последовательного доступа к элементам файла.

Организация файлов в DOS

Файл – это поименованная последовательность байтов, организованных в виде так называемых записей. Записи могут быть переменной или постоянной длины. В DOS не поддерживается информация о длине записи. Для файлов с постоянной длиной записи используется прямой или последовательный доступ к записям. Для указания текущей записи используется файловый указатель File Pointer (FP). FP хранит смещение либо от начала файла, либо от конца (FP задается с помощью функции 42h прерывания int 21h).

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

№ трека№ считывающей головки№ сектора.

Распределение дискового пространства для файлов задается в таблице с именем FAT (File Allocation Table). Файловая система также имеет имя FAT. Существуют другие файловые системы, например, NTFS – New Type File System, используемая в ОС семейства Windows NT. VFHT – виртуальная файловая система. HPFS – высокопроизводительная файловая система.

Таблица FAT хранится на диске, начиная со второго сектора. Файлы организованы в виде совокупности порций – кластеров. Размер кластера составляет 2n секторов (размер сектора 512 байт). Таблица состоит из элементов, имеющих размер 16 бит. Каждый m-ый элемент, за исключением нулевого и первого, описывает m-ый кластер области данных. Нумерация кластеров начинается с номера два. Каждый m-ый элемент FAT содержит либо номер следующего кластера, принадлежащего файлу, либо специальный код.

 
 

 

 


0 1 2 3 4

0-й элемент описывает тип накопителя (F8 – жесткий диск).

2-й элемент указывает номер кластера, с которого начинается первый файл данных. Специальный код 0000 обозначает свободный кластер, а FFFF обозначает кластер, являющийся последним в файле.

Логически информация на диске разделяется на 4 области:

BIOS FAT 1,2 Корневой каталог  

Область файлов и

Подкаталогов

 

Корневой каталог отличается от подкаталога:

· Корневой каталог содержит метку диска (тома).

· Длина его фиксирована.

· Фиксировано местоположение каталога.

· Фиксировано имя каталога. “\” – Microsoft.

· Корневой каталог нельзя стереть.

Для описания каждого файла (и подкаталога) используется 32-байтный элемент каталога, представляющий следующую информацию:

  • Имя – 8 байт.
  • Расширение – 3 байта.
  • Атрибут файла, определяющий его тип.
  • Резерв.
  • Время создания или изменения файла.
  • Дата создания или изменения файла.
  • Адрес начала файла (номер начального кластера).
  • Размер файла в байтах.

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

Корневой каталог можно считать корнем графического дерева, у которого ветвями служат подкаталоги, а файлы соответствуют листьям. При создании подкаталога (с помощью функций DOS) создаются 2 дополнительных элемента с фиксированными именами “.” и ”..”. Имя “.” служит для описания текущего файла, т. е. для описания создаваемого подкаталога. Имя “..” описывает родительский каталог. Многократное описание подкаталога упрощает его поиск. Описание подкаталога хранится в трех местах:

  • В родительском каталоге.
  • В текущем каталоге (в самом себе).
  • В подчиненном каталоге.

Структура взаимосвязей хранимой файловой информации и набор операций над файлами составляют файловую систему.

Для манипулирования созданными файлами требуется информация, характеризующая обрабатываемый файл. Эта информация формируется в виде FCB – блока управления файлом (48 байт). Блок управления создается динамически перед началом обработки файла. Для создания FCB используется функция DOS, позволяющая открыть файл. При открытии файла формируется FCB. Открыть файл означает: обнаружить файл с заданным именем в каталоге, выделить в ОЗУ место для хранения формируемого FCB, перенести из каталога нужную информацию в FCB, возвратить программе, которая с помощью функции DOS открывает файл с заданным именем логический номер файла, который используется для последующего доступа к файлу. Логический номер файла называют также файловым манипулятором. Файловый манипулятор (FM) идентифицирует FCB и файл.

В прикладной программе можно использовать стандартные устройства как файлы, которые не требуется открывать. Стандартным устройствам сопоставлены фиксированные FM (номера).

STDIN 0 – обозначается CON (консоль). Стандартное входное устройство, обычно

клавиатура.

STDOUT 1 – Обозначается CON. Стандартное выходное устройство (монитор).

STDERR 2 – Обозначается CON. Стандартное выходное устройство для сообщения

об ошибках, обычно на экран.

3 – Обозначается AUX. Стандартное внешнее устройство ввода-вывода.

Используется последовательный адаптер COM-порт.

4 – Обозначается PRN, LPT1. Стандартное устройство печати.

5,6,7 – Выделяются для пользовательских нужд. Количество выделяемых

номеров можно увеличить

При обращении к функциям DOS для выполнения записи (или чтения) используется FM. После завершения записи (или чтения) файл нужно закрыть. При закрытии файла осуществляются следующие действия:

1) разрывается связь между FCB и файлом (FCB удаляется) и освобождается FM.

2) Информация из FCB переносится в каталог, актуализируя описание обработанного файла.

3) Содержимое всех буферов, выделенных в ОЗУ для организации записи или чтения файла, перемещается на диск. Этим обеспечивается целостность данных.

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

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

Пусть на диске создан файл, местоположение которого следующее: D:\GR\text.txt

Пусть требуется прочесть из файла 100 байт. Алгоритм программы чтения из файла предусматривает следующие действия:

  • Необходимо выделить буфер памяти размером 100 байт.
  • Выделить два байта для хранения FM (номера файла).
  • В сегменте данных определить переменную, содержащую описание местоположения файла на диске.
  • Открыть файл (функция 3D DOS вызывается командой int 21h).
  • Задать режим доступа к файлу (чтение).
  • Осуществить чтение данных (функция 3F DOS вызывается командой int 21h).
  • Закрыть файл (функция 3E DOS вызывается командой int 21h).
  • Обработать возможные ошибки манипулирования файлом.
  • Завершить программу обработки файла.

TITLE file

.model small

.stack 100h

.data

buf db 100 dup(?)

FM dw?;для хранения номера файла, получаемого от DOS

Name1 db ‘D:\group\text.txt’, 0; местоположение файла, заданное в формате

file proc; ASCII

mov ax, @data

mov ds, ax

mov ax, 3D00h; в ah задан номер функции открытия файла, в al задан режим

; доступа.

lea dx, Name1;в ds:dx размещается адрес строки, содержащей идентификацию

;файла.

int 21h; вызов функций открытия файла.

mov dl,'O'; символ для идентификации ошибки, которая могла возникнуть

; при открытии файла

jc _ERR; если ошибка возникает при открытии файла, то осуществляется

; переход (ближний) к обработке ошибки.

;выполнение дальнего перехода осуществляется так: jnc mm

;jmp _ERR

;mm:

mov FM, ax; если нет ошибок, то FM сохраняется.

;чтение данных из файла.

mov ah, 3Fh; в ah задан номер функции чтения из файла.

mov bx, FM; регистр bx должен содержать логический номер файла.

mov cx, 100; в cx количество читаемых байтов.

lea dx, buf; в ds:dx указывается адрес буфера для ввода данных из файла.

int 21h; вызов функции чтения.

mov dl, ‘R’

jc _ERR

; закрытие файла

mov ah, 3Eh;в ah задан номер функции закрытия файла.

mov bx, FM

int 21h

mov dl, ‘C’

jc _ERR

jmp exit

_ERR: mov ah, 02h; вывод символа, идентифицирующего возможную ошибку.

int 21h

exit: ret

file endp

end

Управление памятью.

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

  1. Учет и распределение памяти.
  2. Обеспечение доступа к информации в памяти.

Для учета и распределения используются системные функции. В DOS вызов системных функций осуществляется с помощью системы прерывания (int 21h). В Windows для манипуляции с памятью в режиме пользователя используются программные средства API Win32, а для манипуляции с памятью в режиме ядра используются специальные системные вызовы, отличающиеся от API вызовов.

При организации доступа к информации в памяти используются 2 метода:

a) Метод логической адресации элементов памяти (использование порций информации). Логический адрес не указывает пользователю местоположение ячейки памяти, в которой размещается адресуемый операнд. Операнд может размещаться в основной (ОЗУ) или во внешней памяти (ВЗУ).

b) Метод свопинга, заключающийся в перемещении порции информации между ОЗУ и фиксированным пространством ВЗУ. Перемещаемая порция данных содержит логически адресуемый операнд.

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

При использовании страничной адресации виртуальная память представляется совокупностью страниц фиксированного размера, например 212 байт, которые отображаются на физическую память (на страничный кадр). Логическое адресное пространство, получаемое при использовании сегментного и страничного способов адресации, называется виртуальным адресным пространством.

Трансляция виртуального (логического) адреса в физический адрес обычно осуществляется за время, соответствующее одному или двум тактам синхронизации в ЭВМ. Для трансляции используются специальные аппаратные средства, например, ассоциативная память, в которой размещаются таблицы описания страниц. Схема трансляции виртуального (логического) адреса в физический адрес представлена на рис. 9.

 

 
 

 

 


Нет

 

Да

 

 

 

 

 

Рис.9. Схема трансляции логического адреса.

Логический адрес в команде состоит из двух частей: селектора (sel 13 бит), размещенного в сегментном регистре и смещения, представленного в команде 32 битами (или 16). Предполагается два уровня трансляции. Число (13 бит) в сегментном регистре (селектор sel) используется на первом уровне трансляции логического адреса в линейный адрес для выбора строки в таблице дескрипторов, содержащей 213 строк. Каждая строка таблицы используется для задания физического адреса сегмента и его атрибутов, среди которых выделяется признак П_ОЗУ наличия сегмента в ОЗУ. Использование для задания местоположения элемента данных в сегменте величины смещения, состоящей из 32 битов, позволяет организовать логическое (виртуальное) адресное пространство размером 245 байт. Пространство линейных адресов памяти разделяется на страницы фиксированного размера, равного обычно 4-м килобайтам, но используются также расширенные страницы размером 2 Мбайта или 4 Мбайта. Описание каждой страницы из линейного адресного пространства хранится в одной из специальных таблиц. При трансляции линейного адреса, полученного после трансляции первого уровня, используются 1025 таблиц, каждая из которых состоит из 210 строк. В строках первой таблицы, называемой каталогом, содержатся 4-байтные указатели на 1024 таблицы страниц, в строках которых указаны физические адреса начала страниц и их атрибуты. Для указания смещения в странице используются 12 битов. Для пояснения логики преобразования виртуального адреса в физический на рис. 10 представлен один уровень трансляции адреса.

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

 


Пользовательская sel:смещение

программа

Физический адрес П_ОЗУ Физическая память

0 страница ВАП ………… call A …………
1 страница
2 страница ret
………… n страница
   
ХХ  
ХХ  
· · ·  
   
0 ВАП
2 ВАП
· · ·

 


Внешнее ЗУ Таблица дескрипторов ОЗУ

Рис.10. Структура виртуальной памяти.

 

 

Операционная система при запуске пользовательской программы в свободный страничный кадр ОЗУ 0 загружает нулевую виртуальную страницу из ВАП (часть программы, расположенную в ВЗУ). После загрузки в таблице дескрипторов указываются физический адрес 0 размещения нулевой страницы ВАП и атрибуты, среди которых задано единичное значение признака наличия страницы в ОЗУ, обозначаемого П_ОЗУ. Кроме признака наличия страницы в ОЗУ атрибуты содержат также другие признаки, например, защиты от модификации страницы (разрешено только чтение из страницы). При выполнении команды call, принадлежащей нулевой виртуальной странице и размещенной в страничном кадре ОЗУ 0, произойдет так называемое страничное прерывание, так как адрес операнда A в данной команде указывает на процедуру, размещенную во второй виртуальной странице, которая в данный момент не находится в ОЗУ. То есть имеется препятствие для динамического преобразования виртуального адреса операнда A данной команды в физический адрес. Операционная система осущест<


Поделиться с друзьями:

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

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

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

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



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.015 с.