ЭНЦИКЛОПЕДИЯ УЧИТЕЛЯ ИНФОРМАТИКИ

III. Компьютер

7. Логические элементы и узлы

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

 Логические элементы

Может показаться, что для реализации сложных логических функций требуется большое разнообразие логических элементов. Тем не менее из теории логических функций следует, что достаточно очень небольшого базового набора, чтобы с помощью различных комбинаций, его составляющих, можно было получить абсолютно произвольную функцию (такой набор называется полным1). Базисный набор может быть сформирован различными способами, но чаще всего используется классическая “тройка” логических операций И, ИЛИ, НЕ. Именно эта “тройка” применяется в книгах по логике, а также во всех языках программирования: от машинных кодов до языков высокого уровня. Обозначения логических элементов2, реализующих соответствующие операции, показаны на схемах ac. Соответствующие им таблицы истинности приведены в статье “Логические операции. Кванторы”.

Часто к указанному списку добавляют еще элемент “исключающее ИЛИ” (схема d), который позволяет сравнивать двоичные коды на совпадение. Данная операция имеет и другие практически полезные свойства, в частности, восстанавливает исходные данные в случае повторного применения, что удобно использовать, например, для временного наложения видеоизображений.

Классический базис не является единственным. Более того, на практике инженеры предпочитают альтернативный вариант на основе единственного комбинированного логического элемента И-НЕ (схема e). Несложно показать, что из элементов И-НЕ можно построить все примитивы классического базиса3.

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

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

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

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

Рассмотрим логическую схему сумматора. Для простоты ограничимся изучением работы отдельного двоичного разряда. В этом случае сумматор будет содержать три входа — бит первого слагаемого А, второго — В и перенос из предыдущего разряда Ci (обозначение происходит от английских слов Carry in — входной перенос), и два выхода — результирующая сумма S и выходной перенос Co (Carry out). Таблица истинности для полного одноразрядного сумматора имеет вид:

При построении практической схемы оказывается удобным сумматор представить в виде двух полусумматоров, первый из которых складывает разряды А и В, а второй к полученному результату прибавляет бит переноса из предыдущего разряда Ci. Таблица истинности для полусумматора значительно упрощается:

Несложный анализ таблицы показывает, что для реализации полусумматора достаточно соединить параллельно входы двух логических элементов: И и исключающее ИЛИ (см. схему a). Если скомбинировать два полусумматора, как показано на схеме b, то получится полный сумматор, способный осуществить сложение одного бита чисел с учетом возможности переноса.

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

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

Его схема приведена на рисунке, а таблица истинности имеет следующий вид:

Как видно из схемы выше, триггер собран из четырех логических элементов И-НЕ, причем два из них играют вспомогательную роль инверторов входных сигналов. Триггер имеет два входа, обозначенные на схеме R и S, а также два выхода, помеченные буквой Q, — прямой и инверсный (черта над Q у инверсного выхода означает отрицание). Триггер устроен таким образом, что на прямом и инверсном выходах сигналы всегда противоположны.

Как работает триггер? Пусть на входе R установлена 1, а на S — 0. Логические элементы D1 и D2 инвертируют эти сигналы, т.е. меняют их значения на противоположные. Поскольку на одном из входов D4 имеется 0, независимо от состояния другого входа на его выходе обязательно установится 1. Эта единица передается на вход элемента D3 и в сочетании с 1 на другом входе порождает на выходе D3 логический 0. Итак, при R = 1 и S = 0 на прямом выходе триггера устанавливается 0, а на инверсном — 1.

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

Аналогичные рассуждения для “симметричного” случая R = 0 и S = 1 приводят к тому, что, наоборот, на прямом выходе получится логическая 1, а на инверсном — 0. Триггер перейдет в единичное состояние — установится (установка по-английски Set).

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

Комбинация входных сигналов R = 1 и S = 1 приводит к тому, что в этом случае на обоих выходах триггера установится 1! Такое состояние, помимо своей логической абсурдности, еще и является неустойчивым: после снятия входных сигналов триггер случайным образом перейдет в одно из своих устойчивых состояний. Вследствие этого комбинация R = 1 и S = 1 на практике не используется и является запрещенной.

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

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

С выходов триггеров регистра сигналы могут поступать на другие цифровые устройства. Особый интерес с точки зрения принципов функционирования компьютера представляет схема анализа равенства (или неравенства) регистра нулю, которая позволяет организовать по этому признаку условный переход. Для n-разрядного двоичного регистра потребуется n-входовый элемент И (см. схему), сигналы для которого удобнее снимать с инверсных выходов триггеров. Фактически такая схема анализа выполняет комбинированную логическую операцию НЕ-И.

z = 0 — результат равен 0
z = 1 — результат не равен 0

В самом деле, пусть содержимое всех битов регистра равно 0. Тогда на входы элемента И с инверсных выходов триггеров поступают все 1 и результат z = 1. Если хотя бы один из разрядов отличен
от 0, то с его инверсного выхода снимается 0 и этого, как известно, уже достаточно, чтобы получить выходной сигнал z = 0 независимо от состояния всех остальных входов элемента И.

