Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
GOSY / 3 блок-все.pdf
Скачиваний:
59
Добавлен:
09.05.2015
Размер:
622.15 Кб
Скачать

ошибок. Если больше 0, то число K дает номер бита с ошибкой.

Понятие о криптографических методах защиты информации

Криптография – это наука об использовании математики для зашифрования и расшифрования данных. Криптография позволяет хранить важную информацию или передавать её по ненадёжным каналам связи (таким как Интернет) так, что она не может быть прочитана никем, кроме легитивного получателя.

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

Криптографический алгоритм, или шифр, – это математическая формула, описывающая процессы зашифрования и расшифрования. Чтобы зашифровать открытый текст, криптоалгоритм работает в сочетании с ключом – словом, числом или фразой. Одно и то же сообщение одним алгоритмом, но разными ключами будет преобразовываться в разный шифртекст. Защищённость шифртекста целиком зависит от двух вещей: стойкости криптоалгоритма и секретности ключа.

Ключ – это некоторая величина, которая, работая в сочетании с криптоалгоритмом, производит определённый шифртекст. Ключи, как правило, – это очень большие числа. Размер ключа измеряется в битах. В асимметричной криптографии, чем больше ключ, тем защищённей полученный шифртекст.

Обычная криптография

23

Втрадиционной криптографии, также называемой шифрованием тайным, или симметричным, ключом, один и тот же ключ используется как для зашифрования, так и для расшифрования данных. Data Encryption Standart (DES) – пример симметричного алгоритма, широко применявшегося на Западе с 70-х годов в банковской и коммерческой сферах.

Внастоящее время его сменяет Advanced Encryption Standard (AES).

Шифр Цезаря

Крайне простой пример симметричного шифрования – это подстановочный шифр. Подстановочный шифр заменяет каждую часть информации другой информацией. Чаще всего это достигается смещением букв алфавита. Допустим, если мы решим зашифровать слово «SECRET», используя ключ Цезаря, равный 3, то сдвинем латинский алфавит так, чтобы он начинался с третьей буквы (D).

Итак, беря исходный вариант ABCDEFGHIJKLMNOPQRSTUVWXYZ, и смещая всё на 3, получаем DEFGHIJKLMNOPQRSTUVWXYZABC, где D=A, E=B, F=C, и т.д.

Используя эту схему, открытый текст «SECRET» превращается в «VHFUHW». Чтобы кто-то мог восстановить исходный текст, вы сообщаете ему, что ключ – 3.

Симметричное шифрование и управление ключами

Симметричное шифрование имеет ряд преимуществ. Первое

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

24

предварительно согласовать ключ и держать его в тайне. Если они находятся в географически удалённых местах, то должны прибегнуть к помощи доверенного посредника, например, надёжного курьера, чтобы избежать компрометации ключа в ходе транспортировки. Злоумышленник, перехвативший ключ в пути, сможет позднее читать, изменять и подделывать любую информацию, зашифрованную или заверенную этим ключом. Глобальная проблема симметричных шифров (от Кольца-декодера капитана Миднайта до DES и AES) состоит в сложности управления ключами: как вы доставите ключ получателю без риска, что его перехватят?

Криптография с открытым ключом

Проблема управления ключами была решена криптографией с открытым, или асимметричным, ключом, концепция которой была предложена Уитфилдом Диффи и Мартином Хеллманом в 1975 году. Криптография с открытым ключом

– это асимметричная схема, в которой применяются пары ключей: открытый (public key), который зашифровывает данные, и соответствующий ему закрытый (private key), который их расшифровывает. Вы распространяете свой открытый ключ по всему свету, в то время как закрытый держите в тайне. Любой человек с копией вашего открытого ключа может зашифровать информацию, которую только вы сможете прочитать. Кто угодно. Даже люди, с которыми вы прежде никогда не встречались. Хотя ключевая пара математически связана, вычисление закрытого ключа из открытого в практическом плане невыполнимо. Каждый, у кого есть ваш открытый ключ, сможет зашифровать данные, но не сможет их расшифровать. Только человек, обладающим соответствующим закрытым ключом может расшифровать информацию.

Стойкость зашифрованной информации (криптографическая стойкость, или просто стойкость) зависит от возможности

25

несанкционированного чтения данных. Существует два типа стойкости: теортическая (математическая) и практическая. Эти концепции были предложены в классической работе Шеннона (Shannon, 1949). Термин "практическая стойкость" не означает, что определение не является математически строгим. Стойкость обоих типов стойкости в следующем. Теоретическая стойкость основана на факте, что криптосистема моделируется некоторым формальным объектом, и для этой модели формулируются определенные условия невозможности раскола криптосистемы посторонним лицом. Обычно полагается, что доступная злоумышленнику информация должна быть недостаточной для определения открытого текста, даже если информация о криптосистеме несекретна. В качестве меры практической стойкости мы принимаем работу, т.е. число операций или временную сложность определения открытой информации посторонним лицом, либо средние значения этих характеристик над множеством всех открытых текстов. В этом случае цель состоит в получении максимальной сложности задачи несанкционированного дешифрования.

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

Сложность алгоритма ∙ В области интересов компьютерных наук попадают

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

26

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

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

Как можно измерить сложность алгоритма?

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

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

Трактовка, более точно отражающая сложность алгоритма, может быть получена при анализе свойств алгоритмов с машинной точки зрения. Т.е. сложность измеряется в терминах необходимого для его выполнения времени, которое в свою очередь пропорционально количеству действий, совершаемых машиной(количество действий не равно числу инструкций записанных в тексте программы) Данный подход связан со временем, затрачиваемым машиной на её решение, а не с объектом программы, представляющей это решение. Задача считается сложной, если все её существующие решения требуют больших затрат времени. Данное понятие сложности обычно называют временной сложностью.

Классы сложности алгоритмов: полиномиальные и

неполиномиальные

алгоритмы

Полиномиальные алгоритмы.

 

27

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

для больших значений n находится над графиком функции g (n).

