yandex rtb 1
ГоловнаЗворотній зв'язок
yande share
Главная->Різні конспекти лекцій->Содержание->2.9. Нарушение ограничений ЭВМ

Организация ЭВМ

2.9. Нарушение ограничений ЭВМ

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

·         для ЧФЗ:

- переполнение, когда результат не вмещается в отведенное количество бит (имеются в виду ЧФЗ справа от МЗР);

·         для ЧПЗ:

- положительное переполнение порядка, когда PZ>Pmax;

- отрицательное переполнение порядка, когда PZ<Pmin (исчезновение порядка).

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

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

- при возникновении признака в любом месте программы в ЭВМ формируется запрос на прерывание и выполняется программа его обслуживания.

2.10. Представление буквенно-цифровой информации

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

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

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

 

 

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

В отечественных ЭВМ также использовались различные коды. Так, в ЕС-ЭВМ использовался двоичный код обработки информации (ДКОИ), 8-разрядный код обмена информацией (КОИ-8). Использовались также 7-разрядный код КОИ-7 и его модификации, причем код КОИ-7 наиболее близок к базовому варианту кода ASCII. Код КОИ-8 за счет использования 8-го бита позволял представлять помимо служебных символов, цифр и латинских букв еще и русские буквы.

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

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

Система Unicode присваивает уникальный двухбайтовый код любому символу, независимо от платформы, независимо от программы, независимо от языка. Unicode был принят как стандарт такими лидерами компьютерной индустрии, как Apple, HP, IBM, JustSystem, Microsoft, Oracle, SAP, Sun, Sybase, Unisys, и многими другими. Именно эта схема кодирования используется такими современными технологиями и стандартами, как, например, XML, Java, ECMAScript (JavaScript), LDAP, CORBA 3.0, WML и так далее. Именно Unicode является официальной схемой реализации стандарта ISO/IEC 10646, определяющего способы кодировки символов. Эта кодировка поддерживается во множестве операционных систем, во всех современных браузерах Интернет. Повсеместное распространение стандарта Unicode и доступность поддерживающих его средств в настоящее время являются одними из наиболее важных направлений развития индустрии программного обеспечения. Следует отметить, что для сохранения преемственности программного обеспечения Unicode включает в себя как подмножества прежние наиболее распространенные однобайтовые системы кодирования символов.

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

 

17