Заметим, что проверку знака числа реализовать еще проще — достаточно проанализировать состояние знакового (обычно старшего) разряда: если он установлен в 1, то регистр содержит отрицательное число.

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

 Логические узлы как основа устройства компьютера

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

 Методические рекомендации

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

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

Ситуация с включением описанного материала в школьный курс информатики согласно опубликованным нормативным документам выглядит, мягко говоря, непрозрачно. В Стандартах и Примерных программах, несмотря на включение всевозможных вопросов математической логики, ни логические элементы, ни логические узлы ниже уровня “процессор–память–устройства ввода/вывода” даже не упоминаются. Зато в рекомендованных Министерством образования билетах выпускного экзамена по информатике четко сформулирован вопрос “Логические элементы и схемы. Типовые логические устройства компьютера: полусумматор, сумматор, триггеры, регистры”.

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

 8. Машинная команда

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

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

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

1. Команды передачи данных (перепись), копирующие информацию из одного места в другое.

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

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

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

5. Команды ввода и вывода информации для обмена с внешними устройствами.

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

По степени сложности команд и их ассортименту процессоры разделяют на две группы — RISC и CISC (см. “Процессор”).

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

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

Команды могут быть одно-, двух- и трехадресные в зависимости от количества возможных операндов. Первые ЭВМ имели наиболее простую и наглядную трехадресную систему команд. Например: взять числа из адресов памяти А1 и А2, сложить их и сумму поместить в адрес А3. Для реализации этого сложения на одноадресной машине потребуется выполнить не одну, а три команды:

a) извлечь содержимое ячейки А1 в сумматор;

b) сложить сумматор с числом из А2;

c) записать результат из сумматора в А3.

Может показаться, что одноадресной машине для решения любой задачи потребуется втрое больше команд, чем трехадресной. На самом деле это далеко не всегда так. Попробуйте самостоятельно спланировать программу вычисления выражения Y = (X1 + X2) * X3/X4 и вы с удивлением обнаружите, что потребуется 3 трехадресных команды и всего 5 одноадресных. Таким образом, одноадресная машина в чем-то даже эффективнее, т.к. она не производит ненужной записи в память промежуточных результатов.

Ради полноты изложения следует сказать о возможности реализации безадресной (нульадресной) машины, использующей особый способ организации памяти — стек. Хотя подобная машина неудобна для человека, она легко реализуется в компьютере; в частности, именно так устроена JAVA-машина.

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

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

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

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

Эксперименты показывают5, что для процессоров типа Pentium и ниже простые инструкции (пересылки, сложение регистров и т.п.) выполняются примерно за один такт. Таким образом, тактовая частота вполне может служить приблизительной оценкой количества таких операций, выполняемых за 1 секунду. Для более поздних моделей картина существенно “размывается” из-за сложных методов одновременного выполнения нескольких операций.

 Методические рекомендации

Курс информатики основной школы

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

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

Курс информатики в старших классах

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

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

 9. Носители информации

Носителем информации в широком смысле этого слова называется физическое тело или среда для записи, хранения и воспроизведения информации. Именно в таком контексте данный термин рассматривался в разделе “Теоретические разделы информатики”. В рамках содержательной линии “Компьютер” термин “носитель информации” имеет более узкий смысл — средство хранения информации в компьютерном виде. Часто, чтобы подчеркнуть отличие, используется сочетание “машинный носитель информации”. В данной статье пойдет речь именно о таких носителях.

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

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

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

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

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

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

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

Объем информации, которая может быть сейчас сохранена на компакт-диске, составляет 650–700 Мб, на DVD — около 10 Гб. Совершенно очевидно, что быстро развивающиеся мультимедийные компьютерные приложения не удовлетворятся такими значениями и будут стимулировать увеличение объема.

 Методические рекомендации

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

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

Для того чтобы сделать урок по изучению такого материала интереснее, учителям можно порекомендовать подобрать всевозможные старые носители информации (перфокарты, перфоленты, гибкие 5- или даже 8-дюймовые дискеты и т.д.); в крайнем случае можно ограничиться их фотографиями. Кроме того, стоит следить за материалами периодических компьютерных изданий или заслуживающих доверие интернет-сайтов. Это даст возможность сопроводить изложение самыми современными примерами достижений в области хранения машинной информации.

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

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

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

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

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

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

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

· Организация обмена с внешними устройствами. Хранение информации и обеспечение доступа к ней, предоставление справок (см. “Файлы и файловая система”).

· Запуск и контроль прохождения задач пользователя.

· Контроль за нормальным функционированием оборудования. Реакция на ошибки и аварийные ситуации.

· Обеспечение возможности доступа к стандартным системным средствам (программам, драйверам, к информации о конфигурации и т.п.).

· Обеспечение общения с пользователем (см. “Пользовательский интерфейс”).

· Сохранение конфиденциальности информации в многопользовательских системах (см. раздел 8).

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

Первые операционные системы для микроЭВМ четвертого поколения (CP/M, MS-DOS, Unix) вели диалог с пользователем на экране текстового дисплея. Это был в полном смысле слова диалог, в ходе которого человек и компьютер по очереди обменивались сообщениями. Такие системы в литературе принято называть ОС с командной строкой (см. “Пользовательский интерфейс”).

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