Будем говорить, что задача относится к полиномиальному типу, если она принадлежит классу O (f (n))=const*f(n), где функция f (n) либо сама является полиномом, либо ограничивается некоторым полиномом а const – произвольная константа. Совокупность всех задач полиномиального типа традиционно обозначается как Р. Утверждение о том , что задача относится к полиномиальному типу, связано со временем, необходимым на её решение. Задача, принадлежащая к Р может быть решена за полиномиальное время, или же , то же самое, имеет полиномиальное временное решение.

Неполиномиальные алгоритмы.

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

Принято говорить, что алгоритм, сложность которого определяется показательной или экспоненциальной

28

функцией, требует экспоненциального времени выполнения.

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

НП-задачи.

Задача не имеющая детерминированное решение с полиномиальным затраченным временем, называется недетерминированной полиномиальной задачей, или НПзадачей. Для обозначения множества НП – задач обычно употребляется обозначение NP. Все задачи множества Р также принадлежат и множеству NP, поскольку к любому алгоритму можно добавить недетерминированную команду, не нарушив при этом его функционирования. Вопрос о принадлежности NP - задач множеству Р остаётся открытым, пример задача коммивояжёра. Можно считать, что это наиболее известная проблема из числа ещё не решённых в современной теории вычислительных систем. Её успешное решение может иметь значительные последствия.

Пример НП - задачи.

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

Традиционное решение данной задачи заключается в систематическом рассмотрении возможных путей,

29

сравнении их протяжённости с некоторым пределом, пока не будет найден приемлемый вариант или не будут рассмотрены все возможности.

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

Для решения этой задачи за разумное время необходимо найти более быстрый алгоритм. Мы можем получить последовательность задач которая не будет являться алгоритмом в техническом смысле. Говорят, что подобные команды недетерминированы, поэтому мы будем называть такой «алгоритм» недетерминированным алгоритмом.

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

Полнота класса НП-задач.

∙ Попытки разрешения вопроса о тождественности множеств Р и NP привели к открытию класса задач, принадлежащих множеству NP и известных как полные НП – задачи. Эти задачи имеют следующую особенность: из их полиномиального временного решения могут быть выведены полиномиальные временные решения всех задач, принадлежащих множеству NP. Поэтому если может быть найден алгоритм для решения одной из полных NP – задач за полиномиальное время, то данный алгоритм может быть расширен для решения любой NP – задачи за полиномиальное время. А значит, множество NP окажется тождественным множеству Р. Задача коммивояжёра относится именно к классу полных НП – задач.

30

53.Информация и её виды. Дискретная и непрерывная информация. Измерение информации. Вероятностный и объёмный подход к измерению информации. Формулы Шеннона и Хартли. Сжатие информации. Основные алгоритмы сжатия информации.

Информация, ее виды и свойства

Ранее мы неоднократно употребляли термин «информация», никак его при этом не раскрывая.

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

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

Непрерывная и дискретная информация

Чтобы сообщение было передано от источника к получателю, необходима некоторая материальная

31

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

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

32

состоит в следующем. Область определения функции разбивается точками Х\, хг, ... х„ на отрезки равной длины и на каждом из этих отрезков значение функции принимается постоянным и равным, например, среднему значению на этом отрезке; полученная на этом этапе функция называется в математике ступенчатой. Следующий шаг - проецирование значений «ступенек» на ось значений функции (ось ординат). Полученная таким образом последовательность значений функции y1, у2, … у, является дискретным представлением непрерывной функции, точность которого можно неограниченно улучшать путем уменьшения длин отрезков разбиения области значений аргумента.

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

Международные системы байтового кодирования

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

