© Данная статья была опубликована в № 04/2007 журнала "Информатика" издательского дома "Первое сентября". Все права принадлежат автору и издателю и охраняются.      Главная страница "Первого сентября"
     Главная страница журнала "Информатика"
     Содержание № 04/2007
 Примерные ответы на профильные билеты


Профильная школа. Экзамены

Примерные ответы на профильные билеты

Е.А. Еремин, А.П. Шестаков

Продолжение. Начало см. в № 19–24/2006, 1/2007

Билет № 11

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

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

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

Основоположником кибернетики является американский ученый Норберт Винер (1894–1964).
В 1948 году вышла его книга “Кибернетика, или Управление и связь в животном и машине”, заложившая основы новой науки. В Советском Союзе большой вклад в развитие теоретической и прикладной кибернетики внесли академики Аксель Иванович Берг (1893–1979) и Виктор Михайлович Глушков (1923–1982).

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

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

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

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

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

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

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

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

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

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

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

В системах управления решаются четыре основных типа задач управления: 1) регулирование (стабилизация); 2) выполнение программы; 3) слежение; 4) оптимизация.

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

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

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

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

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

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

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

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

Литература

1. Информатика: Энциклопедический словарь для начинающих / Сост. Д.А. Поспелов. М.: Педагогика-Пресс, 1994, 352 с.

2. Информатика в понятиях и терминах: Книга для учащихся старших классов средней школы / Г.А. Бордовский, В.А. Извозчиков, Ю.В. Исаев, В.В. Морозов; Под ред. В.А. Извозчикова. М.: Просвещение, 1991, 208 с.

3. Семакин И., Залогова Л., Русаков С., Шестакова Л. Информатика. Учебник по базовому курсу (7–9-е классы). М.: Лаборатория базовых знаний, 1998, 464 с.

4. Шилейко А.В., Шилейко Т.И. Кибернетика без математики. М.: Энергия, 1973, 144 с.

5. Еремин Е.А., Шестаков А.П. Примерные ответы на примерные билеты // Информатика, 2002, № 13 (350), с. 9–13.

6. Могилев А.В. Информатика: Учебное пособие для студентов педагогических вузов / А.В. Могилев, Н.И. Пак, Е.К. Хеннер; Под ред. Е.К. Хеннера. 3-е изд., перераб. и доп. М.: Издательский центр “Академия”, 2004, 848 с.

7. Бешенков С.А., Кузьмина Н.В., Ракитина Е.А. Информатика. Систематический курс. 11-й класс. М.: Лаборатория Базовых Знаний, 2002, 200 с.

2. Найти на указанном диске все файлы, удовлетворяющие заданному критерию, объединить в самораспаковывающийся архив и записать на компакт-диск.

Решение

Поиск файлов по заданному критерию описан в билете № 10, вопрос 2. Поэтому перейдем ко второй части задачи.

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

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

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

В контекстном меню для архивного файла выберем Отправить DVD-RW-дисковод. Таким образом, файл будет приготовлен для записи.

Затем перейдем на диск, соответствующий этому приводу, и выберем Файл Записать файлы на компакт-диск.

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

3. Написать программу на поиск элементов массива по заданному условию. Произвести ввод и отладку программы. Проанализировать полученный результат

Пример 1. В произвольном линейном массиве найти первый по порядку элемент, равный заданному числу x.

Решение. Просматриваем массив до тех пор, пока не будет найден указанный элемент или не будет просмотрен весь массив.

QBasic

DECLARE SUB Vvod (N!, A!())

DECLARE SUB Vivod (N!, A!())

DECLARE SUB poisk (N!, A!(), x, p!)

DIM A(20), N, x AS INTEGER

RANDOMIZE TIMER - 32767

PRINT "N? ": INPUT N

CALL Vvod(N, A())

CALL Vivod(N, A())

PRINT "Что ищем? ": INPUT x

CALL poisk(N, A(), x, p)

IF p = 0 THEN

PRINT "No"

ELSE

PRINT "Номер: "; p