Развитие графических возможностей дисплеев привело к коренному изменению принципов взаимодействия человека и компьютера. Командная строка была вытеснена графическим интерфейсом, когда объекты манипуляций ОС изображаются в виде небольших рисунков, а необходимые действия тем или иным образом выбираются из предлагаемого машиной списка — так называемого “меню”. При подобном методе диалога набор текста полностью отсутствует. Существенным дополнением к графическому способу ведения диалога явилось появление нового устройства ввода информации в компьютер — манипулятора “мышь”, без которого сейчас просто невозможно представить современный компьютер. Примерами операционных систем с графическим интерфейсом служат довольно похожие ОС: Mac OS, OS/2 и Windows. Семейство ОС Unix, будучи классическим образцом систем с командной строкой, в настоящее время приобрело мощные графические надстройки типа KDE, Gnome и другие, что также сделало их вполне конкурентоспособными с точки зрения удобства работы пользователей.

Состав операционных систем может быть разным для различных систем. Так, для “классических” ОС с командной строкой довольно четко выделяются три основные части:

· машинно-зависимая часть для работы с конкретными видами оборудования;

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

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

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

Состав операционных систем с графическим интерфейсом заметно шире, но в целом имеет похожее строение.

 Методические рекомендации

Куср информатики основной школы

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

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

Курс информатики в старших классах

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

Помимо повторения чисто практических навыков, крайне желательно привести знания учеников в определенную систему. Современные ОС имеют вполне определенную логику построения и, в частности, являются объектно-ориентированными системами: все манипуляции с информацией производятся над объектами, каждый из которых имеет имя, значок и свойства. Хорошее изложение объектно-ориентированного подхода к работе в среде Windows дается в книгах Ю.А. Шафрина.

11. Память внешняя

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

Часто внешние устройства имеют съемные носители информации: диски различной природы, магнитные ленты и даже карты памяти мультимедиа-устройств с фотографическими или звуковыми файлами (см. “Носители информации”). Те, кто знаком с историей вычислительной техники, вспомнят также о существовавших ранее бумажных машинных носителях — перфолентах и перфокартах. Жесткий диск, напротив, не может быть извлечен из своего защитного корпуса и заменен подобно тому, как это делается с дискетой.

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

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

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

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

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

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

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

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

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

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

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

 Методические рекомендации

Обсуждая внутреннюю и внешнюю память, часто используют множество аналогий, в том числе достаточно интересных. Тем не менее не следует ими чрезмерно увлекаться, необходимо уделять внимание хотя бы краткому освещению технической стороны проблемы. Вот что пишет об этом известный автор Ч.Петцольд7: “На вопрос о постоянстве8 и оперативности часто отвечают, используя такую аналогию: “Считайте, что оперативная память — это ваш рабочий стол, а постоянная — шкаф с папками”. И думают, что это прекрасное сравнение! Но я его таковым не считаю: создается впечатление, что архитектура компьютера срисована с обычной конторы. Правда же заключается в том, что различие между постоянной и оперативной памятью искусственно и существует лишь потому, что нам до сих пор не удалось создать накопитель данных, который был бы одновременно быстрым, объемным и способным хранить информацию в течение долгого времени”.

В качестве дополнения к мысли о некоторой искусственности разделения памяти напомним также о виртуальном способе адресации памяти, принятом в современных компьютерах, при котором внутренняя и внешняя память рассматриваются как единое целое. Если ОЗУ по какой-то причине не хватает, система копирует “наименее нужную” в данный момент область ОЗУ на диск, освобождая тем самым необходимый объем памяти.

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

· Сравнить магнитные и компакт-диски — они имеют разную природу записи.

· Сравнить накопители на жестких и гибких дисках — в отличие от винчестера, дисковод имеет сменные носители.

· Сравнить флэш-память и карту памяти фотоаппарата — карта фотоаппарата только носитель, для ее подключения компьютеру требуется специальное устройство; флэш-память совмещает носитель и устройство считывания.

· Сравнить внешнее запоминающее устройство на базе флэш-памяти (на фото внизу) и ROM BIOS на базе такой же памяти (фото ниже) — ПЗУ является частью внутренней памяти и обращение к его отдельным байтам производится по адресу; “флэшка” — внешняя память — имеет файловый доступ к информации.

 12. Память оперативная

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

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

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

В данной статье рассматривается только внутренняя память, для знакомства с внешней обратитесь к статье “Память внешняя” 2. Главным компонентом внутренней памяти является ОЗУ, но попутно будут рассмотрены и некоторые другие виды внутренней памяти.

Основная часть внутренней памяти представляет собой запоминающее устройство, в котором информацию можно без каких-либо ограничений считывать и записывать. Такой вид памяти принято называть оперативное запоминающее устройство (ОЗУ; соответствующий английский термин, который часто встречается в технической литературе, — RAM, т.е. Random Access Memory — память с произвольным доступом). В ОЗУ хранятся оперативные данные и программы (быть может, фрагменты программ) их обработки.

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

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