Попробуем подсчитать наиболее короткую длину такой комбинации с точки зрения человека, заинтересованного в использовании лишь одного естественного алфавита - скажем, английского: 26 букв следует умножить на 2 (прописные и строчные) - итого 52; 10 цифр, будем считать, 10 знаков препинания; 10 разделительных знаков (три вида скобок, пробел и др.), знаки привычных математических действий, несколько специальных символов (типа #, $, & и др.) - итого - 100. Точный подсчет здесь не нужен,

33

поскольку нам предстоит решить простейшую задачу: имея, скажем, равномерный код из групп по N двоичных знаков, сколько можно образовать разных кодовых комбинаций. Ответ очевиден: K = 2N . Итак, при N=6 К = 64 -явно мало, при N = 7 К = 128 -вполне достаточно.

Однако, для кодирования нескольких (хотя бы двух) естественных алфавитов (плюс все отмеченные выше знаки) и этого недостаточно. Минимально достаточное значение N в этом случае 8; имея 256 комбинаций двоичных символов, вполне можно решить указанную задачу. Поскольку 8 двоичных символов составляют 1 байт, то говорят о системах «байтового» кодирования.

Выводы, касающиеся статистической меры количества информации Шеннона

После получения сообщения получатель приобретает такое количество информации, которое равно энтропии полученного сообщения.

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

Количество информации, получаемое при приеме равновероятных сообщений, максимально и равно количеству информации по Хартли.

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

Избыточность сообщения

Как отмечалось, энтропия максимальна, если вероятности сообщений или символов, из которых они составлены,

34

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

Различают 2 вида избыточности – абсолютную и относительную.

Абсолютная избыточность Dabs находится в виде разности между максимально возможной Hmax и действительной энтропией H сообщения:

Dabs = Hmax ─ H .

Относительная избыточность D находится как отношение абсолютной избыточности Dabs к максимальной энтропии

Hmax.

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

Аддитивная мера (мера Хартли)

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

35

представлено не одной, а двумя перфокартами ─ число возможных комбинаций возрастет в 2800 раз и станет равным 21600.

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

Количество информации по Хартли измеряется в битах (binary digit) и вычисляется как двоичный логарифм от числа состояний в котором может находиться сообщение или его источник.

Вернемся к нашему примеру с перфокартой. Каждая позиция на поверхности перфокарты может находиться в двух состояниях ─ с отверстием и без него. Таких позиций 800. Следовательно перфокарта может находиться в 2800 состояниях. Количество информации по Хартли в этом случае равно Ih =log22800=800 бит.

Две перфокарты будут иметь в совокупности 21600 состояний, что соответствует 1600 битам информации, т.е. количество информации по Хартли в двух перфокартах 2 два раза больше, чем в одной. Это соответствует принципу аддитивности (сложения).

Пример оценки количества информации при помощи статистической меры Шеннона

Рассмотрим оцифрованное телевизионное изображение с параметрами:

количество строк в кадре Nстр=400; количество столбцов в кадре Nстолб=600; число градаций яркости Ярк = 27=128; число градаций цвета Цвет =214=16384; количество кадров за 1 сек Кадр = 25.

36

При таких параметрах количество информации по Хартли Ih равно:

Ih = Nстр* Nстолб * Кадр * log2(Ярк*Цвет) = 126 000 000 бит/сек.

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

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

Коды, которые сжимают и восстанавливают информацию

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

Алгоритмы сжатия информации

Алгоритмы сжатия информации делятся на алгоритмы с потерей информации и без потери информации.

алгоритмы с потерей информации не дают возможность декодирования. К таким относятся

37

технологии: JPEG, MPEG, некоторые технологии звукового кодирования.

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

Известны три основных подхода:

1.RLE – учет повторяющихся последовательностей;

2.KWE – создание таблицы-словаря с кодировкой повторяющихся слов;

3.Хаффмана – метод неравномерного кода – чем чаще встречается знак, тем короче его код.

Подход RLE

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

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

Подход KWE

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

Динамический словарь содержит информацию наподобие кодовой таблицы ЭВМ, то есть код – образец слова. Коды подбираются так, чтобы их нельзя было спутать с другими частями текста. Обычным стандартом такого архиватора является двухбайтовая кодировка. Двухбайтовые числа называются тугены. 2 байта обеспечивают размер словаря до 256000 слов. Используют двухбайтовые тугены и соответствующий словарь.

Алгоритм состоит в том, что мы сканируем информацию и находим конструкции, желательно большого размера. В

38

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

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

Подход Хаффмана

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

Основная идея неравномерного кода – если буква встречается чаще, то код её должен быть короче. Такими оптимизированными неравномерными кодами занимались так же Шеннон и Фано.

Хаффман предложил строить коды по типу бинарного дерева. Он исходил из того, что кодировать придется в двоичном коде через 0 и 1, поэтому он предложил разместить буквы какого-то текста в порядке убывания его частоты или вероятности (частота – количество букв в тексте; вероятность – отношение количества данной буквы к общему количеству букв).

Подход Хаффмана хорош тем, что получаем неравномерный код в соответствии с частотами каждой буквы.

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

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

Алгоритм Хаффмана легко реализуется в ЭВМ и воспроизводится. Образуется в результате кодирования дерево, выражается в качестве табличного соответствия и прилагается к сжатому документу. Это самый быстрый алгоритм.

39

Если заданы произвольные бытовые данные, то размер буквы можно устанавливать самому. Наибольшую эффективность на практике оказывают буквы размером 1820 бит.

Слишком короткие буквы (по битам) встречаются очень часто, но степень сжатия будет невысока, слишком длинные буквы (более 3 байт) фактически приближается к алгоритму KWE, так как буквы встречаются все меньше и меньше. Значит, есть некий оптимальный выбор длины буквы.

Как можно убедиться алгоритмы RLE и KWE они дополняют друг друга, поэтому их комбинируют.

Алгоритм Лемпеля–Зива (LZ), или Лемпеля–Зива– Уэлча (LZW).

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

Если заменить 60–70 % текста символами, длина кода которых составляет менее половины первоначальной длины, можно достигнуть сжатия приблизительно в 50 %. При попытке применить этот алгоритм к исполняемым файлам получаются менее впечатляющие результаты (от 10 до 20 % сжатия), так как избыточность кода, создаваемого компиляторами, значительно меньше избыточности текста на естественном языке. Файлы баз данных – еще один трудный случай: записи, содержащие имена, адреса и номера телефонов, редко повторяются, а поэтому плохо поддаются сжатию.

Именно алгоритмы Лемпеля-Зива лежат в основе наиболее известных архиваторов: zip, arj, rar.

40

Сжатие ведется до тех пор пока имеет смысл записывать это сжатие.

Таким образом, для реального сжатия информации используются комбинированные методы с целью оптимизации для любого варианта информации.

Обозначим N – количество равновероятных событий (неопределенность), i – количество информации в сообщении о том, что произошло одно из N событий.

Ранее решали задачи, используя показательное уравнение. Тогда эти величины связаны формулой 2i =N, i=log2N –

 

формула Хартли.

 

 

 

 

 

 

Количество

информации в сообщении об одном из N

 

равновероятных событий.

 

 

 

 

N

 

i

N

 

i

N

i

N

i

 

1

 

0,000

17

 

4,087

33

5,044

49

5,614

 

2

 

00

18

 

46

34

39

50

71

 

3

 

1,000

19

 

4,169

35

5,087

51

5,643

 

4

 

00

20

 

93

36

46

52

86

 

5

 

1,584

21

 

4,247

37

5,129

53

5,672

 

6

 

96

22

 

93

38

28

54

43

 

7

 

2,000

23

 

4,321

39

5,169

55

5,700

 

8

 

00

24

 

93

40

93

56

44

 

9

 

2,321

25

 

4,392

41

5,209

57

5,727

 

10

 

93

26

 

32

42

45

58

92

 

11

 

2,584

27

 

4,459

43

5,247

59

5,754

 

12

 

96

28

 

43

44

93

60

89

 

13

 

2,807

29

 

4,523

45

5,285

61

5,781

 

14

 

35

30

 

56

46

40

62

36

 

15

 

3,000

31

 

4,584

47

5,321

63

5,807

 

16

 

00

32

 

96

48

93

64

35

 

 

 

3,169

 

 

4,643

 

5,357

 

5,832

 

 

 

93

 

 

86

 

55

 

89

 

 

 

3,321

 

 

4,700

 

5,392

 

5,857

 

 

 

93

 

 

44

 

32

 

98

 

 

 

3,459

 

 

4,754

 

5,426

 

5,882

 

41

43

89

26

64

3,584

4,807

5,459

5,906

96

35

43

89

3,700

4,857

5,491

5,930

44

98

85

74

3,807

4,906

5,523

5,954

35

89

56

20

3,906

4,954

5,554

5,977

89

20

59

28

4,000

5,000

5,584

6,000

00

00

96

00

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

Для этих целей служит алфавитный подход. Алфавитом будем называть все множество используемых в языке символов. Полное число символов называют мощностью алфавита.

Мощность алфавита русских букв равна 54.

Понятно, что в каждой очередной позиции текста может появиться любой из N символов. Каждый символ несет i бит информации. Тогда из уравнения 2i =N

i=5,755 бит – столько информации несет 1 бит русского текста.

Задача. Подсчитаем количество информации на одной странице русскоязычного текста объемом 3000 знаков. Объем информации равен 5,755х3000=17256 бит.

Правило: количество информации в символьном сообщении равно Kxi, где K– число символов в сообщении, а i – информационный вес символа, определяемый по формуле Хартли.

Равновероятные и взаимно независимые события в реальной жизни встречаются довольно редко.

42

Во всех разговорных языках одни буквы встречаются чаще, другие - гораздо реже. Исследования говорят, что на 1000 букв приходится следующее число повторений:

В русском языке::

О 110, Е 87, А 75 , И 75, Т 65 … Кроме того, вероятность появления отдельных букв

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

любого разговорного языка, нельзя точно оценивать по формуле Хартли.

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

Формула Шеннона I =- ∑ pi log2 pi , где i=1...N

Здесь: I - количество информации, получаемое в результате проведения опыта; N - общее количество исходов в опыте; pi - вероятность i-го исхода. Если вероятности всех исходов в опыте равны p1 = p2 = . . . = pn = 1/N (бросание монеты, игрального кубика, вытаскивание карты из колоды и т.п.), то формула Шеннона превращается в формулу Хартли (1928 г.): I = log2N.

Сообщение о том, что произошло одно из событий, содержит количество информации

i= - log2 pi(*).

Задача1. В классе находится 32 ученика и учитель решил спросить одного из них. Сколько информации содержится в сообщении учителя о том, кого именно он решил спросить?

43

Решение:

Считаем, что любого ученика учитель может вызвать с одинаковой вероятностью. Тогда по формуле Хартли (N=32) имеем: i=log232=5 бит.

44

54/ Принципы построения и архитектура ПЭВМ. Информационно-логические основы ЭВМ. Основы языка Ассемблер.

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

Основным принципом построения всех современных ЭВМ является программное управление. В основе его лежит представление алгоритма решения любой задачи в виде программы вычисления.

Алгоритм – конечный набор предписаний, определяющий

решение задачи по средством

конечного количества

операций.

 

Программа (для ЭВМ) – упорядоченная последовательность

команд подлежащей обработке

 

4.Принцип программного управления может

быть

осуществлён различными способами: стандартом для построения практически всех ЭВМ стал способом, описанный Фон-Нейманом в 1945г. построений ещё первых образцов ЭВМ. Суть его заключается в следующем:

принцип программного управления – компьютер работает по заранее заданной программе 2) принцип хранимой программы – в соответствии с ним в оперативной памяти находятся не только данные для обработки, но и сама программа. 3) принцип двоичного кодирования – в соответствии с ним для оптимальной работы ЭВМ необходимо использовать двоичные элементы 4) адресуемость памяти – в соответствии с ним память компьютера состоит из ячеек, каждая из которых имеет собственный адрес.