END IF

SUB poisk (N, A(), x, p)

i = 1

p = 0

WHILE (i <= N) AND (p = 0)

IF A(i) = x THEN p = i

i = i + 1

WEND

END SUB

SUB Vivod (N, A())

FOR i = 1 TO N

PRINT USING "####"; A(i);

NEXT i

PRINT

END SUB

SUB Vvod (N, A())

FOR i = 1 TO N

A(i) = -10 + INT(RND(1) * 20)

NEXT i

END SUB

Pascal

Program Find;

Type arr=array[1..20] of integer;

Procedure Vvod(n: byte; var a: arr);

Var i: byte;

Begin

For i := 1 to n do

A[i] := -10 + random(20)

End;

Procedure Vivod(n: byte; const a: arr);

Var i: byte;

Begin

For i := 1 to n do

Write(a[i]:4);

Writeln

End;

Procedure poisk(n: byte; const a: arr; x: integer; var p: byte);

Var i: byte;

Begin

i := 1; p := 0;

while (i <= n) and (p = 0) do begin

if a[i] = x then p := i;

i := i + 1

end;

End;

Var a: arr; x: integer; n, p: byte;

Begin

Randomize;

Write('n?'); readln(n);

Vvod(n, a);

Vivod(n, a);

Write('Что ищем?'); readln(x);

Poisk(n, a, x, p);

If p = 0 then writeln('Элемент не найден')

else writeln('номер элемента: ', p)

End.

C++

#include <iostream.h>

#include <stdlib.h>

#include <time.h>

void Vvod(int n, int a[20]);

void Vivod(int n, int a[20]);

void Poisk(int n, int a[20], int x, int &p);

void main()

{int n, a[20], x, p;

cout << "Сколько элементов в массиве? ";

cin >> n;

randomize();

Vvod(n, a);

Vivod(n, a);

cout << "Что ищем?";

cin >> x;

Poisk(n, a, x, p);

if (!p) cout << "Элемент не найден";

else cout << "номер элемента: " << p;

}

void Vvod(int n, int a[20])

{ int i;

for (i = 1; i <= n; i++)

a[i] = -10 + random(20);

}

void Vivod(int n, int a[20])

{ int i;

for (i = 1; i <= n; i++)

{cout.width(4); cout << a[i];}

}

void Poisk(int n, int a[20], int x, int &p)

{ int i;

p = 0;

for (i = 1; i <= n && !p; i++)

if (a[i] == x) p = i;

}

Пример 2. В отсортированном линейном массиве найти элемент, равный заданному числу x.

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

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

QBasic

DECLARE SUB Vvod (N!,A() AS INTEGER)

DECLARE SUB Vivod (N!,A() AS INTEGER)

DECLARE SUB Bpoisk (N!,A() AS INTEGER,x,p!)

DIM A(20) AS INTEGER

RANDOMIZE TIMER - 32767

PRINT "N? ": INPUT N

CALL Vvod(N, A())

CALL Vivod(N, A())

PRINT "Что ищем? ": INPUT x

CALL Bpoisk(N, A(), x, p)

IF p = 0 THEN

PRINT "No"

ELSE

PRINT "Номер: "; p

END IF

SUB Bpoisk (N, A() AS INTEGER, x, c)

L = 1: R = N

DO

c = INT((L + R) / 2)

IF A(c) > x THEN R = c - 1

IF A(c) < x THEN L = c + 1

LOOP WHILE (L <= R) AND (A(c) <> x)

IF A(c) <> x THEN c = 0

END SUB

SUB Vivod (N, A() AS INTEGER)

FOR i = 1 TO N

PRINT USING "####"; A(i);

NEXT i

PRINT

END SUB

SUB Vvod (N, A() AS INTEGER)

A(1) = -20 + INT(RND(1) * 20)

FOR i = 2 TO N

A(i) = A(i - 1) + INT(RND(1) * 6)

NEXT i

END SUB

Pascal

Program Find;

Type arr = array[1..20] of integer;