Другим важным видом внутренней памяти компьютера является также постоянное запоминающее устройство (ПЗУ; английское название — ROM, т.е. Read Only Memory — память только для чтения). Его содержимое можно только читать: исполняемая программа пользователя не может изменить записанную там информацию, поэтому она всегда неизменна и постоянно доступна компьютеру.

Техника формирования содержимого ПЗУ еще более разнообразна, чем ОЗУ. Самые последние разработки позволяют производить обновление информации чисто электрическим путем, причем даже не вынимая микросхему из платы (в момент выполнения процедуры перепрограммирования компьютер в традиционном понимании неработоспособен!), ПЗУ такого рода реализуется на базе флэш-памяти (flash memory).

ПЗУ играет в современных компьютерах очень важную роль. Прежде всего каждый компьютер содержит ПЗУ с программой начальной загрузки (см. “Загрузка ПО”). В этой же самой микросхеме обычно хранятся минимальные программы работы с клавиатурой и другими устройствами, поэтому ее часто называют BIOSBasic Input/Output System (данные программы можно сравнить с врожденными безусловными рефлексами у живого существа; роль приобретенных рефлексов играют загруженные в компьютер программы).

Будучи разновидностью внутренней памяти, ПЗУ адресуется теми же способами, что и ОЗУ, — оба запоминающих устройства имеют общее адресное пространство. Запись и чтение информации в обоих случаях основываются на принципе адресации, входящем в перечень базовых принципов устройства компьютера (см. “Базовые принципы устройства”).

Еще одна разновидность памяти, получившая в последнее время повсеместное распространение, — так называемая кэш-память. Кэш является вспомогательным видом памяти, и объяснение его сущности носит технический характер. Кэш “невидим” для пользователя, а данные, хранящиеся там, недоступны для прикладного программного обеспечения.

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

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

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

Говоря об устройстве ОЗУ, нельзя обойти вниманием его внутреннюю организацию. Наиболее просто была устроена память в ЭВМ первых двух поколений. Она состояла из отдельных ячеек, каждая из которых считывалась или записывалась как единое целое. Любая ячейка имела свой номер (адрес); очевидно, что адреса соседних ячеек были последовательными целыми числами. В первых ЭВМ использовались данные только одного типа — числа, причем их длина из соображений простоты, как правило, выбиралась равной длине машинной команды. Ячейка типичной ЭВМ того времени состояла из 30–40 двоичных разрядов.

В ЭВМ третьего и четвертого поколений идеология построения памяти существенно изменилась: минимальная порция информации для обмена с ОЗУ была установлена равной 8 двоичным разрядам, т.е. 1 байту. Введение байтовой структуры памяти сделало возможным обрабатывать несколько типов данных разной длины, например, символы текста — 1 байт, целые числа — 2 байта, вещественные числа обычной или двойной точности — 4 и 8 байт соответственно. Важно подчеркнуть, что минимальный объем адресуемой информации в ОЗУ составляет 1 байт. Зато для более крупных данных современный процессор способен извлечь из ОЗУ 4–8 байт одновременно.

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

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

Порядок сохранения многобайтовых числовых или мультимедийных данных может быть разным. Распространенные у нас компьютеры с Intel-совместимыми процессорами сохраняют байты в память, начиная с младшего; аналогичный способ был принят также в машинах PDP-11 и VAX. Существовали и до сих пор существуют компьютеры с противоположным порядком хранения байт, например, IBM 370, Motorola 68000 (семейство компьютеров Apple), Sun Sparc и многие RISC-процессоры. А вот система PowerPC “понимает” сразу оба формата данных.

 

Методические рекомендации

Курс информатики основной школы

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

Целесообразно также постоянно подчеркивать связь между изучаемыми видами памяти и фундаментальным принципом ее иерархии (см. “Базовые принципы устройства”). В частности, это обязательно надо делать при рассказе о кэш-памяти, а также описывая взаимодействие ОЗУ и внешней памяти.

Курс информатики в старших классах

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

 13. Пользовательский интерфейс

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

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

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

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

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

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

Операционные системы современных ПК имеют два наиболее распространенных вида программного интерфейса взаимодействия с человеком: интерфейс командной строки и графический интерфейс.

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

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

Совершенствование технологии отображения информации на экране дисплея создавало основы для появления все новых и новых интерфейсных решений. Проследим за ходом этого процесса.

Чтобы познакомиться с интерфейсом командной строкой в системе Windows, достаточно в меню Пуск выбрать пункт Выполнить и в возникающем диалоговом окне ввести cmd, что вызовет интерпретатор строковых команд ОС. Пример диалога демонстрируется на рисунке.

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

Для рядового пользователя такой интерфейс является неудобным, поскольку необходимо детально помнить синтаксис команд и внимательно набирать довольно длинные тексты. Чтобы упростить общение, был придуман меню-интерфейс, при котором машина формирует список всех возможных вариантов действия, а человек выбирает нужный (помимо удобства, такой метод общения еще исключает ошибки набора). Прекрасным примером замены набора командной строки на выбор из меню является общепризнанная программа Norton Commander и все ее многочисленные “имитации”, включая написанную для среды Windows программу Е.Рошала FAR manager.

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

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