Программа может в любое время обратиться к любой ячейки памяти по ее адресу. Классическая архитектура ЭВМ была

45

свойственна для машин 1 и 2 поколения. Появление 3 поколения обусловлено разработкой интегральных схем, миниатюризации элементов и созданы предпосылки для пересмотра архитектуры ЭВМ. Решением проблем по разгрузке процессора от лишних задач было появление дополнительных устройств (контроллеров), через которые подключались внешние устройства. Появилась шинная архитектура.

Согласно принципам фон Неймана, компьютер должен иметь следующие устройства (классическая архитектура): 1.Арифметическо-логическое устройство — для непосредственного осуществления вычислений и логических операций.(ум компьютера) 2.Устройство управления — для организации процесса управления программ.(организационные способности компа) 3.Запоминающее устройство — для хранения программ и информации.(память компа) 4.Внешние устройства — для ввода и вывода информации. (речь и мимика компа) Подавляющее большинство компьютеров в своих основных чертах соответствует принципам фон Неймана , но схема устройства современных компьютеров несколько отличается от классической схемы. В частности, арифметическо-логическое устройство и устройство управления, как правило, объединены в центральный процессор. Многие быстродействующие компьютеры осуществляют параллельную обработку данных на нескольких процессорах. Компьютерная информация хранится в электронном виде в различных запоминающих устройствах, которые называют компьютерной памятью. Для долговременного хранения информации используются постоянные носители компьютерной памяти, которые служат при вводе данных в компьютер и при выводе результатов его работы. Для хранения выполняемых в данный момент программ и промежуточных данных

46

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

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

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

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

Достоверность – свойство информации быть правильно воспринятой Точность –возможность различать почти равные значения

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

Функции программного обеспечения Электронные вычислительные машины являются

универсальными техническими средствами автоматизации

47

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

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

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

предназначенный для подготовки и решения задач пользователей.

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

Любое ЭВМ неимоновской архитектуры содержит следующие основные устройства: 1.Арифметическо-логическое устройство (АЛХ) 2.Устройство управления (УУ).

3.Заполняющее устройство (ЗУ). 4.Устройство ввода/вывода (УВВ). 5.Пульт управления (ПУ).

48

В современных ЭВМ АЛУ и УУ объединены в общее устройство и называются центральным процессором. 2.1.Процессор или микропроцессор является основным устройством ЭВМ он предназначен для выполнения вычислений по хранящейся в Запоминающем устройстве программы и обеспечения общего управления ЭВМ. Быстродействие ЭВМ в значительной мере определяется скорость работы процессора. Для её увеличения процессор использует собственную память небольшого объёма именуемую местной или сверхоперативной, что в некоторых случаях исключает необходимость обращения к запоминающему устройству ЭВМ. Вычислительный процесс должен быть предварительно представлен для ЭВМ в виде программы, последовательности инструкций (команд) записанных в порядке выполнения. ЭВМ выбирает определённую команду расшифровывает её, определяет какие действия и над какими операциями следует выполнить. Эту функцию осуществляет устройство управления, оно же помещает выбранные из ЗУ операнды в АЛУ, где они обрабатываются. Само АЛУ работает под управлением УУ.

