Прикладные системы

Третий этап

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

 
 

 

Примеры:

 
 

 

 

 
 

Основные тенденции в развитии современных прикладных систем

Стандартизация моделей автоматизируемых

бизнес-процессов

B2B (business to business)

B2C (business to customer)

ERP (Enterprise Resource Planning)

CRM (Customer Relationship Management)

Открытость системы


API - Application Programming Interface

 

Выводы

 

 
 


 

 


Базовые определения и понятия:

• Вычислительная система

• Физические ресурсы (устройства)

• Драйвер физического устройства

• Логические или виртуальные ресурсы (устройства)

• Драйвер логического/виртуального ресурса

• Ресурсы вычислительной системы

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

• Жизненный цикл программы в вычислительной системе

• Система программирования

• Прикладная система

 

 


 

 

Основы компьютерной архитектуры

 

 

«Компьютер фон Неймана»:

• Джон фон Нейман (John Von Neumann)

• EDVAC (Electronic Discrete Variable Computer - Электронный Компьютер Дискретных Переменных)

 

• Предварительный доклад о компьютере EDVAC (A First Draft Report on the EDVAC).

 

• Джон Мочли (John Mauchly) и Джон Преспер Эккерт (John Presper Eckert).

 

• ENIAC (Electronic Numerical Integrator And Computer).

Структура, основные компоненты:


 

 

Структура компьютера фон Неймана

 

"принципы построения компьютера фон Неймана":

Принцип двоичного кодирования

(придуман в США в 30 – е годы, все поступающие данные кодируются в виде двоичного сигнала) Суть заключается в том, что все поступающие и обрабатываемые компьютером данные кодируются при помощи двоичных сигналов. Т.е. как данные, которые должны обрабатываться, так и управляющая информация (команды), кодируются одинаково в двоичной системе.

Принцип программного управления

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

Принцип хранимой программы

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

 

Предполагается, что компьютеры фон Неймана имеют следующие компоненты:

- центральный процессор(ЦП),в функции которого входит обеспечение выполнения программы;

- оперативное запоминающее устройство(ОЗУ) - это устройство, предназначенное для хранения выполняемой в данный момент программы;

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

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

Рассмотрим каждое из компонентов модельной машины.

 

 

Оперативное запоминающее устройство

 
 

 


Компьютер представляет собой разнородные, разноцелевые, разноскоростные аппаратные устройства.

Функция ОЗУ - хранение программы, выполняющейся в компьютере

ОЗУ - устройство, предназначенное для хранения оперативной информации.

В ОЗУ размещается исполняемая в данный момент программа и используемые ею данные.

ОЗУ состоит из ячеек памяти, содержащей поле машинного слова и поле служебной информации.

В ОЗУ все ячейки памяти имеют уникальные имена, имя - адрес ячейки памяти.

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

 

Машинное слово – поле программно изменяемой информации.

в машинном слове могут располагаться

1) машинные команды (или части машинных команд)

2) данные, с которыми может оперировать программа.

 

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

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

 

В поле служебной информации могут размещаться:

1)разряды контроля четности машинного слова, при чтении контроль соответствия;

2)разряды контроля «данные-команда»;

3)машинный тип данных – осуществление контроля за соответствием машинной команды и типа ее операндов.

 

Использование содержимого поля служебной информации

1. Контроль за целостностью данных.

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

 
 

 


2. Контроль доступа к командам/данными.

Контроль осуществляется при помощи тегов. Если команда захочет рассмотреть данные в качестве команды то будет прерывание. Происходит проверка на семантическую правильность.

 

3. Контроль доступа к машинным типам данных

Тип данных – определенный формат данных, с конкретным набором операций, известных для этого формата. Т.е. если выполняется команда «плавающий арифметикой» (арифметика с плавающей точкой),то она выполнится нормально в том и только в том случае, если операнды помечены как данные в формате с плавающей точкой, иначе произойдет ошибка. Соответственно при записи можно назначать, что эта ячейка есть плавающая точка – определенный режим.

 

Важной характеристикой ОП является производительность ОП.

Производительность оперативной памяти - скорость доступа процессора к данным, размещенным в ОЗУ:

Cкорость доступа к данным ОЗУ существенно ниже скорости обработки информации в ЦП.

Фигурируют два компонента, которые определяют эту характеристику производительности:

время доступа (access time- taccess)- время между запросом на чтение слова из оперативной памяти и получением содержимого этого слова.

длительность цикла памяти (cycle time - tcycle) - минимальное время между началом текущего и последующего обращения к памяти.

(tcycle>taccess)

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

 

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

Расслоение памяти

 

 
 

Расслоение ОЗУ – один из аппаратных путей решения проблемы дисбаланса в скорости доступа к данным, размещенным в ОЗУ и производительностью ЦП. Суть его в следующем: предполагается, что вся память аппаратно разделена на последовательность областей, каждая из которых называется банк памяти и ОП физически представляется как объединение k банков памяти. Соответственно для управления ОП существует аппаратура, которая обеспечивает функцию управления, это контроллер ОП. Он может состоять из двух уровней – это контроллер доступа к памяти в целом, который имеет k своих внутренних каналов, которые могут работать параллельно, и каждый из каналов связан с контролем соответствующего банка памяти. Ячейки памяти расположены между соседними банками. Это означает, что в нулевом банке находится нулевая ячейка, в первом банке – первая ячейка и т.д. , в k-1 м банке k-1 – я ячейка, k – я ячейка находится в нулевом банке, k+1 – в первом и т.д. Все адреса размазаны по этим банкам. Всегда гарантированно, что соседние адреса, если их не более k находятся в разных банках. Это и есть аппаратная организация. Соответственно, если имеется ОП без расслоения памяти и с расслоением, то мы имеем следующую картину:

