Еремин Е.А.
"Популярные лекции об устройстве компьютера"

Примеры любопытных экспериментов

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

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

Для проверки проведем следующий эксперимент. Сложим N раз величину 1/N и из полученного результата вычтем 1. Не надо быть корифеем в математике, чтобы сообразить, что в идеале должен получиться ноль:

N * 1/N - 1 = 0
В силу конечности количества разрядов в машине, результат будет не в точности нулевой: для программы на Паскале, рассмотренной в книге, это будет очень маленькая величина - 10-11. Но нам сейчас интересно как раз не это, а то, что для значений N, равных степеням двойки, результат получается точным! Между прочим, для чисел, кратных 10, такой эффект отсутствует, что также подтверждает двоичный, а не десятичный, характер обработки данных.

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

Есть очень простые эксперименты, например, для оценки эффективности кэш предлагается его просто отключить в BIOS setup (4.6.4 - оценка эффективности применения кэш-памяти) - эффект вполне заметен. А есть гораздо более сложные, которые делают попытку ни много ни мало оценить время выполнения одной отдельно взятой инструкции процессора (3.6.2. - измерение быстродействия процессора). В одном из них (4.6.5 - экспериментальное изучение триггера) даже рассказано, как можно "из подручных средств" собрать триггер и изучить его работу.

Или еще один забавный эксперимент (часть раздела 7.10.3 - несколько экспериментов с именами файлов). Пусть в папке c:\Папка для теста есть рисунок тест.bmp. Дадим Windows команду

mspaint c:\Папка для теста\тест.bmp

Какой вы думаете будет результат?
Файл c:\Папка.bmp не найден
Почему так и как получить правильный результат можно узнать, прочитав соответствующие страницы книги.

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

Вы придумали еще несколько новых любопытных экспериментов и хотите поделиться с окружающими? Пришлите на E-mail e_eremin@yahoo.com и я готов опубликовать их здесь от вашего имени!


На главную страницу

(C) Е.А. Еремин, 2003.

Free Web Hosting