2.2.Обрабатываемае данные и выполняемые программы должны находиться в ЗУ – памяти ЭВМ, куда вводятся ч/3 устройство ввода. Ёмкость памяти измеряется в величинах кратких байту. Память представляет собой сложную структуру, построенную по иерархическому принципу и включает в себя ЗУ различных типов, функционально она делится на 2 части: внутреннюю и внешнюю.

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

49

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

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

50

Устройство последовательного действия используется для резервирования информации.

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

Системный интерфейс – это конструктивная часть ЭВМ предназначенная для взаимодействия её устройств и обмена информации между ними. В больших средних и супер ЭВМ в качестве системного интерфейса используются сложные устройства имеющие встроенные процессоры ввода/вывода именуемые началами такие устройства обеспечивают высокую скорость обмена данными между компонентами ЭВМ является использованием в качестве системного интерфейса системных шин. Различают ЭВМ с многошинной структурой и с общей шиной

I-Во-первых для обмена информации между устройствами используются отдельные группы шин.

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

51

Информация в ЭВМ кодируется, как правило, в двоичной или в двоично-десятичной системе счисления.

Система счисления - это способ наименования и изображения чисел с помощью символов, имеющих определенные количественные значения.

Взависимости от способа изображения чисел системы счисления делятся на позиционные и непозиционные.

Впозиционной системе счисления количественное значение

каждой цифры зависит от ее места (позиции) в числе. В непозиционной системе счисления цифры не меняют своего количественного значения при изменении их расположения в числе. Количество (Р) различных цифр, используемых для изображения числа в позиционной системе счисления, называется основанием системы счисления. Значения цифр лежат в пределах от 0 до Р-1.

Пример 4.1. Позиционная система счисления - арабская десятичная система, в которой:основание P=10, для изображения чисел используются 10 цифр (от 0 до 9). Непозиционная система счисления - римская, в которой для каждого числа используется специфическое сочетание символов (XIV, CXXVII и т.п.).

Двоичная система счисления имеет основание Р=2 и использует для представления информации всего две цифры: 0 и 1. Существуют правила перевода чисел из одной системы счисления в другую, основанные в том числе и на соотношении (1).

Пример 4.2.

101110,101(2) =1*25+0*24+1*23+l*22+1*21+0*20+l*2-1+0*2-

2+l*2-3=46,625(10) ,

т.е. двоичное число 101110,101 равно десятичному числу 46,625.

В вычислительных машинах применяются две формы представления двоичных чисел:

52

естественная форма или форма с фиксированной запятой (точкой);

нормальная форма или форма с плавающей запятой (точкой).

Сфиксированной запятой все числа изображаются в виде

последовательности цифр с постоянным для всех чисел положением запятой, отделяющей целую часть от дробной. Пример 4.3. В десятичной системе счисления имеются 5 разрядов в целой части числа (до запятой) и 5 разрядов в дробной части числа (после запятой); числа, записанные в такую разрядную сетку, имеют вид:

+00721,35500; +00000,00328; -10301,20260.

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

Пример 4.4. Диапазон значащих чисел (N) в системе счисления с основанием Р при наличии m разрядов в целой части и s разрядов в дробной части числа (без учета знака числа) будет:

Р-s ≤ N ≤ Рm- P-s.

При Р=2, m=10 и s = 6: 0,015≤ N≤ 1024.

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

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

N=±MP±r,

53

где М-мантисса числа (|М| < 1); r- порядок числа (r- целое число); Р- основание системы счисления.

Пример 4.5. Приведенные в примере 4.3 числа в нормальной форме запишутся так:

+0,721355*103; +0,328* 10-3; -0,103012026*105.

Нормальная форма представления имеет огромный диапазон отображения чисел и является основной в современных ЭВМ.

Знак числа обычно кодируется двоичной цифрой, при этом код0 означает знак "+", код 1 -знак "-".

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

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

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

Для изображения цифр, больших 9, в шестнадцатеричной системе счисления применяются буквы А=10, В=11, С=12, D=13, Е=14, F=15.

Пример 4.8. Шестнадцатеричное число F17B в двоичной системе выглядит так:

1111000101111011.

Правила перевода целых чисел Результатом перевода целого числа всегда является целое число.

54

Перевод из десятичной системы счисления в двоичную и шестнадцатеричную:

а) исходное целое число делится на основание системы счисления, в которую переводится (на 2 - при переводе в двоичную систему счисления или на 16 - при переводе в шестнадцатеричную); получается частное и остаток; б) если полученное частное меньше основания системы

счисления, в которую выполняется перевод, процесс деления прекращается, переходят к шагу в). Иначе над частным выполняют действия, описанные в шаге а); в) все полученные остатки и последнее частное

преобразуются в соответствии с таблицей перевода в цифры той системы счисления, в которую выполняется перевод; г) формируется результирующее число: его старший разряд

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

Правило перевода дробных чисел из десятичной системы в двоичную Для получения двоичного представления десятичного числа достаточно:

1. Если целая часть числа отлична от нуля, то ее перевести

отдельно

(по

известному

прави-лу).

2. Дробную

часть

числа умножить на

2. Целая часть

полученного произведения является первой цифрой после запятой в искомом числе.

3. Дробную часть полученного произведения вновь умножить на 2. Целую часть получен-ного числа приписать справа к результату.

4. Выполнять пункт 3, пока дробная часть не станет равной нулю или не будет выделен пе-риод (то есть повторится

55

ранее

полученная

дробная

часть).

Представление текстовой информации в ЭВМ

 

Любая информация в компьютере хранится в двоичном коде, следовательно, нужен способ кодировки, который бы преобразовывал знаки текста в двоичные коды. Такая система кодировки называется кодовой таблицей ЭВМ.

