Common.pptx
- Количество слайдов: 54
Материалы для А 03 -23 Компьютерный практикум Часть 1
Основные направления автоматизации исследований • автоматизация простейших операций (оцифровка сигнала, поддержание какого-либо параметра системы в заданных пределах и т. д. ); • автоматизация сбора и обработки данных в реальном масштабе времени; • планирование и моделирование эксперимента (предварительный теоретический анализ, Монте-Карло); • автоматизация проектирования и создания измерительных систем (САПР); • автоматизация управления уникальными системами; • автоматизация корреляции отдельных экспериментов, выполняемых на одной установке (сеть); • автоматизация создания баз измеренных данных (отбор, сортировка, паспортизация и передача на центральный сервер для раздачи пользователям);
• автоматизация отладки программ в режиме коллективного пользования; • автоматизация централизованного управления ходом проведения нескольких измерений; • автоматизация окончательной обработки данных (offline); • автоматизация теоретических исследований (суперкомпьютеры). При построении конкретной измерительной системы следует оценить: • потоки поступающей информации; • скорость и законы поступления данных; • учесть особенности измерительной аппаратуры; • возможность использования стандартной или уже имеющейся аппаратуры; • необходимость создания многоуровневых систем;
• методы передачи информации между отдельными кластерами и (или) уровнями системы; • критерии разделения обработки данных на предварительную и окончательную; • структуры баз измеренных данных и методы доступа к ним; • выбор вычислительных средства, удовлетворяющих условиям измерений; • алгоритм обработки и необходимое программное обеспечение в рамках выбранной операционной системы; • методику управления измерениями; • возможности модернизации системы (дополнительные функциональные возможности); • средства контроля и отладки системы.
Измерительная система – совокупность аппаратных и программных средств. Аппаратные средства обеспечивают максимальное быстродействие, а программные определяют круг задач, решаемых данной измерительной системой. При построении измерительных систем определяется оптимальное соотношение между аппаратными и программными средствами для получения необходимых характеристик измерительной системы. Основные критерии выбора структуры измерительной системы: -функциональное назначение; -производительность; -габаритные размеры и вес; -энергопотребление; -стоимость.
Основные вопросы, решаемые при автоматизации измерений: • выбор типа вычислительно-управляющего устройства для работы в составе измерительного комплекса; • установление связи с этим устройством той части оборудования, которая по условиям работы должна взаимодействовать с ним в ходе эксперимента; • программирование работы вычислительноуправляющего устройства для выполнения комплексом определенных функций в ходе измерений.
Автоматизированные устройства можно разбить на две категории: содержащие в себе микроконтроллеры и управляемые вычислительными машинами (персональными компьютерами). Микроконтроллер - микросистема, выполненная в виде отдельного модуля, которая включает в себя процессор, постоянное запоминающее устройство с зашитой в него программой (или, возможно, набором программ), небольшой по объему оперативной памятью и портами для связи с внешними устройствами (возможны иные варианты).
Автоматизированные системы на базе персональных или специализированных компьютеров обладают большей гибкостью, позволяя загружать любые управляющие программы, изменяя режимы работы установки и ее возможности. Отличаются большей стоимостью и громоздкостью. Микроконтроллерные системы широко используются в быту и промышленности (не только). Системы на базе персональных или других компьютеров более характерны для научных исследований.
Современный (и не очень) компьютер можно представить в виде системной шины к которой подключены центральный процессор (или процессоры) и набор служебных подсистем. На рисунке приведена безобразно упрощенная блок-схема компьютера архитектуры X 86. Любая системная шина состоит из 3 основных подчастей: • адресная магистраль; • информационные шины; • шины управления.
Упрощенная структура микропроцессора архитектуры X 86 (Intel 8088/8086)
Основные элементы процессора - Регистры; - АЛУ – арифметико-логическое устройство; - БУ – блок управления; - ТГ – тактовый генератор. Регистры – это специальные ячейки памяти, физически расположенные внутри процессора. В отличие от ОЗУ, где для обращения к данным требуется использовать шину адреса, к регистрам процессор может обращаться напрямую. Это существенно ускорят работу с данными. Арифметико-логическое устройство выполняет арифметические операции, такие как сложение, умножение, а также логические операции. Блок управления определяет последовательность микрокоманд, выполняемых при обработке машинных кодов (команд). Тактовый генератор задаёт рабочую частоту процессора. С помощью тактовых импульсов выполняется синхронизация для внутренних команд процессора и остальных устройств. Тактовый генератор вырабатывает (генерирует) прямоугольные импульсы, которые следуют с определённой частотой (для разных процессоров частота разная).
Различают два понятия: машинный такт и машинный цикл. Машинный такт соответствует одному периоду импульсов тактового генератора и является основной единицей измерения времени выполнения команд процессором. Машинный цикл состоит из нескольких машинных тактов. Машинный цикл – это время, необходимое для выполнения одной команды Машинный цикл может отличаться для разных команд. Для простых команд может потребоваться всего 1 -2 машинных такта. В то время как для сложных команд, таких как умножение и деление, может потребоваться до 100 машинных тактов и более. Разные команды требуют соответствующего времени работы процессора. Одни и те же действия можно выполнить, например, за ~100 машинных тактов, а можно и за ~20 (например умножение и деление на степень 2). Оптимизация по быстродействию – доработка программы таким образом, чтобы она выполнялась максимально быстро, за как можно меньше машинных тактов) при этом приходится усложнять программу или увеличивать её размер. Оптимизация по размеру – доработка программы для получения минимального размера исполняемого файла. При этом обычно снижается быстродействие.
Регистры обобщенного микропроцессора архитектуры X 86 (Intel 8088/8086)
Регистры общего назначения (регистры данных). Группа состоит из четырех 16 -битовых регистров. Каждый регистр в группе можно рассматривать как пару самостоятельных 8 -битовых, для которых возможна отдельная адресация в байтовых операциях. Любой из регистров можно использовать как регистр общего назначения. • AX – регистр-аккумулятор. Используется для хранения промежуточных данных и результатов; • BX – базовый регистр. При базовых типах адресации содержит адрес области памяти либо адрес, который суммируется для получения нового значения со смещением; • CX – регистр-счетчик. Предназначен для управления числом итераций в цикле или числом повторений в строковых операциях; • DX – регистр данных. Используется как вторичный аккумулятор для хранения промежуточных данных и результатов.
Регистры сегмента. Группа состоит из четырех 16 -битовых регистров. Не могут быть использованы как регистры общего назначения. Адресное пространство памяти, откуда производится выборка команд и данных, разделено на сегменты емкостью до 64 Кбайт каждый. Процессор X 86 имеет прямой доступ одновременно к 4 сегментам. Начальный адрес каждого из них содержится в одном из регистров группы. Доступны через команды MOV и POP. • CS – регистр сегмента команд. Указывает на сегмент, содержащий адрес текущей выполняемой команды. Содержимое можно изменить только командами JMP, CALL, RET, IRET; • DS – регистр сегмента данных. Указывает начало зоны адресов, которая включает программно изменяемые таблицы и константы; • ES – регистр дополнительного сегмента. Указывает начало области памяти, которая обычно используется для запоминания промежуточных данных; • SS – регистр сегмента стека. Указывает начало стековой структуры в памяти компьютера.
Индексные регистры и регистры-указатели. Группа состоит из четырех 16 -битовых регистров. Обычно используются как указатели при выборе операндов из памяти и для работы со стеком. Любой из регистров можно использовать как регистр общего назначения в большинстве арифметических и логических операций. • SI – индексный регистр-источник. Используется в качестве указателя адреса байта или слова в таких строковых командах, как LODS (загрузить строку), CMPS (сравнить строку), MOVS (переслать строку). При базово-индексной адресации содержимое регистра SI может суммироваться с содержимым регистра BX. Для повышения эффективности выполнения операций над последовательностями, содержимое регистра SI может автоматически возрастать или уменьшаться в режиме автоиндексации. Может быть использован в большинстве арифметических и логических операций;
• DI – индексный регистр приемника. Используется как указатель назначения для адреса байта или слова в таких строковых командах, как SCAS (сканировать строку), CMPS (сравнить строку), MOVS (переслать строку), STOS (записать строку). При базовоиндексной адресации содержимое регистра DI может суммироваться с содержимым регистра BX. Для повышения эффективности выполнения операций над последовательностями, содержимое регистра DI может автоматически возрастать или уменьшаться в режиме автоиндексации. Может быть использован в большинстве арифметических и логических операций; • SP – регистр-указатель стека. Используется для работы с данными в стековых структурах. Содержит адрес элемента на вершине стека при обработке прерываний, вызове подпрограмм и выходе из них, промежуточном сохранении содержимого регистров и ячеек памяти. Может быть использован в большинстве арифметических и логических операций, но это не рекомендуется;
• BP – регистр-указатель базы. Используется как дополнительный указатель для работы с данными в стековых структурах. Может выполнять функции указателя обхода параметров или промежуточных данных, записанных в стек командами PUSH (записать в стек). При базово-индексной адресации содержимое регистра BP может суммироваться с содержимым регистров SI или DI. Может быть использован в большинстве арифметических и логических операций. Специальные регистры. • IP – регистр-указатель команд. Содержит адрес следующей команды в сегменте памяти, определяемом регистром CS. Содержимое регистров IP и CS однозначно определяет адрес байта во всем мегабайтном пространстве процессора. Не может непосредственно использоваться в программах. Однако его содержимое может изменяться при выполнении ряда команд, таких как команды перехода (JMP, JE, JN и т. д. ), CALL (вызов процедур), RET (возврат из процедуры), IRET (выход из прерывания).
• FLAGS – регистр флагов. Содержит информацию о текущем состоянии микропроцессора. Имеет 6 однобитовых флагов состояния, которые индицируют результаты выполнения арифметических и логических операций. В зависимости от состояния этих флагов некоторые машинные команды могут изменять последовательность выполнения команд в программе. Кроме того имеет 3 однобитовых флага управления, которые могут быть установлены в единичное или сброшены в нулевое состояние программным путем для изменения состояния процессора. 15 11 10 9 8 7 6 4 2 0 X X OF DF IF TF SF ZF X AF X PF X CF Флаги состояния • OF (Overflow Flag) – флаг переполнения. Указывает, что в результате выполнения арифметической команды возникло переполнение старшего разряда результата;
• SF (Sign Flag) – флаг знака. Содержит знак результата после выполнения арифметических операций (0 = ‘+’, 1 = ‘-’); • ZF (Zero Flag) – флаг нуля. Содержит 1, если результат арифметической операции или операции сравнения нулевой, в противном случае содержит 0; • AF (Auxiliary Flag) – флаг вспомогательного переноса. Используется некоторыми арифметическими командами и содержит значение переноса из 3 бита восьмибитовых данных; • PF (Parity Flag) – флаг четности. Содержит 1, если сумма единиц в восьми младших разрядах результата является четным числом, или 0, если она нечетна (PF=1 для 01010000 b или PF=0 для 01000000 b); • CF (Carry Flag) – флаг переноса. Используется для индикации переноса единицы в старший разряд или заема единицы из этого разряда при арифметических операциях над 8 или 16 разрядными числами. Появление переноса или заема устанавливает флаг в единичное состояние.
Флаги управления • DF (Direction Flag) – флаг направления. Определяет, в каком направлении будут пересылаться данные строковыми командами, если DF=1, то пересылка выполняется от старших адресов к младшим и наоборот. Установка в 1 выполняется командой STD, а сброс в 0 – командой CLD; • IF (Interrupt Flag) – флаг разрешения прерываний. Указывает на возможность внешних прерываний. Если IF=0, то прерывания запрещены, т. е. запросы внешних устройств игнорируются и наоборот. Установка в 1 выполняется командой STI, а сброс в 0 – командой CLI; • TF (Trap Flag) – флаг ловушки. Используется в основном для осуществления пошагового режима работы. Если TF=1, то процессор автоматически вырабатывает сигнал внутреннего прерывания после выполнения каждой команды. Адрес соответствующей программы обработки прерывания должен быть определен в абсолютных адресах от 00004 h до 00007 h. Для установки флага можно использовать команду PUSHF.
Распределение адресного пространства
Ассемблер (компилятор) Системная программа (TASM), переводящая программу, написанную на символическом языке (исходный модуль), в последовательность машинных команд, которая выполняется микропроцессором. Программа, переведенная на язык машины, называется объектным модулем. Компоновщик Системная программа (TLINK), обеспечивающая возможность объединения нескольких отдельных объектных модулей в один, который может быть загружен в память и выполнен. Такой модуль называют загрузочным. Компоновщик может находить и создавать библиотеки объектных модулей, которые при необходимости могут быть включены в любой другой объектный модуль. При разработке новой программы достаточно дать команду компоновщику на присоединение библиотечных объектных модулей к объектному модулю новой программы
Чтобы преобразовать исходный код в исполняемый файл (содержащий готовый к выполнению код на машинном языке), необходимо проделать два этапа: компиляцию и компоновку. Компилятор преобразует исходный код в промежуточный код. Создается промежуточный файл - файл объектного кода, или объектный файл, с расширением obj. Хотя объектный файл содержит код на машинном языке, его нельзя выполнить. Объектный файл - результат трансляции исходного кода, но не является законченной программой. В объектный файл не включается код запуска - код, который служит интерфейсом между программой и операционной системой. Также в объектный файл не включается код стандартных библиотечных подпрограмм. Код функций хранится в файле, называемом библиотекой. Компоновщик собирает эти три элемента - объектный код программы, стандартный код запуска для конкретной операционной системы и библиотечный код, объединяет все эти три элемента, помещает их в один исполняемый файл. исходный файл > компилятор > объектный код + библиотечный код + код запуска > компоновщик > исполняемый файл
Итак: -объектный файл и исполняемый файл состоят из инструкций машинного языка; - объектный файл содержит перевод на машинный язык только кода программы, созданной программистом, а исполняемый файл - также и машинный код для используемых стандартных библиотечных подпрограмм и для кода запуска. Такой двухступенчатый подход применяется с целью упрощения создания модульных программ (разбиение программы на модули). Модули можно компилировать по отдельности, а потом с помощью компоновщика объединить скомпилированные модули. Если потребуется изменить один модуль - не придется повторно компилировать остальные. В одних системах компилирующие и компонующие программы выполняются отдельно. В других компилятор автоматически запускает программу компоновщика.
Создание программы на ассемблере Компиляция: C: TASMBINTASM /Z /ZI p, p, p Компоновка: C: TASMBINTLIK /V p, p Отладка: C: TASMBINTD p
Структура операционной системы
Структура операционной системы Любая операционная система состоит из функционально обособленных частей, иерархически упорядоченных в нескольких уровнях: • Нижний уровень – программы непосредственно управляющие компонентами и периферией компьютера; • Промежуточный уровень – управление файловой системой, выполнение и взаимодействие программ, использование памяти и. т. д. ; • Верхний уровень – средства для организации диалога с пользователем; • Уровни связаны между собой – верхние формулируют задания для нижних, а нижние возвращают информацию об их выполнении; • BIOS – базовая система ввода-вывода, группа программ, которые работают непосредственно с базовыми аппаратными средствами ПК и с рядом периферийных устройств. Записаны в энергонезависимой памяти и физически являются частью ПК; • Драйверы – программы для управления периферийных устройств.
Иногда замещают определенные части BIOS или управляют нестандартными устройствами (не обслуживаемыми BIOS). Также могут являться надстройкой BIOS – только изменяют некоторые параметры работы устройств или пользовательский интерфейс, но продолжают использовать BIOS. Загружаются в память при запуске ДОС по определенной процедуре; • P 16 BIO (IBMBIO, IO и. т. д. ) – интерфейс между BIOS и следующим уровнем (P 16 DOS, MSDOS, IBMDOS и. т. д. ). Загружается при запуске ДОС. Фактически представляет собой набор стандартных драйверов, которые являются надстройкой BIOS для определенных устройств; • P 16 DOS (MSDOS, IBMDOS и. т. д. ) – ядро ДОС. Содержит программы для работы с файловой системой, для управления памятью, для выполнения программ и. т. д. Данные программы обособлены в так называемые обслуживающие функции (например открытие файла, загрузка и выполнение программы). Выполняются по запросу с верхнего уровня (командный интерпретатор или программа). При своем выполнении большинство функций формирует заявки к P 16 BIO (IBMBIO, IO), а они в свою очередь
обращаются к BIOS. Загружаются в память при запуске ДОС; • COMMAND – командный процессор ДОС. Интерпретирует команды и обрабатывает ошибки, возникающие при выполнении программ или при работе ОС. Разделен на две части – резидентная и транзитная: • Транзитная – командный интерпретатор, который разделяет команды на отдельные элементы для выполнения обслуживающими функциями ДОС. Видимая оболочка операционной системы. Часть команд ДОС реализуется программами, которые включены в командный интерпретатор (внутренние команды). Остальные команды записаны как внешние файлы и перед каждым выполнением загружаются в память (внешние команды); Транзитная часть загружается в самые старшие адреса памяти. Во время выполнения программы транзитная часть не используется и занимаемые ей адреса памяти можно использовать. После завершения программы транзитная часть, при необходимости снова загружается резидентной частью. • Резидентная – обрабатывает ситуации при возникновении ошибки и завершении программы. Содержит системную программу загрузки и программу загрузки транзитной части; • Резидентная и транзитная части COMMAND содержатся в файле COMMAND. COM и загружаются в память при запуске ДОС.
Запуск операционной системы При включении питания ПК управление передается BIOS, которая выполняет последовательность тестов и процедур инициализации POST (Power On Self Test). После завершения POST, BIOS запускает процедуру начальной загрузки. ДОС загружается в память и управление передается командному процессору, который выводит на экран приглашение (обычно C: >). Во время этой процедуры управление передается в определенной последовательности записи начальной загрузки и частям P 16 BIO, P 16 DOS и COMMAND, которые называются подпрограммами инициализации. Эти подпрограммы необходимы только при начальной загрузке системы и после завершения работы перекрываются основными элементами ДОС. Подпрограмма инициализации в P 16 BIO перекрывается P 16 DOS, место подпрограммы инициализации в P 16 DOS освобождается для рабочих областей системы, а подпрограмма инициализации в COMMAND перекрывается первой загруженной программой. .
Последовательность начальной загрузки операционной системы 1. BIOS считывает в память запись начальной загрузки и передает ей управление. Выполняется программа, проверяющая наличие файлов P 16 BIO. COM (IBMBIO. COM, IO. SYS) и P 16 DOS. COM (IBMDOS. COM, MSDOS. SYS) в определенном месте загрузочного диска. P 16 BIO. COM загружается в память и управление передается ему. 2. Подпрограмма инициализации в P 16 BIO загружает в память P 16 DOS. COM, инициализирует периферийные устройства, конфигурирует систему в соответствие с CONFIG. SYS, задает значения некоторым векторам прерываний. Данная программа инициализации больше не нужна, поэтому P 16 BIO перемещает P 16 DOS на освободившееся место и передает ей управление. 3. Подпрограммы инициализации в P 16 DOS задают значения некоторым векторам прерывания и готовят загрузку резидентной части COMMAND, после чего передают управление P 16 BIO, которая осуществляет загрузку и передает управление резидентной части COMMAND.
4. Подпрограммы инициализации в резидентной части загружают в память транзитную часть COMMAND, задают значения некоторым векторам прерывания и выполняют команды из файла AUTOEXEC. BAT. После этого определяется первый свободный для загрузки адрес памяти и передается управление транзитной части. .
Некоторые инструкции командной строки
Организация сегмента • Память разделена на сегменты. Каждый сегмент содержит до 64 Кбайт (65536 байт); • Начальный адрес сегмента всегда начинается с 16 -байтовых границ; • Базовый адрес сегмента получается делением физического адреса начальной ячейки сегмента на 16. Эти базовые адреса содержатся в сегментных регистрах. Процессор X 86 может отслеживать до 4 однозначно определенных сегментов; • На расположение сегмента не накладывается никаких специальных ограничений, кроме выравнивания на 16 -байтовую границу; • Сегменты могут быть смежными, разделенными, перекрываться частично или полностью; • В памяти одновременно выделяются 4 адресуемых сегмента: командный сегмент (CS), сегмент данных (DS), дополнительный сегмент (ES) и стековый сегмент (SS); • Можно писать программы, которые для хранения команд, переменных и констант, а также для стека используют один и тот же сегмент памяти. Это достигается назначением во все регистры сегментов одного и того же базового адреса, так что все сегменты указывают на одну и ту же область физической памяти.
Сегментная адресация
Образ памяти программы типа. EXE
Базовый текст программы типа. EXE
Образ памяти программы типа. COM
Базовый текст программы типа. COM
PSP
PSP
Программные прерывания
Аппаратные прерывания
Дополнение прерывания
Организация стека Команды PUSH, POPF
Шестнадцатеричная система
Отрицательные числа
Общий формат адресного байта
Исполнительный адрес 1. Поле MOD – используется для того, чтобы различать, соответствуют ли операнды команд регистрам процессора или ячейкам памяти. Величина XX имеет 4 возможных значения. 00, 01, 10 и 11. Значение 11 указывает на то, что это регистровые операнды. Остальные значения задают типы адресации с нулевым, одно- или двухбайтовым смещением. Смещение может быть 8 -битовым числом со знаком или 16 -битовым числом без знака, которое включается в машинную команду. 2. Поле YYY – соответствует 3 байтам, образующим поле Reg и используется для указания регистра, содержащего операнд. Поле Reg идентифицирует 8 -битовый регистр при байтовых операциях и 16 -битовый регистр при работе со словами. 3. Поле ZZZ – формирует поле Rm. Вместе с полем MOD оно используется для идентификации определенного типа адресации. Допустима любая комбинация в полях MOD и Rm, что обеспечивает многообразие адресации памяти в семействе процессоров X 86. .
Режимы адресации 1. Прямая адресация – без использования регистров. Исполнительный адрес берется непосредственно из 16 -битового поля смещения машинной команды.
Для прямой адресации используются два специальных вида адресации: относительная и абсолютная. - при относительной адресации поле смещения представляется знаковым 8 -битовым числом. Исполнительный адрес при этом определяется в результате сложения поля смещения и регистра IP. Относительная адресация используется для команд условных переходов (JE, JO); - абсолютная адресация. Смещение ячейки памяти указывается непосредственно в программном коде. Пример: В сегменте данных: mem dw 0 В программном коде: mov mem, 256 mov mem, AX mov DS: mem, 256 mov DS: mem, AX
Регистровая адресация. Операнды находятся в регистрах. inc AX mov DX, AX push CS Непосредственная адресация. Операнд (число) указывается непосредственно в коде программы. mov AH, 40 h mov BX, 1 mov CX, meslen mov DX, offset mes
Косвенная адресация памяти. Смещение адресуемой ячейки заносится в регистр процессора. В программном коде присутствует не имя ячейки, а обозначение регистра, содержащего смещение адресуемой ячейки. Используются регистры BX, SI, DI. При этом используются квадратные скобки. Пример: сегмент данных: DS array dw 1, 2, 3, 4, 5 Сегмент кода: CS mov BX, offset array mov AX, [BX]; AX=? mov AX, [BX+4]; AX=? mov BX, offset array mov SI, 0 mov AX, [BX][SI]; AX=? mov SI, 4 mov AX, [BX][SI]; AX=?