ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 11.04.2019
Просмотров: 5791
Скачиваний: 8
А – считывание команды в процессор (If)
Б – выбор операнда (ID)
В – вычисление (EX)
Г – обращение к памяти (MEM)
Д – Запоминает результата (WB)
Возникает конфликт, когда выполнение одной команды зависит от результата выполнения другой предыдущей команды.
Матричные вычислительные системы
Общее УУ, генерирующее поток команд и большое число процессорных элементов, работающих параллельно и обрабатывающий каждая свой поток данных. Таким образом, производительность системы оказывается равной сумме производительности всех процессорных элементов.
Ассоциативные вычислительные системы
То же самое, что и в матричных. Только здесь информация на обработку поступает не от ОЗУ и ЗУ, а от ассоциативных ЗУ, где информация в них выбирается не по адрему, а по содержанию.
-
Понятие о многомашинных и многопроцессорных вычислительных системах.
Многомашинная вычислительная система – система, включающая в себя 2 или более ЭВМ.
По характеру связей между ЭВМ ММВС можно разделить на три типа: или слабосвязанные; прямосвязанные; сателлитные.
В косвен¬но-связанных системах связь между ЭВМ осуществляется только на информационном уровне. Такая организация связей обычно используется в тех случаях, когда необходимо повысить надежность комплекса путем резервирования ЭВМ, например Две ЭВМ решают что-то одновременно, но результаты показывала только одна ЭВМ, если она выключалась(сломалась), то результаты показывает вторая.
Прямосвязанные ММВС обладают существенно большой гибкостью. В ММВС су¬ществуют три вида связей (рис.7.5): общее ОЗУ (ООЗУ); прямое управление, иначе связпроцессор - процессор;
Связь через ООЗУ значительно сильнее связи через ВЗУ, вследствие того, что про¬цессоры имеют прямой доступ к ОЗУ, хотя тоже информационная.
Непосредственная связь между процессорами - канал прямого управления - может быть не только информационной, но и командной.
Связь через адаптер канал - канал обеспечивает достаточно быстрый обмен инфор-мацией между ЭВМ, при этом обмен может производиться большими массивами инфор¬мации. Для ММВС с сателлитными связями ЭВМ характерным является не способ связи, а принципы взаимодействии ЭВМ, например, Основная ЭВМ (чаще более высокопроизводительная) предназна¬чена для основной обработки информации. Сателлитная (подчиненная меньшей произво¬дительности) осуществляет организацию обмена информацией основной ЭВМ с перифе¬рийными устройствами, ВЗУ, удаленными абонентами и т.д
Многопроцессорные вычислительные машины – система, включающая в себя два или более процессоров, имеющих общую ПО, общие перифирийные устройства и работающие по управлением одной ОС. Каждый процессор может иметь индивидуальные, доступные только ему ОЗУ и периферийные устройства.
Следует отметить, что МПВС в аппаратном плане значительно более сложны чем ММВС. При этом основная функция по организации вычислительного процесса возлагается на ОС, что значительно осложняет ее построение.
Достоинства:
Высокая производительность за счёт возможности гибкой организации параллельной обработки информации и более полной загрузки всего оборудования.
Существует три типа структурной организации МПВС: с общей шиной; с перекрестной коммутацией; с многовходовыми ОЗУ.
1. С общей шиной: все устройства соединяются общей шиной, по которой передаётся информация, адреса.
Достоинства: простота, доступность ОЗУ для всех устройств.
Недостатки: Невысокое быстродействие (обмен только между двумя устройствами).
2. С перекрёстной коммутацией: связывает друг с другом любую пару устройств, нарушение какой-то связи приводит не к выходу из строя всего комплекса, а отключение устройства
3. С многовходовым ОЗУ: всё, что связанно с коммутацией устройств, осуществляется в ОЗУ. Модули ОЗУ имеют число входов, равное числу устройств.
ОПЕРАЦИОННЫЕ СИСТЕМЫ
-
Понятия сегмента и сегментной адресации.
-
Регистры. Типы программ: программы типа EXE , программы типа COM. Деление программы на сегменты.
-
Использование сегментных регистров для адресации различных сегментов программы.
-
Способы адресации данных на ассемблере
-
Математические операции языка Ассемблер.
-
Переполнение.
-
Виды переполнений, возникающих при математических операциях на Ассемблере.
-
Понятие безусловного перехода.
-
Виды безусловных переходов.
-
Понятие условного перехода.
-
Виды условных переходов.
-
Применение условных и безусловных переходов для управления процессом на языке ассемблер.
-
Оператор цикла.
-
Применение оператора цикла.
-
Использование стека для организации вложенного цикла.
-
Понятие подпрограммы.
-
Особенности написания подпрограмм на языке Ассемблер.
-
Понятие ближней, дальней подпрограммы.
-
Особенности написания и использование ближней и дальней подпрограмм. Передача данных в подпрограмму.
-
Понятие аппаратного и программного прерывания.
-
Прерывания DOS и BIOS.
-
Назначение и использование различных прерываний и их функций.
-
Понятие вектора прерывания.
-
Использование векторов прерывания при добавлении, изменении, написании собственного прерывания.
-
Нахождение в памяти адреса вектора прерывания.
-
Получение и установление собственного вектора прерывания с помощью функций прерывания INT 21h.
-
Изменение существующего прерывания.
-
Написание собственного прерывания.
-
Добавление в существующее прерывание.
-
Понятие ядра операционной системы.
-
Виды ядер ОС.
1.Понятия сегмента и сегментной адресации
Data segment (DS). Вся оперативная память разбита на сегменты, то есть она сегментирована. Если рассмотреть целую оперативную память, то адресовать её можно как всю, просто начиная от 0 до FFffFFff (4 байта FF), а можно разбить на сегменты и смещение в сегменте. Сегменты разбиваются по 256^2 байт (64 килобайт),программа записывается в отдельный сегмент (-ы),
Сегмент в визуальном представлении ОС разделены «:», а программа начинается с «0», то есть с нулевого смещения, то есть она целиком находится в каом-то сегменте. Например, если мы видим адрес 0002:13F4, то «0002» - номер сегмента, а «13F4» - байт, который нас интересует, внутри этого сегмента.
Каждый раз когда происходит смещение, это смещение сравнивается с размер самого сегмента, и он не должно быть больше это сегмента, а таком случае смещение выйдет за этот сегмент.
Например,
DS - это «0002» (дата сегмента, в котором находятся данные)
DX – регистр общего назначения, в котором можно сохранить адресс байта, с которого начинается наша строка программа.
Сегментом называется условно выделенная область адресного пространства определённого размера, а смещением — адрес ячейки памяти относительно начала сегмента. Базой сегмента называется линейный адрес (адрес относительно всего объёма памяти), который указывает на начало сегмента в адресном пространстве. В результате получается сегментный (логический) адрес, который соответствует линейному адресу база сегмента+смещение и который выставляется процессором на шину адреса.
2. Регистры
Регистр процессора — сверхбыстрая оперативная память внутри процессора, предназначенная прежде всего для хранения промежуточных результатов вычисления.
Регистр представляет собой цифровую электронную схему, служащую для временного хранения двоичных чисел. В процессоре имеется значительное количество регистров, большая часть которых используется самим процессором
Регистры общего назначения - это 16-разрядные регистры АХ, ВХ, СХ, DX, каждый из которых состоит из двух 8-разрядных регистров, например, АХ состоит из АН (старшая часть) и AL (младшая часть).
Функция регистра определяется командами, но есть и стандартные функции:
AX – для временного хранения данных (регистр аккумулятор), часто используется для выполнения сложения и т.д.
BX – для хранения адреса данных, так же вычислительный регистр.
CX – счётчик, число повторений одной команды
DX – Для расширителя памяти, для вычислений повышенной точности.
Регистры указателя (BB, SI, DI, SP, IP) – для хранения адресов памяти
IP хранит адрес ячейки памяти, содержащей начало следующей команды
Регистры сегментов – 16-разрядные регистры, позволяющие организовать память в виде совокупности 4-ёх различных сегментов.
CS – сегмент кода (команд)
DS – сегмент данных
SS – сегмент стека
ES – сегмент дополнительной области памяти, используемой для хранения данных.
Регистр флагов – 16-разрядные регистр, определяющие код условия, состояние микропроцессора. Биты называются флагами.
OF (переполнение) – объём результатов превышает размер ячейки назначения – 1
DF (направление) - 0 – инкрементация, 1 –декрементации
IF (признак разрешения прерывания) - прерывания разрешены, если IF=1. Если IF=0, то распознаются лишь немаскированные прерывания;
Регистровые указатели (SP, BP). Они обеспечивают системе доступ к данным в сегменте стека. Реже используются в арифметических операциях.
Регистр SP. Указатель стека обеспечивает использование стека в памяти, позволяет временно хранить адреса и иногда данные. Этот регистр связан с регистром SS для адресации стека.
Регистр BP. Указатель базы облегчает доступ к параметрам (данным и адресам, переданным через стек).
Доступ к значениям, хранящимся в регистрах, как правило, в несколько раз быстрее, чем доступ к ячейкам оперативной памяти (даже если кеш-память содержит нужные данные), но объём оперативной памяти намного превосходит суммарный объём регистров (объём среднего модуля оперативной памяти сегодня составляет 1-4 Гб[4], суммарная «ёмкость» регистров общего назначения/данных для процессора Intel 80x86 16 битов * 4 = 64 бита (8 байт)).
3. Типы программ: программы типа EXE , программы типа COM.
Структура COM - файла проста . В файлах данного типа,обычно не имеющими даже заголовка файла,содержатся только машинный код и данные программы.
Размер COM - файла ограничен 64 кб, т.е. размером одного сегмента памяти
COM файлы пишут в основном на языке Ассемблера, но они постепенно устаревают и на смену им приходят огромные по своим размерам и сложные по своей структуре EXE файлы.
EXE – файл: Состоять EXE файлы могут из нескольких сегментов, следовательно их размер не ограничен 64 кб. По структуре EXE файл сложнее, кроме кода программы в файле также содержится: заголовок файла, таблица настройки адресов, данные и т.п.
Примерная структура EXE файла:
Заголовок EXE файла
Тело программы
Конец программы
Заголовок EXE файла - содержит данные необходимые для загрузки программы
Тело программы - основная часть программы, выполняющая какие-либо полезные действия
Конец программы - завершающая часть программы, которая сохраняет нужные и удаляет ненужные данные из ОЗУ, закрывает все открытые данной программой файлы и т.п.
Первая и последняя часть программы являются обязательными для всех EXE файлов, а вторая часть вовсе не обязательна. Вы можете просто взять её и пропустить.
COM – файл:
Наберите в любом текстовом редакторе текст, показанный в листинге 2.1, и сохраните его под именем hello1.asm.
Листинг 2.1. Программа типа COM (hello1.asm)
|
.model |
tiny |
|
.code |
|
|
org |
100h |
|
start: mov |
ah,9 |
|
mov |
dx,offset message |
|
int |
21h |
|
ret |
|
|
message |
db "Hello, World!",0Dh,0Ah,'$' |
end start
Для получения исполняемого файла необходимо выполнить трансляцию и линковку.
В пакет MASM входит программа ml, которая позволяет выполнить автоматически трансляцию и линковку, для этого в командной строке необходимо выполнить такую команду:
ml hello1.asm
Если трансляция и линковка пройдет без ошибок, то в текущем каталоге появится файл hello1.com размером 24 байта. Если его выполнить, на экране появится фраза "Hello, World!" и программа сразу завершится.
Рассмотрим исходный текст программы, чтобы понять, как она работает. Директива .model tiny устанавливает модель памяти типа TINY.
Для COM-файловотведенаединственная модель памяти типа TINY, все остальные модели памяти используютсятолько в файлах типа EXE.
COM-файлыне содержат в себе никакой служебной информации, только код программы. Поэтому в отличие отEXE-файловони хранятся на диске точно в том же виде, что и в памяти. Кроме того,COM-файлни при каких обстоятельствах не может превышать размер 64 Кбайт (точнее немного меньше), так как он загружается в единственный сегмент, который одновременно является сегментом кода, данных и стека (модель памяти TINY). Директива.code начинает сегмент кода, который одновременно будет и сегментом данных и сегментом стека.
При загрузке в память COM-файлдолжен освободить первые 256 байт (100h) в памяти, кудаMS-DOSпоместит специальную служебную информацию, так называемыйпрефикс программного сегмента (PSP). Поэтому любая программа, предназначенная для ассемблирования вCOM-файлдолжна начинаться директивой
org 100h.
Метка start располагается перед самой первой командой в программе.
Команда mov ah,9 заносит в регистр AH число 9 — это номер функции DOS вывода строки на экран (адрес строки должен быть задан в регистрах DS:DX). Командаmov dx,offset message помещает в регистр DX адрес строкиmessage. Сегментный регистр DS будет автоматически заполнен при запускеCOM-файла.
Команда int 21h далее вызывает эту функцию на выполнение.
В MS-DOSстроки выводится на экран до первого встреченного символа $, поэтому строка "Hello, World!" завершается этим символом. Как поступить, когда нужно вывести на экран сам символ $ мы узнаем позже.
Код 0Dh является управляющим символом ASCII "возврат каретки", а код 0Ah символом ASCII "перевод строки". Эти два управляющих символа переводят курсор на первую позицию следующей строки.
Команда RET предназначена для выхода из процедуры, но в COM-файлахэта команда корректно завершает программу.
Директива END должна завершать код программы. Вместе с этой директивой всегда указывается метка, с которой начинается выполнение программы (start в нашем случае).
Отмечу, что большинство примеров программ реального режима далее в книге будут рассчитаны на компиляцию в COM-файлы,но вы легко сможете переписать их вEXE-формат,если такая необходимость появится.
После загрузки программы типа COM ее образ в памяти будет выглядеть, как показано на рис. 2.1.
Образ программы начинается с префикса программного сегмента (PSP), который создается и заполняется системой. Объем PSP всегда равен 256 байтам. PSP содержит данные, используемые системой при выполнении программы (в разд. 2.8 структура PSP будет рассмотрена подробно). Как видите, программа типа COM состоит из единственного сегмента, в котором вместе располагаются код, данные и стек. Сегментные регистры (CS, DS, ES, SS) инициализируются автоматически и содержат одно и то же значение, указывающее на начало PSP. Значение регистра IP=100h.