Методические рекомендации

Курс информатики основной школы

Согласно Стандарту, понятие о командном взаимодействии требуется дать ученикам именно на этом этапе. По-видимому, до изучения базового курса школьники уже будут иметь некоторые умения по практическому использованию оконного интерфейса; в таком случае большое значение приобретает грамотная систематизация практических навыков манипуляции мышкой. Очень важно, в частности, обобщить материал о состояниях окон (нормальном, полноэкранном и минимизированном) и переходах между ними; сформировать понятие рабочего поля окна и методов его перемещения по большому рисунку или тексту и т.д. (в частности, не все пользователи грамотно пользуются возможностями полос прокрутки, для управления которыми имеется не менее трех способов). Иначе говоря, необходимо помочь ученикам осознанно применять навыки работы с графическим интерфейсом. В качестве хорошего руководства по данному вопросу можно порекомендовать многочисленные книги и учебники Ю.А. Шафрина. (Заметим, что возможный переход с коммерческого Microsoft Office на свободно распространяемый Open Office может потребовать поиска других учебников.)

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

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

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

Курс информатики в старших классах

В старших классах углубить знания школьников по рассматриваемой теме можно при рассмотрении связанных тем. В частности, в соответствующем Стандарте имеется вопрос “Многообразие операционных систем”, который дает повод поговорить об интерфейсе командной строки (Unix, Linux) и особенностях графического интерфейса в разных системах. При наличии технической возможности желательно сравнить вид и приемы работы с графическим интерфейсом в Windows и в графических оболочках типа KDE или Gnome в ОС Linux. Основной вывод, который должны сделать ученики, — различия непринципиальны и касаются второстепенных деталей.

Хорошее продолжение можно предложить, если в школе изучаются визуальные среды программирования типа Delphi или Visual Basic (а может, их бесплатные аналоги Kylix и Lazarus). Дело в том, что многие визуальные компоненты этих современных сред программирования суть элементы стандартного графического интерфейса (Form — это собственно окно, Checkbox — флажок проверки, SpeedButton — операционная кнопка панели инструментов, ListBox — список и т.д.). Изучая программирование в таких средах, можно узнать много нового о свойствах органов графического контроля. Например, далеко не все старшеклассники хорошо понимают, что такое фокус ввода или что кнопка с границей двойной толщины есть кнопка по умолчанию, которая срабатывает от нажатия клавиши ввода на клавиатуре.

Можно поговорить со школьниками о графической операционной системе как об объектно-ориентированной среде. В частности, материал по такой теме для ОС Windows можно найти в рекомендованных выше книгах Ю.А. Шафрина.

14. Процессор

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

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

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

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

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

Рассмотрим кратко функции входящих в состав процессора АЛУ и УУ.

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

АЛУ содержит в себе регистры для хранения и обработки данных. Один из важнейших регистров называется сумматором и в нем получается итоговый результат (см. “Логические элементы и узлы”).

Чтобы обеспечить автоматические вычисления по программе, процессор должен уметь выполнять еще целый ряд действий:

· извлекать из памяти очередную команду;

· расшифровывать ее и преобразовывать в последовательность необходимых действий;

· заносить в АЛУ исходные данные;

· сохранять полученный в АЛУ результат;

· обеспечивать синхронную работу всех узлов машины.

Для выполнения всех этих функций и нужно устройство управления.

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

Анализу последовательности действий, которые производит процессор при выполнении каждой команды, посвящена статья “Исполнение программы”.

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

В заключение рассмотрим основные характеристики процессора — разрядность и тактовую частоту.

Под разрядностью процессора обычно понимают число одновременно обрабатываемых им битов. Формально эта величина есть количество двоичных разрядов в регистрах процессора, и для современных моделей она равна 32. Помимо “внутренней” разрядности процессора, существует еще разрядность шины данных, которой он управляет, и разрядность шины адреса. Разрядность регистров и разрядность шины данных влияют на длину обрабатываемых данных, а вот разрядность шины адреса R определяет максимальный объем памяти, который способен адресовать процессор. Эту характеристику часто называют величиной адресного пространства, и она может быть вычислена по простой формуле 2R. Эти три характеристики разрядности не всегда совпадают (данные для таблицы взяты из книг10 и11):

Из таблицы, в частности, видно, что для 386-го процессора все три разрядности различны.

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

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

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

· RISC (Reduced Instruction Set Computer) — процессор с уменьшенным набором команд и

· CISC (Complex Instruction Set Computer) — процессор с полным набором команд.

CISC-процессоры появились раньше, для них характерен набор сложных команд неодинаковой длины с большим количеством методов адресации к памяти. Появившийся позднее RISC-подход предлагает менее сложные команды одинаковой длины с отказом от сложных методов адресации. Такое упрощение системы команд позволяет оптимизировать время их выполнения и существенно ускорить работу процессора. Что касается “отброшенных” при упрощении возможностей, то они используются относительно редко и вполне могут быть реализованы программным путем.

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

Методические рекомендации

Курс информатики основной школы

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

Курс информатики в старших классах

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