Последовательное чтение рядом стоящих ячеек памяти в одном случае время будет сравнимо с количеством этим ячеек умноженное на время цикла памяти, а в другом случае кол-во ячеек, умноженное на время доступа. И за счет того, что время цикла всегда больше времени доступа, мы имеем выигрыш. Соответственно при расслоении памяти используется следующий принцип: обычно количество банков памяти есть степень двойки – это означает, что если взять адрес, который используется в машине, и вырезать из этого адреса какое-то количество разрядов, то получается номер банка. Т.о. получая исполнительный адрес, данные сразу же попадают на нужный банк. Суть в том, что мы можем при запросе последовательных адресов параллельно запускать доступ к разным банкам, т.е. оптимизировать доступ к рядом стоящим ячейкам памяти..

 

Другие пути решения данной проблемы – возможность предварительной буферизации при чтении команд/данных и оптимизация при записи в ОЗУ больших объемов данных.

 

Центральный процессор

 

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

 


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

Устройство управления (control unit)– координирует выполнение команд программы процессором.

Арифметико-логическое устройство (arithmetic/logic unit) –обеспечивает выполнение команд, предусматривающих арифметическую или логическую обработку операндов.

 

 

Регистровая память

           
   
 
 
Регистры общего назначения (РОН)
 
 

 

 


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

Качественный и количественный состав специализированных регистров ЦП зависит от архитектуры ЭВМ. Выше представлены некоторые из возможных типов регистров, обычно входящие в состав специализированных регистров.

 

Регистр адреса (РА) - содержит адрес команды, которая исполняется в данный момент времени. По содержимому РА ЦП осуществляет выборку текущей команды, по завершении ее исполнения регистр адреса изменяет свое значение тем самым указывает на следующую команду, которую необходимо выполнить.

 

Регистр результата (РР) - содержит код, характеризующий результат выполнения последней арифметико-логической команды. Содержимое РР может характеризовать результат операции. Для арифметических команд это может быть «=0», «>0», «<0», переполнение. Содержимое РР используется для организации ветвлений в программах, а также для программного контроля результатов.

 

Слово – состояние процессора (ССП или PSW) - регистр, содержащий текущие «настройки» работы процессора и его состояние. Содержание и наличие этого регистра зависит от архитектуры ЭВМ. Например, в ССП может включаться информация о режимах обработки прерываний, режимах выполнения арифметических команд и т. п. Частично, содержимое ССП может устанавливаться специальными командами процессора.

 

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

 

Регистр указатель стека - используется для ЭВМ, имеющих аппаратную реализацию стека, в данном регистре размещается адрес вершины стека. Содержимое изменяется автоматически при выполнении «стековых» команд ЦП.

 

 

Устройство управления и арифметико-логическое устройство

 

Устройство управления (control unit)– координирует выполнение команд программы процессором.

 

Арифметико-логическое устройство (arithmetic/logic unit) – обеспечивает выполнение команд, предусматривающих арифметическую или логическую обработку операндов.

 

Эти устройства являются «мозгом» процессора. Как именно функционирование этих устройств обеспечивает выполнение программ? Для ответа на этот вопрос рассмотрим упрощенную схему выполнения программ, иногда называемую рабочим циклом процессора.

Пусть у нас имеется специальный регистр - счетчик команд. В начальный момент времени в счетчике команд образуется адрес первой команды программы. Договоримся о том, что любая команда размещается в одном машинном слове и адреса соседних машинных слов различаются на 1. Рассмотрим последовательность действий в УУ процессора при выполнении программы.

По содержимому счетчика команд на выполнение из памяти выбирается очередная команда. Далее формируется адрес следующей команды, которая должна выполнится, т.е. счетчик команд увеличивается на 1. После этого в УУ происходит анализ кода операции, которая находится в выбранной команде, если это арифметико-логическая команда, то происходит вычисление исполнительных адресов операндов и выбор соответствующих их значений, и после этого идет обращение в АЛУ, в пределах которого выполняется эта команда. После этого цикл возвращается на этап выбора очередной команды по содержимому счетчика команд. Если после анализа кода операции выяснилось, что это не есть арифметико-логическая команда, а некоторая команда отличающаяся, (т.е. если, например, это команда передачи управления), то происходит анализ условия перехода. Это означает автоматический выбор специального регистра и по его значению принимается решение о переходе, если условие не выполнено, то мы переходим к выбору следующей команды, иначе происходит вычисление исполнительного адреса и счетчику команд присваивается этот адрес перехода и опять осуществляется переход на этап выборки команды по значению счетчика команд.

 

Рабочий цикл процессора

 

Рабочий цикл процессора – последовательность действий, происходящая в процессоре во время выполнения программы.

 

 


 

Кэш-память (L1)