Для того, чтобы тексты переносились с одного компьютера на другой были установлены стандарты кодировок. Первоначально первый стандарт кодировки был 8-разрядным, 1 байт = 1 разряду, 256 знаков в таблице.

ASCII коды – американский стандарт. КОИ – российский стандарт.

Таблица ASCII коды содержит коды от 0 до 31 – управляющие коды, 32 – пробел. От 33 до 255 – видимые знаки: маленькие и большие буквы латинского алфавита, цифры десятичной системы 0 – 9, знаки препинания, математические операции. Выделяется место для национальной кодировки. Оставшиеся коды отданы для псевдографики и дополнительных знаков.

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

Представление графической информации в ЭВМ.

В графическом режиме экран поделен на точки – пиксели, точки так же располагаются вдоль строк и столбцов, но их гораздо больше, чем знакомест.

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

Графическая информация хранится в ЭВМ в растровом или векторном виде.

56

Растровое изображение – изображение в виде мозаики. Векторное изображение – сжатие графической

информации, здесь существует векторный способ, контурный и фронтальный.

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

True Color – формируется как набор трех цветов: красный, зеленый и синий – RGB-формат, 3 байта на цвет.

Простейший векторный формат представляет графическое изображение как набор отрезков прямых одного цвета, т.е. если у нас на одной прямой находятся хотя бы 4 пикселя, то для хранения такого отрезка достаточно знать направление, длину отрезка и один раз цвет. Следовательно, если цвет кодируется 3 байтами, то получаем выигрыш в сжатии информации. Ширина прямой – 1 пиксель.

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

Для сжатия графической информации был придуман физиологический способ: JPEG. Оказывается, человеческий глаз сглаживает контраст цветов, если точки находятся близко друг от друга. В результате, если рядом расположены разноцветные пиксели, то человек, сглаживая цвета, видит некий средний цвет. Следовательно, нет необходимости хранить цвет каждого пикселя, а надо объединять такие пиксели в цветовые пятна и делать одного цвета.

Такое сжатие называется сжатием с потерей информации. На качество изображения это почти не влияет. Сжатие возможно от 10 до 20 раз в расширении *.jpg.

Представление видео и анимации в ЭВМ.

57

Такая информация требует покадрового показа. Эксперименты показали, что глаз не замечает мелькание кадров, если их частота не меньше 24 кадра в секунду. 1 мин, 25 кадров в сек.

Воспроизведение видео и анимации практически невозможно без сжатия информации. Для сжатия анимации придуман метод MPЕG-инженерный. Его суть: хранить не все кадры, а только изменение от кадра к кадру. Такая технология дает сжатие от 10 до 100 раз.

Хранение звуковой информации в ЭВМ.

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

3)расклад в спектр;

4)производя дискретизацию по уровню сигнала.

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

Использование волновых таблиц дает возможность моделировать звук и аранжировать музыку.

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

Процессор занимает центральное место в структуре ЭВМ, так как он осуществляет управление взаимодействием всех устройств, входящих в состав ЭВМ.

58

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

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

Таким образом, может быть установлена следующая иерархия этапов выполнения программ в процессоре: программа, команда (микропрограмма), микрооперация (микрокоманда).

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

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

59

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

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

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

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

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

60

включают блок регистровой памяти (местную память)

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

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

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

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

61

системах - таких, например, как Windows NT с прикладного уровня порты недоступны).

Фактически, ассемблерная программа наполовину состоит из команд пересылки данных.

Все эти действия происходят на арене, называемой адресным пространством. Адресное пространство - это просто совокупность ячеек виртуальной памяти, доступной процессору. Операционные системы типа Windows 9x и большинство UNIX'ов создают для каждого приложения свой независимый 4 Гбайтный регион, в котором можно выделить, по меньшей мере, три области: область кода, область данных и стек.

Стек - это такой способ хранения данных. Что-то среднее между списком и массивом Направление роста стека: от больших адресов - к меньшим. Еще говорят, что стек растет снизу вверх.

Регистр EIP содержит указатель на следующую выполняемую команду и непосредственно недоступен для модификации. Регистры EAX, EBX, ECX, EDX, ESI, EDI, EBP называются регистрами общего назначения и могут свободно участвовать в любых математических операциях или операциях обращения к памяти. Их всего семь. Семь 32-разрядных регистров. Четыре первых из них (EAX, EBX, ECX и EDX) допускают обращения к своим 16-разрядным половинкам, хранящим младшее слово - AX, BX, CX и DX. Каждый из них, в свою очередь, делится на старший и младший байты - AH/AL, BH/BL, CH/CL и DH/DL. Важно понять, что AL, AX и EAX - это не три разных регистра, а разные части одного и того же регистра!

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

62

Основной ассемблерной командой является команда пересылки данных MOV, которую можно уподобить оператору присвоения.

"c = 0x333" на языке ассемблера записывается так: MOV EAX, 333h (обратите внимание на разницу записи шестнадцатеричных чисел!). Можно также записать MOV EAX, EBX (записать в регистр EAX значение регистра EBX).

Указатели заключаются в квадратные скобки. Сишное a = *b на ассемблере записывается так: MOV EAX, [EBX]. При желании, к указателю можно добавить смещение: a = b[0x66] эквивалентно: MOV EAX, [EBX + 0x66].

. Команда CMP позволяет сравнить два числа, сохраняя результат своей работы во флагах. Флаги - это биты специального регистра, описание которого заняло бы слишком много места и поэтому здесь не рассматривается. Достаточно запомнить три основных состояния: меньше (bellow или less), больше (above или great) и равно (equal).

Синтаксис

Синтаксис языка ассемблера определяется системой команд конкретного процессора.

Набор команд

Типичными командами языка ассемблера являются (большинство примеров даны для архитектуры x86):

1.Команды пересылания данных (mov, lea и т. д.)

2.Арифметичекие команды (add, sub, imul и т. д.)

3.Логические и побитовые операции (or, and, xor, shr и

т. д.)

4.Команды управления ходом выполнения программы (jmp, loop, ret и т. д.)