15. Устройства ввода/вывода

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

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

Устройства ввода/вывода (как и устройства внешней памяти) подсоединяются к системной магистрали при помощи контроллеров, которые управляют передачей данных от устройства на шину и в обратном направлении (см. “Контроллеры”). Каждый контроллер управляет “своим” устройством под руководством центрального процессора (ЦП). Для ведения диалога между процессором и внешними устройствами последние чаще всего отображаются в особое адресное пространство: его ячейки принято называть портами; каждому устройству обычно соответствует несколько портов с последовательными адресами. В MS-DOS настройка адресов портов являлась важной частью процедуры подключения устройств, в более поздних ОС распределение портов по адресам выполняется автоматически.

В настоящее время выделяют три режима обмена информацией:

· программно-управляемый ввод/вывод;

· обмен с устройствами по прерываниям;

· прямой доступ к памяти (ПДП).

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

Суть обмена по прерываниям заключается в том, что УВВ сами требуют внимания процессора в том случае, когда оно необходимо. Например, клавиатура оповещает процессор, если была нажата или отпущена клавиша; все остальное время процессор выполняет программу, “не отвлекаясь” на клавиатуру.

В последнее время необходимость понимания механизма работы прерываний сильно возросла в связи с возникновением идеологии программирования по событиям. Она лежит в основе последних систем типа Visual Basic (базовый язык Microsoft Office) или Delphi. Приведем примеры нескольких событий, на которые программа может реагировать: сдвинута мышь, нажата (или отпущена) ее кнопка, нажата клавиша , выбран тот или иной пункт меню, открыто новое окно на экране и многие-многие другие.

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

Для лучшего понимания принципа ПДП предлагаем сопоставить его упрощенную схему, представленную в книге В.Лина12, с шинной схемой ПК, приведенной в статье “Функциональное устройство”.

Материал о режимах ввода/вывода может быть сведен в следующую компактную, но весьма информативную таблицу:

*В процессе обмена контроллер ПДП взаимодействует с центральным процессором.

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

Методические рекомендации

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

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

Второй встречающийся на практике “перекос” заключается в излишнем увлечении пользовательским или, наоборот, чрезмерно абстрактным подходом к материалу курса. Порой это приводит к тому, что ученикам дается откровенно неправильное представление о процессах ввода/вывода в компьютере. Например, им сообщается, что клавиатура и отображающий вводимый текст дисплей связаны напрямую, т.е. как только мы нажимаем клавишу, ее код тут же поступает на монитор и отображается. Вот, например, цитата из статьи в центральном методическом журнале, которая рекомендует описывать ввод данных с клавиатуры следующим образом: “Клавиатура -> контроллер клавиатуры -> системная магистраль -> оперативная память -> системная магистраль -> центральный процессор -> системная магистраль -> видеоадаптер -> дисплей”.

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

Рассматривая на уроках устройства ввода/вывода, можно придумать множество интересных заданий и вопросов. Возможные примеры приведены ниже.

· Является ли устройство чтения перфокарт устройством ввода? (Правильнее ответить нет, поскольку лучше трактовать перфокарты как внешнюю память на бумажном носителе.)

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

· Как вы представляете себе процессы, происходящие в компьютере при наборе на клавиатуре слова?

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

· Почему у ЖК-мониторов нет того излучения, от которого приходится защищаться в мониторах на базе ЭЛТ? (В них отсутствует обегающий экран электронный луч, который при торможении излучает свою энергию.)

· Какое компьютерное устройство считывает штрих-коды товаров в магазине? (Ручной сканер.)

16. Файлы и файловая система

Важным отличительным свойством хранения данных на внешних носителях является наличие файловой системы (см. “Носители информации” и “Память внешняя”). Благодаря такой организации пользователь получает возможность ссылаться на программы и данные не путем указания наборов из нескольких числовых координат, но гораздо более удобным способом — по имени. Реальных преимуществ от использования наглядной и практичной файловой концепции даже больше: “Представление пользователя о файловой системе как об иерархически организованном множестве информационных объектов имеет мало общего с порядком хранения файлов на диске. Файл, имеющий образ цельного, непрерывающегося набора байт, на самом деле очень часто разбросан “кусочками” по всему диску, причем это разбиение никак не связано с логической структурой файла…”15.

Чтением и записью файлов системы занимается операционная система (см. “Операционная система”). “Программа, скрывающая истину об аппаратном обеспечении и представляющая простой список поименованных файлов, которые можно читать и записывать, и является операционной системой. …Абстракция, предлагаемая операционной системой, намного проще и удобнее в обращении, чем то, что может предложить нам непосредственно основное оборудование”16. Таким образом, принципы организации файловой системы существенно зависят от ОС. Правда, если рассмотреть проблему поглубже, то окажется, что одна и та же ОС может использовать несколько разных файловых систем (FAT и NTFS в Windows, Ext3 и Reizer в Linux и т.д.). Более того, развитая ОС содержит средства доступа к файлам других систем (например, в Linux служба Samba обеспечивает доступ к файлам Windows).

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