Procedure Vvod(n: byte; var a: arr);

Var i: byte;

Begin

A[1] := -20 + random(20);

For i := 2 to n do

A[i] := A[i - 1] + random(6)

End;

Procedure Vivod(n: byte; const a: arr);

Var i: byte;

Begin

For i := 1 to n do

Write(a[i]:4);

Writeln

End;

Procedure bpoisk(n: byte; const a: arr;

x: integer; var C: byte);

Var L,R: byte;

Begin

L := 1; R := n;

Repeat

C := (L + R) div 2;

If A[C] > x then R := c - 1;

If A[C] < x then L := c + 1

Until (L > R) or (A[c] = x)

If A[C] <> x then C := 0

End;

Var a: arr; x: integer; n, p: byte;

Begin

Randomize;

Write('n? '); readln(n);

Vvod(n, a);

Vivod(n, a);

Write('Что ищем? '); readln(x);

BPoisk(n, a, x, p);

If p = 0 then

writeln('Элемент не найден') else

writeln('номер элемента: ', p)

End.

C++

#include <iostream.h>

#include <stdlib.h>

#include <time.h>

void Vvod(int n, int a[20]);

void Vivod(int n, int a[20]);

void BPoisk(int n, int a[20], int x, int &c);

void main()

{int n, a[20], x, p;

cout << "Сколько элементов в массиве? ";

cin >> n;

randomize();

Vvod(n, a);

Vivod(n, a);

cout << " Что ищем?";

cin >> x;

BPoisk(n, a, x, p);

if (!p) cout << "Элемент не найден";

else cout << "номер элемента: " << p;

}

void Vvod(int n, int a[20])

{ int i;

a[1] = -20 + random(20);

for (i = 2; i <= n; i++)

a[i] = a[i - 1] + 1 + random(6);

}

void Vivod(int n, int a[20])

{ int i;

for (i = 1; i <= n; i++)

{cout.width(4); cout << a[i];}

cout << endl;

}

void BPoisk(int n, int a[20], int x, int &c)

{ int L, R;

L = 1; R = n;

do

{c = (L + R)/2;

if (a[c] > x) R = c - 1;

if (a[c] < x) L = c + 1;}

while (L <= R && a[c] != x);

if (a[c] != x) c = 0;

}

Варианты заданий

Написать программу на поиск элементов массива по заданному условию. Произвести ввод и отладку программы. Проанализировать полученный результат.

1. Даны действительные числа a1, a2, ..., an. Поменять местами наибольший и наименьший элементы.

2. Задана последовательность из N вещественных чисел. Определить, сколько чисел меньше K, равно K и больше K.

3. Определить количество элементов последовательности натуральных чисел, кратных числу M и заключенных в промежутке от L до N.

4. Определить, сколько процентов от всего количества элементов последовательности целых чисел составляют нечетные элементы.

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

Билет № 12

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

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

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

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

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

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

Помимо уже упомянутого семейства машин фирмы IBM третьего поколения, в историю вычислительной техники также вошли различные программно совместимые модификации компьютеров PDP, выпущенные фирмой DEC1, и семейство MSX-машин, к которому принадлежала некогда широко распространенная в нашей системе образования “Yamaha”. Современным примером общей архитектуры вычислительной техники служат заполнившие мир IBM-совместимые персональные компьютеры, успешно производимые во множестве стран.

Из сказанного выше с очевидностью следует, что с точки зрения архитектуры важны не все сведения о строении ЭВМ, а только те, которые могут хоть как-то использоваться при программировании2: то, к чему программист не имеет доступа, не в состоянии привести к неправильному исполнению команд, из которых составлена программа. Например, математический сопроцессор исполняет команды программы, связанные с обработкой вещественных чисел; следовательно, независимо от того, представлен ли он отдельной микросхемой или находится внутри чипа центрального процессора (начиная с Intel 80486), сопроцессор может рассматриваться как составная часть архитектуры IBM PC. Наоборот, кэш-память “невидима” для программы: у нее нет адреса, по которому программист мог бы к ней обращаться, — значит, кэш, строго говоря, к архитектуре не относится. Последнее утверждение можно проверить экспериментально: отключите кэш в установках BIOS, и все программы будут работать, хотя и заметно медленнее. Следовательно, даже сам факт наличия или отсутствия кэш-памяти не влияет на работоспособность программ, а значит, в архитектуру она не входит.

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

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

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

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

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

