Смекни!
smekni.com

Курс лекций (стр. 5 из 24)

Разрядность ОЗУ определяется разрядностью шины данных процессора.

MS-DOS и Win3.1 – 16-разрядные операционные системы, Win95 – 32-разрядная.

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

ЦП генерирует последовательность импульсов, определяющих конкретный адрес в ОЗУ. Информация, найденная по этому адресу, поступает в процессор для обработки. Коды адресов передаются по параллельным проводящим линиям, образующим адресную шину. Информация передается в ЦП по шине данных. Разрядность этих шин - максимальное число бит информации, содержащихся в адресе или в элементе данных. Есть шина управления, по которой движутся управляющие сигналы (например, запрос на прерывание). Разрядность адресной шины определяет максимальное число адресов, и, следовательно, максимальный объем памяти (32-разрядная - 232 = 4*109 адресов (4 Гбайта)).

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

Каждый байт позволяет хранить 256 (28) различных комбинаций 0 и 1, которое можно интерпретировать как некоторое множество символов, зависящее от программного обеспечения компьютера. Например, с помощью одного байта можно закодировать целые десятичные числа в интервале от –127 до +127. С помощью 0 и 1 можно также закодировать и нечисловую информацию. Так, например, в специальном коде ASCII (Американский стандартный код для обмена информацией) для представления букв английского алфавита, цифр от 0 до 9 и набора знаков препинания используются десятичные числа от 0 до 127 (7 бит информации, 27 символов, букве А соответствует число 65 - 100001). Для того чтобы представить помимо английского алфавита еще и русский, требуется 8 бит информации.

Поскольку в современных вычислительных системах для представления информации используют лишь два символа 0 и 1, естественным оказалось использовать для представления чисел двоичную систему счисления. В этой системе существуют только две цифры 0 и 1. Для представления десятичной цифры 2 необходимо использовать следующий разряд (второй), она записывается как (10)2 (2 внизу - основание системы счисления). Двоичная система (как и десятичная) является позиционной, т.е. вес цифры определяется ее положением в записи числа: младшая цифра имеет вес 20, вторая справа 21, третья - 22, и т.д. Например: число с четырьмя разрядами (1101)2 = 1*20 + 0*21 + 1*22 + 1*23 = (13)10. Обратный перевод из десятичной системы в двоичную осуществляется последовательным делением на 2. В качестве остатка от деления получается очередная цифра двоичного числа, начиная с младшей. 13 делим на 2 равно 6, остаток 1 - младшая цифра, 6 делим на 2 равно 3, остаток 0, 3 делим на 2 равно 1, остаток 1, 1 делим на 2 равно 0, остаток 1.

Перевод дробной части из двоичной системы: (0.1011)2 = 1*2-1 + 0*2-2 + 1*2-3 + 1*2-4 = 1/2 + 1/8 + 1/16 = 0.5 + 0.125 + 0.0625 = (0.6875)10.

Перевод дробной части из десятичной системы осуществляется умножением на 2 (целая часть полученного числа - очередная цифра двоичного начиная с первой цифры после запятой): 0.6875*2 = 1.375 (первая цифра - 1), 0.375*2 = 0.75 (0), 0.75*2 = 1.5 (1), 0.5*2 = 1.0 (1). Получается (0.1011)2.

Точное двоичное представление возможно не для всех десятичных дробей. Так (0.4)10 = (0.0110011001100…)2. Для представления в ячейке памяти, имеющей ограниченное количество двоичных разрядов, эта дробь будет оборвана, т.е. число 0.4 будет представлено приближенно.

В области программирования используются также восьмеричная (основание - 8) и шестнадцатеричная (основание - 16) системы счисления. Смысл использования - в удобстве перехода к двоичной и наоборот.

Рассмотрим, как представляются числа в памяти компьютера. Т.к. числа различных типов могут принимать различные значения, то для их хранения требуется разное количество памяти. Память выделяется целым числом байтов. Например, для хранения целых чисел от -32768 до 32767 (215-1) требуется 2 байта (16 бит). При этом один разряд в двоичном представлении отдается на знак числа. Переменные, которые могут принимать такие значения, называются integer. Чем больше диапазон значений типа, тем больше требуется памяти (табл. для языка Паскаль).

Тип переменной Занимаемая память (байт) Диапазон значений
Char 1 Любой символ
String 256 Строка из 256 символов
String[n] 1*n Строка из n символов
Byte 1 0..255
Word 2 0..65 535
Integer 2 -32 768..32 767
Longint 4 -2 147 483 648..2 147 483 647
Real 6 2.9*10-39..1.7*1038 (11-12 цифр)
Single 4 1.5*10-45..3.4*1038 (7-8 цифр)
Double 8 5.0*10-324..1.7*10308 (15-16 цифр)
Extended 10 3.4*10-4932..1.1*104932 (19-20 цифр)

Например, под число типа "Single" отводится 4 байта (32 бита) - 32 разрядное двоичное представление. Число имеют представление с плавающей точкой. Самый старший разряд отводится под знак числа, следующие 7 - под порядок (1 - под знак порядка, 6 под значение, 26 = 64), 24 разряда - под мантиссу (224 = 1.6*107)

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

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

3. ЭТАПЫ РазработкИ программного обеспечения. ЯЗЫКИ ПРОГРАММИРОВАНИЯ.

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

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

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

Можно ввести этапы разработки программного обеспечения («цикл жизни»):

- анализ требований, предъявляемых к системе и определение спецификаций 6%

- проектирование 5%

- кодирование 7%

- тестирование (автономное 8%, комплексное 7%)

- эксплуатация и сопровождение 67%

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

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