5.Команды вызова программных прерываний (иногда относят к командам управления): int, into

6.Команды ввода/вывода в порт (in, out)

63

7. Для микроконтроллеров и микроЭВМ характерны также команды, выполняющие проверку и переход по условию, например:

cbne — перейти, если не равно

dbnz — декрементировать, и если результат ненулевой, то перейти

cfsneq — сравнить, и если не равно, пропустить следующую команду

Инструкции

Типичный формат записи команд:

[метка:] опкод [операнды] [;комментарий]

где опкод (код операции) — непосредственно мнемоника инструкции процессору. К ней могут быть добавлены префиксы (повторения, изменения типа адресации и пр.).

В качестве операндов могут выступать константы, адреса регистров, адреса в оперативной памяти и пр.. Различия между стандартами Intel и AT&T касаются, в основном, порядка перечисления операндов и их синтаксиса при различных методах адресации.

Используемые мнемоники обычно одинаковы для всех процессоров одной архитектуры или семейства архитектур (среди широко известных — мнемоники процессоров и контроллеров Motorola, ARM, x86). Они описываются в спецификации процессоров. Возможные исключения:

Если ассемблер использует кроссплатформенный AT&T-синтаксис (оригинальные мнемоники приводятся к синтаксису AT&T)

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

Например, процессор Zilog Z80 наследовал систему команд Intel i8080, расширил ее и поменял мнемоники (и обозначения регистров) на свой лад. Процессоры Motorola Fireball наследовали систему команд Z80, несколько её

64

урезав. Вместе с тем, Motorola официально вернулась к мнемоникам Intel. И в данный момент половина ассемблеров для Fireball работает с интеловскими мнемониками, а половина с мнемониками Zilog.

Директивы

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

определение данных (констант и переменных)

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

задание режима работы компилятора

всевозможные абстракции (то есть элементы языков высокого уровня) — от оформления процедур и функций (для упрощения реализации парадигмы процедурного программирования) до условных конструкций и циклов (для парадигмы структурного программирования)

макросы

Пример программы

Пример программы Hello world для MS-DOS для архитектуры x86 на диалекте TASM:

.MODEL TINY

CODE SEGMENT

ASSUME CS:CODE, DS:CODE ORG 100h

START: mov ah,9

mov dx,OFFSET Msg int 21h

65

int 20h

Msg DB 'Hello World',13,10,'$' CODE ENDS

END START

66

55. Структурная и функциональная схема персонального компьютера. Назначение, виды и характеристики центральных устройств ПЭВМ.

Организация функционирования ЭВМ с магистральной архитектурой

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

Все устройства ЭВМ делятся на центральные и периферийные. Центральные устройства полностью электронные, периферийные устройства могут быть либо электронными, либо электромеханическими с электронным управлением.

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

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

67

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

Периферийные устройства делятся на два вида: внешние ЗУ (НМД, НГМД, НМЛ) и устройства ввода-вывода (УВВ): клавиатура, дисплей, принтер, мышь, адаптер каналов связи (КС) и др.

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

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

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

68

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

арифметическое устройство (АУ). На этом заканчивается подготовка МП к выполнению операции, и начинается ее выполнение в АЛУ.

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

В каждом цикле, получив команду в регистр команд и выделив код операции, процессор определяет, к какому устройству она относится. Если команда должна выполняться процессором, организуется ее выполнение по описанному циклу. Если же команда предназначена для выполнения в другом устройстве ЭВМ, центральный процессор (ЦП) передает ее соответствующему устройству. Процесс передачи команды другому устройству предусматривает следующие действия: ЦП выставляет на шину адреса СМ адрес интересующего его устройства. По шинам управления передается сигнал поиск устройства. Все устройства, подключенные к системной магистрали, получив этот сигнал, читают номер устройства с шины адреса и сравнивают его со своим номером. Устройства, для которых эти номера не совпадают, на эту команду не реагируют.

69

Устройство с совпавшим номером вырабатывает сигнал отклика по шине управления. ЦП, получив сигнал отклика, в простейшем случае выставляет имеющуюся у него команду на шину данных и сопровождает ее по шине управления сигналом передаю команду. Получив сигнал о приеме команды, ЦП переходит к выполнению очередной своей команды, выставляя на шину адреса содержимое счетчика команд.

В более сложных случаях, получив сигнал, что устройство откликнулось, прежде чем передавать команду, ЦП запрашивает устройство о его состоянии. Текущее состояние устройства закодировано в байте состояния, который откликнувшееся устройство передает процессору через ШД системной магистрали. Если устройство включено и готово к работе, то байт состояния -нулевой. Наличие в нем единиц свидетельствует о нештатной ситуации, которую ЦП пытается проанализировать и в необходимых случаях извещает оператора о сложившейся ситуации.

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

Для различных устройств могут использоваться разные логические последовательности действий, поэтому интерфейсов ввода-вывода может в одной и той же ЭВМ использоваться несколько. Если их удается свести к одному, универсальному, то такой интерфейс называется стандартным. В IBM PC есть два стандартных интерфейса для связи ЦП с внешними устройства-' ми: параллельный (типа Centronics) и последовательный (типа RS-232).

70

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

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

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

71

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

Организация работы ЭВМ при выполнении задания пользователя

Организация процессов ввода, преобразования и отображения результатов относится к сфере системного программного обеспечения. Это сложные цр9цесс.ы„ ^которые чаще всего делаются “прозрачными”, т.е. незаметными для пользователя. Один из них - реализация задания пользователя: профессиональный пользователь (программист) пишет задание для ЭВМ в виде программы на алгоритмическом языке. Написанное задание (программа) представляет собой исходный модуль, сопровождаемый управляющими предложениями, указывающими операционной системе ЭВМ, на каком языке написана программа и что с ней надо делать. Если программа пишется на алгоритмическом языке, то управляющие предложения - на языке управления операционной системой (в ЕС ЭВМ и IBM 360/370 этот язык называется -Job Control Langiage, в MS DOS IBM PC - это язык команд DOS, иногда оформляемый в виде bat - файла).

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

72