В зависимости от содержания информации различают файлы с программами (исполняемые) и с данными (в современной терминологии их часто называют документами). Программы создают и обрабатывают документы, поэтому в современных системах между ними существуют определенные ассоциации. Так файлы odt являются продуктом текстового редактора Open Office Writer, а ppt — презентационной системы MS PowerPoint. Система имеет средства для настройки ассоциаций между документами и программами.

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

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

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

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

На рисунке a показана структура файловых систем с единым каталогом (CP/M, RT-11
и др.), на рисунке b — иерархическая структура каталогов MS-DOS (версий 2.0 и выше) и Windows, а на рисунке c — иерархия ОС семейства Unix. Принципиальное отличие двух последних рисунков заключается в том, что в системах Microsoft всегда имеет место однозначная связь между каталогом и файлом, а в Unix это необязательно: некоторые файлы (на рисунке c они закрашены серым цветом) могут одновременно принадлежать к нескольким каталогам и даже в них по-разному называться! Заметим, что граф, изображенный на рисунке b, в математике принято называть деревом, а на рисунке cсетью (см. “Графические модели”).

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

Концепция файловой системы зависит и от архитектуры ПК, в частности, принятая на компьютерах Apple организация файлов отличается от привычной нам на IBM PC.

В заключение отметим, что хотя для пользователя файл является единой конструкцией, сама ОС в процессе хранения делит его на отдельные логические блоки (кластеры). Причина чисто технологическая: системе слишком “обременительно” отслеживать состояние каждого отдельного сектора, т.к. их на современных носителях слишком много. На дискете кластер состоит из 1–2 секторов, зато на жестком диске большого объема это количество может быть гораздо больше, например, 16 секторов для 100 Гб диска (см. “Память внешняя”). Наряду с оптимизацией файловой системы применение крупных блоков записи одновременно приносит и отрицательные свойства. В частности, при “кластерном” методе сохранения небольшие файлы занимают лишь малую часть кластера, а оставшееся в блоке дисковое пространство просто не используется.

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

Методические рекомендации

Курс информатики основной школы

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

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

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

Курс информатики в старших классах

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

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

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

17. Функциональное устройство

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

Часто применяемое в учебниках описание компьютера с конструктивной точки зрения (системный блок, клавиатура, монитор и т.д.) годится только для практических занятий. С позиций теории месторасположение узла в том или ином корпусе не так существенно хотя бы потому, что разные машины могут проектироваться по-разному. Распространенные не так давно бытовые и школьные компьютеры (“БК”, “Спектрум”, “Корвет”, “УКНЦ” и т.п.) имели клавиатуру, которая монтировалась на крышке системного блока, а не являлась самостоятельным устройством. А в семействе Macintosh до сих пор монитор и системный блок образуют единое целое. Отличное от настольного ПК конструктивное оформление имеют и портативные компьютеры — ноутбуки и тем более “наладонные” КПК. Но в то же время, несмотря на все эти различия, функциональная структура всех перечисленных моделей имеет много общего. Поэтому содержанием теоретического курса должны стать именно функциональные блоки — процессор, память всевозможных видов, накопители на дисках различной природы и т.д. — вне зависимости от того, где и на каких платах они смонтированы сегодня или будут устанавливаться завтра.

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

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

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

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

· устройство, обеспечивающее организацию выполнения программы обработки информации и согласованное взаимодействие всех узлов машины в ходе этого процесса, — устройство управления (УУ); АЛУ и УУ в настоящее время удается выполнить в виде единой интегральной схемы, которая называется микропроцессором;

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

· разнообразные устройства, способные преобразовывать информацию в форму, доступную компьютеру, — устройства ввода;

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

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

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

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

Такая структура вела к неэффективному функционированию машины, особенно когда программа в ходе своей работы требовала частого обращения к внешним устройствам. Для преодоления данной трудности процессор следовало освободить от наиболее медленных функций ввода/вывода и передать их специализированным процессорам обмена — контроллерам. Идеи применения специализированных интеллектуальных схем для разгрузки центрального процессора были заложены в большие машины коллективного пользования IBM-360 (в СССР данное семейство машин было известно в качестве “аналога” под именем ЕС ЭВМ). В четвертом поколении появилась технологическая возможность собирать схемы управления в едином кристалле, и появились микроконтроллеры (см. “Контроллеры”).

Другой особенностью функциональной организации современных ЭВМ является наличие информационной магистрали (шины — см. “Шины и интерфейсы”), которая служит для передачи информации от одних узлов машины к другим (см. рисунок b). Благодаря магистральной структуре конфигурация ПК может быть легко расширена путем присоединения к шине новых устройств. Еще одним новшеством шинной архитектуры является возможность обмена данными между отдельными устройствами без непосредственного участия центрального процессора (см. “Устройства ввода/вывода”).

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

Методические рекомендации

Курс информатики основной школы

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

Функциональное устройство компьютера не следует смешивать с конструктивным, которое рассматривается в теме “Соединение блоков и устройств компьютера, других средств ИКТ”. В последнем случае как раз и следует говорить о системном блоке и устройствах, подключающихся к нему с помощью тех или иных разъемов и кабелей. В отличие от функционального устройства это чисто практический материал, определяемый конфигурацией имеющихся в школе компьютеров.