Хотя внутри процессора всегда имеются специальные ячейки (регистры) для оперативного хранения обрабатываемых данных и некоторой служебной информации, в нем сознательно не предусмотрено место для хранения программы. Для этой важной цели в компьютере служит другое устройство — память. Память предназначена для хранения как данных, так и программ их обработки: согласно фундаментальному принципу хранимой программы [3], для обоих типов информации используется единое устройство.

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

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

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

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

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

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

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

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

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

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

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

· шина данных, по которой собственно и будет передана необходимая информация; и, наконец,

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

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

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

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

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

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

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

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

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

Помимо описанной потенциальной опасности (пусть и небольшой) получить поражение электрическим током, при работе с компьютером имеются и другие неблагоприятные факторы. “Борьбе” с ними посвящен важный для эксплуатации компьютеров документ — Санитарно-эпидемиологические правила и нормативы СанПиН 2.2.2/2.4.1340-03 “Гигиенические требования к персональным электронно-вычислительным машинам и организации работы” [4]. Эти правила определяют санитарно-эпидемиологические требования к достаточно широкому кругу работ с компьютерами. Сюда входит не только интересующая нас в связи с вопросом билета организация рабочих мест с персональными ЭВМ (ПЭВМ), но и многие другие процессы. В частности, правила нормируют проектирование и изготовление ПЭВМ, используемых на производстве, в обучении, в быту, в игровых автоматах на базе ПЭВМ; проектирование, строительство и реконструкцию помещений (требования к микроклимату, уровням шума и вибрации, освещению, уровням электромагнитных полей), предназначенных для эксплуатации всех типов ПЭВМ; методы организации работы с ПЭВМ. В документе особым пунктом выделены особенности требований применительно к организации и оборудованию рабочих мест для обучающихся в общеобразовательных учреждениях.

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

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

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

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

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

Примечание. Не будем требовать от учеников заучивания приведенных ниже норм из правил [4], но познакомим с ними. “Экран видеомонитора должен находиться от глаз пользователя на расстоянии 600–700 мм, но не ближе 500 мм с учетом размеров алфавитно-цифровых знаков и символов”. “Линия взора должна быть перпендикулярна центру экрана и оптимальное ее отклонение от перпендикуляра, проходящего через центр экрана в вертикальной плоскости, не должно превышать±5 градусов, допустимое ±10 градусов”.

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

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

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

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

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

Литература

1. Таненбаум Э. Архитектура компьютера. СПб.: Питер, 2003, 704 с.

2. Цилькер Б.Я., Орлов С.А. Организация ЭВМ и систем. СПб.: Питер, 2004, 668 с.

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

4. Санитарно-эпидемиологические правила и нормативы СанПиН 2.2.2/2.4.1340-03 “Гигиенические требования к персональным электронно-вычислительным машинам и организации работы”.

Пример. Образец текста:

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

Пример. Сколькими способами можно расставить n книг на книжной полке?

Решение. Данная задача сводится к подсчету количества перестановок из n элементов. Как известно, количество перестановок из n элементов вычисляется по формуле Pn = n!

QBasic

Pascal

C++

Print "Сколько книг? "

Input n

F = 1

For i = 1 to n

F = F * i

Next i

Print F

Program Perest;

Var i, n, F: longint;

Begin Write('Сколько книг? ');

readln(n);

F := 1;

For i := 1 to n do

F := F * i;

Writeln(F)

End.

#include <iostream.h>

void main()

{int n, F = 1;

cout << "Сколько книг? ";

cin >> n;

for (int i = 1; i <= n; i++)

F = F * i;

cout << F;

}