перевода на язык машины каждого оператора алгоритмического языка немедленно исполняет полученную машинную программу. Компилятор же сначала полностью переводит всю программу, представленную ему в виде исходного модуля (ИМ), на язык машины. Получаемая при этом машинная программа представляет собой объектный модуль (ОМ). Результат работы компилятора может быть записан в библиотеку объектных модулей (БОМ) или передан другим программам для дальнейшей обработки, поскольку полученная машинная программа не готова к исполнению по двум причинам.

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

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

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

73

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

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

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

Внастоящее время эта технология имеет аппаратную поддержку на всех современных процессорах.

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

Также существует термин swap (англ. swap, /swɔp/) также означающий виртуальную память (точнее способ её представления), или же означает подкачку данных с диска.

74

Применение механизма виртуальной памяти позволяет: упростить адресацию памяти клиентским программным обеспечением;

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

монопольно владеет всей памятью); В большинстве современных операционных систем

виртуальная память организуется с помощью страничной адресации. Оперативная память делится на страницы: области памяти фиксированной длины (например, 4096 байт), которые являются минимальной единицей выделяемой памяти (то есть даже запрос на 1 байт от приложения приведёт к выделению ему страницы памяти). Процесс обращается к памяти с помощью адреса виртуальной памяти, который содержит в себе номер страницы и смещение внутри страницы. Операционная система преобразует виртуальный адрес в физический, при необходимости подгружая страницу с жёсткого диска в оперативную память. При запросе на выделение памяти операционная система может «сбросить» на жёсткий диск страницы, к которым давно не было обращений. Критические данные (например, код запущенных и работающих программ, код и память ядра системы) обычно находятся в оперативной памяти (исключения существуют, однако они не касаются той части, которая отвечает за использование файла подкачки).

Недостатком данного метода распределения памяти является фрагментация на уровне сегментов и более медленное по сравнению со страничной организацией преобразование адреса

Структура базового микропроцессора

Основу центрального процессора ПЭВМ составляет

75

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

К группе 8-битовых микропроцессоров относятся i8080, i8085 (с буквы i начинаются названия МП, выпускаемых фирмой Intel - INTegrated Electronics), Z80 (с буквы Z начинаются названия МП фирмы Zilog) и др. Наиболыпее распространение среди 16-битовых микропроцессоров поли i8086, i8088, 32-битовых - i80386, i80486, которые совместимы по идам и форматам данных снизу вверх. Эти микропроцессоры используются в различных модификациях ЮМ PC. Два из этих микропроцессоров: i8086 и i8088 по назначению и функционым возможностям одинаковы. Различаются они только разрядностью шины данных системной магистрали: МП i8086 имеет 16-битовую шину даных, а i8088 - 8-битовую. В связи с этим выборка команд и операндов из оперативной памяти производится за разное число машинных циклов. С точки зрения функциональных возможностей существенного значения эти различия не имеют, поэтому и упоминают о них, как правило, вместе: 8086/8088. Этот тип МП является базовым для IBM совместимых машин. Все последующие типы МП основываются на нем и лишь развивают его архитектуру.

МП 8086/8088 имеет базовую систему команд. В следующей модификации МП фирмы Intel - 80186 реализована расширенная система команд. Начиная с 80486, в кристалле

76

МП размещается арифметический сопроцессор для операций с плавающей точкой. Фирма Intel разработала специальный микропроцессор Over Drive, который предназначен для параллельной работы с основным микропроцессором (для этого на системной плате предусматривается специальное гнездо).

Все эти усовершенствования позволяют сделать персональную ЭВМ IBM PC мультипрограммной, многопользовательской (МП 80286 позволял работать с 10 терминалами; 80386 - с 60) и многозадачной. С помощью операционной системы стало возможным реализовать работу в режиме SVM (системы виртуальных машин), т.е. на одной ПЭВМ реализовать множество независимых виртуальных машин (МП 803 86 позволял в этом режиме реализовать работу до 60 пользователей, каждому из которых предоставлялась отдельная виртуальная ПЭВМ IBM PC на МП 8086).

Работа микропроцессора при выполнении программного прерывания

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

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

Поскольку адрес любого байта основной памяти определяется базовым адресом сегмента (2 байта) и смещением в сегменте (2 байта), вектор прерываний разделен на четверки байтов, имеющие структуру

77

Для получения адреса обработчика прерывания № nh необходимо:

·по номеру прерывания определить адрес первого байта “четверки” в векторе прерываний (он равен п*4);

·выбрать 4 байта из 0 сегмента основной памяти, начиная с байта 4nh;

·два последних байта поместить в регистр CS;

·два первых байта поместить в счетчик команд IP.

После этого начнет выполняться первая команда обработчика прерывания № nh.

Таблица векторов прерываний используется не только для хранения адресов обработчиков прерываний, но и для указания на места хранения в ОП служебной информации. Для этой цели служат векторы прерываний IDh, lEh, IFh, 41h, 43h, 46h, 4Ah. Так, вектор IDh содержит адрес таблицы параметров видеосистемы (а не обработчика прерывания); вектор lEh - таблицы параметров дискет; 1Fh - адрес знакогенератора адаптера CGA и т.д.

При выполнении команды INT номер функции должен содержаться в регистре АН микропроцессора. Остальные регистры должны включать необходимые для этой функции параметры. Например, для функции 02h остальные регистры микропроцессора должны содержать:

AL - число читаемых секторов;

СН - номер дорожки, на которой расположены читаемые сектора;

CL - номер сектора;

DH - номер головки;

DL - номер дисковода;

ES:BX - адрес буфера для чтения.

В результате выполнения этой функции при возникновении ошибки флаг CF устанавливается в 1; в регистр AL заносится число считанных секторов, в регистр АН

78

записывается код состояния, сформированный после окончания операции:

00 - успешное завершение;

01 - некорректная команда;

02 - адресная метка не найдена;

FF - сбой операции опроса (для жесткого диска).

Кроме команд INT и IRET в IBM PC, с прерываниями работают команды CLI (запрещение маскируемых прерываний) и STI (отмена запрета прерывания).

79

80

Соседние файлы в папке GOSY