Курс информатики в старших классах

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

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

· Процессор выставляет на шину адреса необходимый адрес ячейки памяти.

· Процессор передает по шине управления необходимые сигналы, обеспечивающие чтение из ОЗУ.

· ОЗУ принимает управляющие сигналы процессора и в ответ считывает с соответствующей шины адрес, находит его содержимое и выставляет на шину данных.

· ОЗУ по соответствующим линиям шины управления сообщает процессору о готовности данных.

· Процессор, наконец, считывает с шины необходимую информацию.

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

18. Шины и интерфейсы

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

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

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

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

Хотя определенные выше понятия имеют некоторую тонкую смысловую разницу, четко разграничить области их применения достаточно сложно; поэтому в компьютерной литературе между ними часто не делается большого различия: например, фразы “устройство подсоединяется через USB-интерфейс” и “устройство подсоединяется к USB-шине” с практической точки зрения означают одно и то же.

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

Интерфейсы отчетливо разграничиваются на два больших класса — параллельный и последовательный. В первом случае кабель имеет большое количество информационных линий (обычно их число кратно 8, что соответствует целому числу байт) и биты передаются по ним одновременно. Во втором — линия одна и биты данных передаются последовательно друг за другом. Каждый способ имеет свои преимущества. В частности, параллельный интерфейс по определению быстрее, но из-за паразитного взаимодействия между проводами вынужден использовать гораздо более короткий кабель. Достижения технологий передачи данных по последовательному интерфейсу настолько впечатляющи, что в настоящее время происходит очень быстрый процесс замены жестких дисков с параллельным интерфейсом ATA на винчестеры с последовательным интерфейсом SATA (Serial ATA).

Шины современного компьютера весьма разнообразны и имеют богатую историю. Назовем наиболее распространенные: PCI (Peripheral Component Interconnect), AGP (Accelerated Graphic Port), ISA (Industry Standard Architecture), ATA (AT Attachment for Disk Drivers), SCSI (Small Computer System Interface), USB (Universal Serial Bus), FireWire (в дословном переводе “огненный провод”) и другие. Для более глубокого знакомства с конкретными шинами следует обратиться к технической литературе, например, известной энциклопедии М.Гука19.

Методические рекомендации

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


1 Андреева Е.В., Босова Л.Л., Фалина И.Н. Математические основы информатики. М.: БИНОМ, Лаборатория Знаний, 2005, 328 с.

2 Ямпольский В.С. Основы автоматики и электронно-вычислительной техники. М.: Просвещение, 1991, 223 с.

3 Токхейм Р. Основы цифровой электроники. М.: Мир, 1988, 392.

4 Информатика. Задачник-практикум в 2 т. / Под ред.
И.Г. Семакина, Е.К. Хеннера: Т. 1. М.: Лаборатория Базовых Знаний, 1999.

5 См., например, эксперименты 3.6.2 в: Еремин Е.А. Популярные лекции об устройстве компьютера. СПб.: BHV-Петербург, 2003, 272 с.

6 Подробному описанию учебных моделей посвящен сайт http://educomp.org.ru.

7 Петцольд Ч. Код. М.: Русская Редакция, 2001, 512 с.

8 Автор цитаты использует термин “постоянная” память вместо “внешняя”.

9 Термин “процессор” еще часто используют при характеристике программного обеспечения — текстовый процессор, табличный процессор и т.п.; мы не будем касаться этого значения в рамках данной статьи.

10 Гук М.Ю. Процессоры Intel: от 8086 до Pentium II. СПб.: Питер, 1997, 224 с.

11 Шагурин И.И., Бердышев Е.М. Процессоры семейства Intel P6. Архитектура, программирование, интерфейс. М.: Горячая линия — Телеком, 2000, 248 с.

12 Лин В. PDP-11 и VAX-11. Архитектура ЭВМ и программирование на языке ассемблера. М.: Радио и связь, 1989, 320 с.

13 Например, в учебнике: Максимов Н.В., Партыка Т.Л., Попов И.И. Архитектура ЭВМ и вычислительных систем. М.: ФОРУМ: ИНФРА-М, 2005, 512 с. — этому описанию отведено около 40 страниц.

14 Читатели газеты могут обратиться за подробностями к статье Е.А. Еремина “От нажатия клавиши до сохранения данных в ОЗУ”. Информатика, 2005, № 20–22.

15 Олифер В.Г., Олифер Н.А. Сетевые операционные системы. СПб.: Питер, 2002, 544 с.

16 Таненбаум Э. Современные операционные системы. СПб.: Питер, 2004, 1040 с.

17 Беркс А., Голдстейн Г., Нейман Дж. Предварительное рассмотрение логической конструкции электронного вычислительного устройства // Кибернетический сборник. М.: Мир, 1964. Вып. 9.

18 Математический энциклопедический словарь / Гл. ред. Ю.В. Прохоров. М.: Советская Энциклопедия, 1988, 847 с.

19 Гук М. Аппаратные средства IBM PC. Энциклопедия. СПб.: Питер, 2003, 923.

Продолжение