Мой тест по сетям

1. Каковы основные различия между командами man и info? Каковы преимущества каждой из них?

Различия выражены в способе отображения информации: man – текстовое представление, info – гипертекстовое. Info появилась гораздо позже в Linux, man – унаследованная команда из Unix. Info более удобно представляет информацию. Man имеет большую базу описанных команд и доступна во всех ОС произошедших из Unix.

2. Как в настоящее время протекает разработка ядра Linux? Каковы наиболее актуальные вопросы? Какие организации играют в этом процессе ключевую роль? Кто руководит проектом?

В отличие от коммерческих систем, таких как Microsoft Windows или Mac OS X, Linux не имеет географического центра разработки. Нет и организации, которая владела бы этой системой; нет даже единого координационного центра. Программы для Linux — результат работы тысяч проектов. Некоторые из этих проектов централизованы, некоторые сосредоточены в фирмах. Многие проекты объединяют хакеров со всего света, которые знакомы только по переписке. Создать свой проект или присоединиться к уже существующему может любой и, в случае успеха, результаты работы станут известны миллионам пользователей. Пользователи принимают участие в тестировании свободных программ, общаются с разработчиками напрямую, что позволяет быстро находить и исправлять ошибки и реализовывать новые возможности. Linux является UNIX-совместимой, однако основывается на собственном исходном коде

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

Конечно, такая высокая эффективность разработки не могла не заинтересовать крупные фирмы, которые стали открывать свои проекты. Так появились Mozilla (Netscape, AOL), OpenOffice.org (ORACLE), свободный клон Interbase (Borland) — Firebird, SAP DB (SAP). IBM способствовала переносу GNU/Linux на свои мейнфреймы.

С другой стороны, открытый код значительно снижает себестоимость разработки закрытых систем для GNU/Linux и позволяет снизить цену решения для пользователя. Вот почему Linux стала платформой, часто рекомендуемой для таких продуктов, как СУБД Oracle, DB2, Informix, SyBase, SAP R3, Domino.

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

Текущее ядро Linux версии 2.6.34. Ряд новшеств и изменений затронул поддерживаемые ядром файловые системы. Так, например, представлены две новые ФС: Ceph — распределенная сетевая ФС, легко масштабируемая с гигабайтов данных до петабайтов и выше, способная выдерживать огромную нагрузку (одновременный доступ к одному файлу от десятков тысяч клиентов); LogFS — ФС для устройств хранения с flash-памятью, обеспечивающая эффективную масштабируемость на больших устройствах и пока находящаяся в статусе экспериментальной. Кроме того, были представлены улучшения в файловой системе btrfs (например, новая userspace-утилита «btrfs» заменила старый набор инструментов).

В ядре появился «vhost net» — бэкенд уровня ядра для сетевого virtio, созданный с целью уменьшить накладные расходы (overhead) виртуализации в virtio-net. Также можно отметить появление в Linux 2.6.34 поддержки асинхронного suspend/resume (уход в ждущий режим и возвращение к работе), что заметно уменьшает время, уходящее на эти операции. Теперь асинхронный suspend/resume по умолчанию включен для устройств PCI, USB и SCSI. Кроме того, в ядре представлена поддержка возможности переключения GPU, которая будет полезна обладателям лаптопов с несколькими GPU. Впрочем, после переключения потребуется перезагрузка X-сервера.

3. В чем разница между жесткими и символическими ссылками? Когда предпочтительнее использовать ссылки того или иного типа?

Свойства жестких ссылок

ü Жесткие ссылки можно создавать только на существующие файлы. Файл полностью удаляется после того как последняя из жестких ссылок удалена.

ü Ссылка и файл, на который она ссылается, обязаны быть на одном физическом устройстве. Жесткие ссылки невозможно создавать на разных файловых системах или разделах.

ü Нет видимых различий между ссылкой и именем файла.

ü Жесткая ссылка ссылается на файл по номеру дескриптора файла. Только обладая правами пользователя root, можно создать жесткую ссылку на директорию.

Свойства символических ссылок

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

ü Символическая ссылка, в отличие от жесткой, ссылается по имени и пути, а не по номеру дескриптора файла.

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

ü Размер символической ссылки зависит от длинны имени объекта, на который она ссылается.

4. Опишите последовательность действий, необходимых для инсталляции на одном компьютере операционных систем Linux и Windows ХР/2000.

1. Устанавливаем Windows ХР/2000

a. При выборе раздела, создаем раздел Windows и оставляем место для Linux

2. Устанавливаем Linux.

a. В процессе установки указываем неиспользованную область на диске

b. Указываем что будет использываться менеджер загрузки (GRUB – например)

3. Все после перезагрузки можно выбрать нужную ОС

5. В чем разница между жесткими и символическими ссылками? Когда предпочтительнее использовать ссылки того или иного типа?

См. вопрос 3.

6. При инсталляции Linux важно разбить жесткий диск на разделы таким образом, чтобы для каждой файловой системы (/var,/usr и т.д.) было достаточно свободного места. Предположим, в дистрибутиве "Foobar Linux" используются следующие установки:

/ 100 Мбайт

/var 50 Мбайт

/boot 10 Мбайт

<раздел подкачки> 128 Мбайт

/usr оставшееся свободное место

Какие проблемы при такой конфигурации могут возникнуть на интенсивно эксплуатируемом сервере?

Раздел /var с большой вероятностью будет переполнен так как в нем по умолчанию хранятся логии системы (которые при интенсивной эксплуатации будут быстро наполнятся) и базы данных (например MySQL).

7. Почему рекомендуется помещать некоторые разделы (в частности, /var,/home и раздел подкачки) на отдельные диски, чтобы отделить их от файлов данных и программ?

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

8. Напишите сценарий, который находит все жесткие ссылки в системе.

Ls / -l –R | grep –v ‘^………. 1 ’

Выводит список всех жестких ссылок в системе. А точнее, показывает все файлы на которые больше одной ссылке в ФС. Пример вывода:

clip_image002

9. Какими командами реализуются перечисленные ниже действия?

A) Предоставьте владельцу файла README право чтения/записи, а остальным пользователям - только право чтения.

Б) Установите для файла бит setuid, не меняя текущие права доступа (и даже не просматривая их).

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

Г) Поменяйте группу файла shared с "user" на "friends".

А) chmod 644 README

Б) chmod a+s имя файла

В) ls [имя каталога] -lrt

Г) chgrp friends shared

10. Как определить стандартную группу, в которую входит пользователь? Как изменить ее?

Определяем группу пользователя командой groups имя пользователя

Изменяем вхождения в группы командами:

Добавить пользователя в группу - addgroup [имя пользователя] [имя группы]

Удалить пользователя из группы – delgroup [имя пользователя] [имя группы]

11. Каково назначение файла скрытых паролей?

Механизм устаревания паролей ограничивает срок, в течение которого пароль пользователя остается корректным. Этот механизм может быть реализован на общесистемном уровне посредством файла /etc/login.defs либо для отдельных пользователей посредством файла /etc/shadow. Последний называют файлом скрытых паролей. Для каждого пользователя он содержит запись, в которой указаны хешированный пароль и сведения о сроке его действия. По умолчанию этот файл может не существовать.

Файл скрытых паролей по умолчанию создается в ходе инсталляции системы, что существенно повышает ее безопасность, и вот почему. Дело в том, что все хешированные пароли переносятся из файла /etc/passwd в файл /etc/shadow, доступ к которому разрешен только суперпользователю и только для чтения. Кроме того, появляется возможность задать предельный срок действия каждого пароля. Файл /etc/ passwd открыт для чтения, а значит, и для копирования. Если файл скрытых паролей не используется, все хешированные пароли находятся в файле /etc/passwd, и любой пользователь может попытаться “взломать” его с помощью утилиты Crack.

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

Чтобы создавать нового пользователя вручную, выполните следующее:

1. Отредактируйте файл паролей /etc/passwd редактором vipw и добавьте строку для нового пользователя. Будьте внимательным с синтаксисом. Не редактируйте каким попало редактором! vipw блокирует файл, так, чтобы другие команды не пробовали модифицировать его в то же самое время. Вы должны записать в поле пароля `* ' так, чтобы было невозможно войти.

2. Точно так же редактируйте /etc/group редактором vigr, если надо создать новую группу

3. Создайте основной каталог пользователя командой mkdir.

4. Скопируйте файлы из /etc/skel в домашний каталог нового пользователя.

5. Смените владельца и права доступа для свежесозданных файлов и каталогов командами chown и chmod . Опция -R весьма полезна. Правильные разрешения немного разные для разных систем, но обычно следующие команды делают то, что надо:
cd /home/newusername
chown -R username.group .
chmod -R go=u,go-w .
chmod go= .

6. Установите пароль командой passwd.

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

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

A) поиск записей с идентификатором пользователя, равным нулю;

Б) поиск записей без пароля (требуется файл /etc/shadow);

B) поиск группы записей с одинаковыми идентификаторами пользователей;

Г) поиск записей с одинаковыми регистрационными именами;

Д) поиск записей, для которых не установлен срок действия (требуется файл /etc/shadow).

А) awk '{FS=":" ; print $3" - "$1}' /etc/passwd | grep '^0'

Б) awk '{FS=":" ; print $2" - "$1}' /etc/shadow | grep '^*'

В)

#!/bin/sh

mm=""

for acct in $(awk -F: '{FS=":" ; print $1}' /etc/passwd | sort -n)

do

if [ "$acct" = "$mm" ]; then

echo "Double user name $acct"

fi

mm="$acct"

done

Г)

#!/bin/sh

mm=""

for acct in $(awk -F: '{FS=":" ; print $5}' /etc/passwd | sort -n)

do

if [ "$acct" = "$mm" ]; then

echo "Double full user name $acct"

fi

mm="$acct"

done

Д) awk '{FS=":" ; print $4" - "$1}' /etc/shadow | grep '^0'

Красным отметил важные места скриптов (соответствующие структуре обрабатываемых файлов).

14. Какие разъемные соединения используются в каждой из спецификаций SCSI ? Помимо различий в разъемах, что еще нужно учитывать при работе со SCSI -устройствами разных типов?

Существует три стандарта SCSI:

SE (англ. single-ended) - асимметричный SCSI, для передачи каждого сигнала используется отдельный проводник.

LVD (англ. low-voltage-differential) — интерфейс дифференциальной шины низкого напряжения, сигналы положительной и отрицательной полярности идут по разным физическим проводам - витой паре. На один сигнал приходится по одной витой паре проводников. Используемое напряжение при передаче сигналов ±1,8 В.

HVD (англ. high-voltage-differential) — интерфейс дифференциальной шины высокого напряжения, отличается от LVD повышенным напряжением и специальными приемопередатчиками.

Первый стандарт SCSI имеет 50-контактный неэкранированный разъем для внутрисистемных соединений и аналогичный экранированный разъем типа Centronics (Alternative 2) для внешних подключений. Передача сигналов осуществляется 50 контактным кабелем типа - A-50 на 8 разрядной (битной) шине.

В стандарте SCSI-2 для 8 битной шины предусматривался кабель типа A, который как и в SCSI-1 поддерживал 50-контактными разъемами типа D с уменьшенным шагом выводов (Alternative 1). Разъемы типа Centronics (Alternative 2) в SCSI-2 построенны 8 и 16 битной шине. Передача информации осуществляется по 68-контактным кабелям типа - A-68 и P-68(Wide). Для 32 битной версии шины был предусмотрен тип кабеля B, который должен был параллельно подключаться одновременно с кабелем A в одно устройство. Однако кабель B не получил широкого признания и из стандарта SCSI-3 исключен.

В стандарте SCSI-3 кабеля A-68 и P-68 поддерживались экранированными, либо неэкранированными разъемами типа D. Кабеля в SCSI-3 снабжены фиксаторами-защелками, а не проволочными кольцами, как разъемы Centronics. Начиная с этой версии SCSI в массивах накопителей используется 80-контактный разъем, называемый Alternative 4. Накопители с таким разъемом поддерживают "горячее" подключение устройств, т.е. устройства SCSI можно подключать и отключать при включенном питании.

Обзор интерфейсов SCSI

Наименование

Разрядность шины

Частота шины

Пропускная способность

Максимальная длина кабеля

Максимальное количество устройств

SCSI

8 бит

5 МГц

5 МБайт/сек

6 м

8

Fast SCSI

8 бит

10 МГц

10 МБайт/сек

1,5-3 м

8

Wide SCSI

16 бит

10 МГц

20 МБайт/сек

1,5-3 м

16

Ultra SCSI

8 бит

20 МГц

20 МБайт/сек

1,5-3 м

5-8

Ultra Wide SCSI

16 бит

20 МГц

40 МБайт/сек

1,5-3 м

5-8

Ultra2 SCSI

8 бит

40 МГц

40 МБайт/сек

12 м

8

Ultra2 Wide SCSI

16 бит

40 МГц

80 МБайт/сек

12 м

16

Ultra3 SCSI

16 бит

40 МГц DDR

160 МБайт/сек

12 м

16

Ultra-320 SCSI

16 бит

80 МГц DDR

320 МБайт/сек

12 м

16

Ultra-640 SCSI

16 бит

160 МГц DDR

640 МБайт/сек

15. В чем разница между форматированием диска и разбивкой его на разделы? В чем разница между разбивкой на разделы и созданием файловых систем?

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

При форматировании диска, выбранный раздел размечается в соответствии с форматом файловой системы и режима форматирования.

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

A) диск будет служить для хранения домашних каталогов пользователей;

Б) диск будет использоваться в качестве области подкачки;

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

Г) на диске будет храниться база данных MySQL.InnoDB.

А) mkfs -t ext2 /dev/hdb1

Б) mkfs -t swap /dev/hdb1

В) mke2fs -t ext2 –f 1024 –N 1000000 /dev/hdb1

Г) mke2fs -t ext2 –f 65534–N 10000 /dev/hdb1

Где ключ –f определяет размер блока ФС, а ключ –N определяет количество inodes (максимальное число файлов в ФС). Хочу отметить, что в первых двух случаях значения по умолчанию вышеуказанных параметров вполне удовлетворительны.

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

Контроль доступа к crontab осуществляется через специальные файлы.

Доступ пользователя к crontab разрешен, если:

ü имя пользователя указано в файле /etc/cron.d/cron.allow.

ü файл /etc/cron.d/cron.allow не существует и имя пользователя не указано в файле /etc/cron.d/cron.deny.

Доступ пользователя к crontab не разрешен, если:

ü файл /etc/cron.d/cron.allow существует и имя пользователя в нем не указано.

ü файл /etc/cron.d/cron.allow не существует и имя пользователя указано в файле /etc/cron.d/cron.deny.

ü ни один из упомянутых файлов не существует и пользователь не получил привилегию solaris.jobs.user через роль.

Также отмечу, что правила разрешения и запрещения выполнения заданий применимы к пользователю root только если существуют файлы allow/deny.

В файлах allow/deny надо задавать по одному имени пользователя в строке.

18. Придумайте три задания, которые требуется запускать регулярно. Составьте crontab-запиеи для каждого задания и укажите, в какие файлы их необходимо поместить.

Запишем в файл: /etc/crontab

Пример 1: Удаление core-файлов

Это задание удаляет файлы core каждый день в 3:15 утра:

15 3 * * 1-5 find $HOME -name core 2>/dev/null | xargs rm -f

Пример 2: Посылка позвдравления с днем рождения

0 12 14 2 * mailx john%Happy Birthday!%Time for lunch.

Пример 3: Запуск каждые пять минут скрипта проверки доступа к интернет

*/5 * * * * root /usr/local/etc/vs/modem/vsmodemc

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

A) Научно-исследовательский центр с 50 компьютерами. На каждом компьютере хранится множество важных и часто изменяемых данных.

Б) Небольшая компания, занимающаяся выпуском программного обеспечения и располагающая 10 компьютерами. Исходные коды хранятся на сервере, емкость жесткого диска которого составляет 500 Гбайт. Разрабатываемые исходные коды постоянно меняются в течении дня, а домашние каталоги пользователей меняются редко. Стоимость системы резервного копирования не играет особой роли, зато крайне важна безопасность данных.

B) Домашняя сеть с двумя компьютерами. Здесь основной фактор - это цена.

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

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

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

20. Сеть 134.122.0.0/16 разбита на подсети с длиной маски 19.

A) Сколько будет подсетей /19? Перечислите их. Каковы их сетевые маски?

Б) Сколько хостов может быть в каждой подсети?

B) Определите, какой подсети принадлежит адрес 134.122.67.124?

Г) Каким будет широковещательный адрес каждой подсети?

А) Можно выделить 8 подсетей:

134.122.0.0/19; 134.122.32.0/19; 134.122.64.0/19; 134.122.96.0/19;

134.122.128.0/19; 134.122.160.0/19; 134.122.192.0/19; 134.122.224.0/19;

Маска 255.255.224.0

Б) Количество хостов :

232-19 – 2 = 8190 (адресов)

Примечание: два адреса – адрес сети и широковещательный адрес.

В) 134.122.67.124 - сеть 134.122.64.0/19.

Г) 134.122.31.255; 134.122.63.255; 134.122.95.255; 134.122.127.255;

134.122.159.255; 134.122.191.255; 134.122.223.255; 134.122.255.255;

21. С хоста 128.138.2.4 в сети 128.138.2.0/24 нужно послать пакет хосту 128.138.129.12 в сети 128.138.129.0/24. Предполагается, что:

-хост 128.138.2.4 имеет стандартный шлюз 128.138.2.1;

-хост 128.138.2.4 только что загрузился и еще не отправлял и не принимал пакеты;

-все остальные компьютеры сети работают уже долгое время;

-маршрутизатор 128.138.2.1 имеет прямое соединение с хостом 128.138.129.1, который является шлюзом в подсеть 128.138.129.0/24.

A) Перечислите все этапы отправки пакета. Покажите исходные и целевые MAC- и IP-адреса передаваемых пакетов.

Б) А не изменился бы ответ, если бы сеть имела адрес 128.138.0.0/16? Аргументируйте свой ответ.

B) Если бы сеть 128.138.2.0 имела маску /26, а не /24, изменился бы ответ? Если да, то каким бы он был?

А)

1) Выполняется запрос на передачу пакета узлу 128.138.129.12

2) Маска подсети целевого IP не совпадает с текущей маской подсети – значит, необходима маршрутизация. Используя таблицу маршрутизации согласно приоритетов пакет передается на маршрутизатор.

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

4) Пакет передается на маршрутизатор.

5) Маршрутизатор 128.138.2.1, согласно таблице маршрутизации, передает пакет на маршрутизатор 128.138.129.1.

6) Маршрутизатор 128.138.129.1 доставляет пакет целевому компьютеру 128.138.129.12.

Б) Да. Маршрутизация не была бы выполнена, так как IP 128.138.129.12 оказался бы в той же подсети что и 128.138.2.4.

В) Нет.

Цифровая обработка сигналлов

В настоящее время методы цифровой обработки сигналов, digital signal processing (DSP) находят все более широкое применение, вытесняя постепенно методы, основанные на аналоговой обработке. В данном курсе рассматриваются основы теории, и наиболее употребляемые алгоритмы обработки.

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

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

Сигнал, описываемый функцией одной переменной, называется одномерным, а сигнал, описываемый функцией clip_image008 независимых переменных clip_image010, – многомерным. Иной признак классификации сигналов основан на возможности или невозможности точного предсказания значений сигнала в любой момент времени или в любой точке пространственной координаты. Соответственно сигналы, для которых возможно указанное предсказание, называются детерминированными, а сигналы, для которых невозможно точно предсказать значения, называют случайными. Случайные сигналы описываются случайными функциями, значения которых при каждом данном значении аргумента представляются случайными величинами. Случайную функцию времени обычно называют случайным процессом. При одном наблюдении случайного процесса получают определенную функциональную зависимость, которую называют реализацией. Сигналы, описываемые функциями от непрерывной временной clip_image012 или пространственной переменной clip_image014, называются непрерывными сигналами Непрерывные сигналы часто называют аналоговыми (континуальными) сигналами, если они могут принимать континуум значений при любом значении переменных clip_image002[1] и clip_image017.

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

clip_image019

Дискретизация сигнала по времени соответствует выделению значений сигнала при фиксированных значениях clip_image012[1](рис.1.1,б). Обычно моменты взятия значений (отсчетов) сигнала отстоят друг от друга на величину clip_image022 (или clip_image024), называемую соответственно интервалом или шагом дискретизации. Сигнал, получаемый в ходе указанного процесса, называется дискретным сигналом.

Дискретный сигнал представляется множеством точек clip_image026, в каждой из которых определено отсчетное значение сигнала clip_image028. Таким образом, дискретизация по времени заменяет непрерывную функцию clip_image030 решетчатой, которая определяется совокупностью выделенных ординат или дискрет clip_image032, следующих через равные интервалы clip_image033. Отметим, что для различия обозначений непрерывных и дискретных функций в литературе используются соответственно круглые clip_image035 и квадратные clip_image037 скобки.

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

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

Протокол USB

Все обмены (транзакции) с устройствами USB состоят из двух-трех пакетов. Каж­дая транзакция планируется и начинается по инициативе контроллера, который посылает пакет-маркер (token packet). Он описывает тип и направление переда­чи, адрес устройства USB и номер конечной точки. В каждой транзакции возмо­жен обмен только между адресуемым устройством (его конечной точкой) и хос­том. Адресуемое маркером устройство распознает свой адрес и готовится к обмену. Источник данных (определенный маркером) передает пакет данных (или уведом­ление об отсутствии данных, предназначенных для передачи). После успешного" приема пакета приемник данных посылает пакет квитирования (handshake packet). Последовательность пакетов в транзакциях иллюстрирует рис.

Хост-контроллер организует обмены с устройствами согласно своему плану рас­пределения ресурсов. Контроллер циклически (с периодом 1,0±0,0005 мс) форми­рует кадры (frames), в которые укладываются все запланированные транзакции (рис. 4.5). Каждый кадр начинается с посылки маркера SOF (Start Of Frame), который является синхронизирующим сигналом для всех устройств, включая хабы. В конце каждого кадра выделяется интервал времени EOF (End Of Frame), на вре­мя которого хабы запрещают передачу по направлению к контроллеру. В режиме HS пакеты SOF передаются в начале каждого микрокадра (период 125±0,0625 икс). Хост планирует загрузку кадров так, чтобы в них всегда находилось место для транзакций управления и прерываний. Свободное время кадров может заполнять­ся передачами массивов (bulk transfers). В каждом (микро)кадре может быть вы­полнено несколько транзакций, их допустимое число зависит от длины поля дан­ных каждой из них.

clip_image002

Рис. Поток кадров USB

Для обнаружения ошибок передачи каждый пакет имеет контрольные поля CRC-кодов, позволяющие обнаруживать все одиночные и двойные битовые ошибки. Аппаратные средства обнаруживают ошибки передачи, а контроллер автоматиче­ски производит трехкратную попытку передачи. Если повторы безуспешны, со­общение об ошибке передается клиентскому ПО.

Все подробности организации транзакций от клиентского ПО изолируются кон­троллером USB и его системным программным обеспечением.

Интерфейс клавиатуры

Традиционная клавиатура PC представляет собой унифицированное устройство ввода со стандартным разъемом и последовательным интерфейсом связи с систем­ной платой. В настоящее время используются так называемые расширенные (enhanced) клавиатуры AT пли PS/2, имеющие более 100 клавиш. Они вытеснили первые 84-клавишные клавиатуры AT и тем более клавиатуры XT. По электри­ческому интерфейсу клавиатуры XT и AT совпадают, за исключением того, что двунаправленный интерфейс позволяет клавиатуре AT принимать команды от системной платы. Однако по логическому интерфейсу они несовместимы (клави­атура AT иногда имеет переключатель режима XT/AT). Клавиатура PS/2 отли­чается от AT только исполнением разъема, при необходимости можно использо­вать переходник.

Клавиатуры имеют внутренний микроконтроллер, способный определить факты нажатия и отпускания клавиш, при этом можно нажимать очередную клавишу, даже удерживая несколько ранее нажатых. При нажатии клавиши клавиатура передает идентифицирующий ее скан-код. При удержании клавиши в нажатом положении через некоторое время клавиатура начинает автоповтор передачи скан-кода нажатия этой клавиши. Задержка автоповтора (typematic delay) и скорость автоповтора (typematic rate) для клавиатур AT программируются. Расширенная клавиатура позволяет выбирать 1 из 3 наборов скан-кодов.

С распространением шины USB появились клавиатуры и с этим интерфейсом; они имеют и встроенный хаб, например для подключения мыши USB. Клавиатура USB питается от шины. Для клавиатуры USB требуется специальная поддержка со стороны BIOS; она имеется в современных системных платах.

Для подключения клавиатуры предназначен последовательный интерфейс, со­стоящий из двух обязательных сигналов KB-Data и KB-Clock. Необязательный сиг­нал KB-Reset сбрасывает клавиатуру низким уровнем сигнала. Интерфейс на системной плате XT реализован аппаратной логикой — регистром сдвига, па­раллельный выход которого подключается ко входам порта А системного ин­терфейса 8255. По приему байта от клавиатуры логика вырабатывает запрос аппаратного прерывания IRQ2, обработчик которого может прочитать принятый байт из порта 60h. С помощью бит 7 и 6 порта 61h возможна программная блокировка и сброс клавиатуры соответственно. Сброс клавиатуры XT осущест­вляется принудительным обнулением линии KB-Clock.

Интерфейс клавиатуры AT построен на микроконтроллере 18042, обеспечи­вающем в отличие от XT двунаправленный интерфейс с клавиатурой. Передача информации к клавиатуре используется для управления индикаторами ее со­стояния и программирования параметров (автоповтор, набор скан-кодов).

Хотя электрический интерфейс клавиатур XT и AT совпадает (за исключени­ем возможности двунаправленного обмена в AT), логические форматы посылок существенно отличаются. POST способен производить диагностику клавиатуры, причем подключение клавиатуры неподходящего типа или не подключенную клавиатуру он воспримет как ошибку. Если проверка клавиатуры разрешена в BIOS Setup, то по этой ошибке POST будет сколь угодно долго дожидаться получения кода нажатия клавиши F1.

Конструктивно возможны два варианта разъема — обычная 5-контактная розетка DIN (аналогичная применяемой в бытовой радиоаппаратуре) или ма­логабаритная розетка mini-DIN, пришедшая от компьютеров семейства PS/2, На этот же разъем через плавкий предохранитель поступает и напряжение пи­тания клавиатуры +5 В. Электрически и логически интерфейс клавиатуры PS/2 повторяет интерфейс клавиатуры AT, поэтому для согласования типа разъема применяют специальные переходники. Питание от разъема клавиатуры часто используется такими устройства­ми, как внешние накопители или адаптеры локальных сетей, подключа­емыми к параллельному порту.

Интерфейсы. Общие положения.

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

clip_image001

По способу передачи информации интерфейсы подразделяются на параллельные и последовательные. В параллельном интерфейсе все биты передаваемого слова (обычно байта) выставляются и передаются по соответствующим параллельно идущим проводам одновременно. В PC традиционно используется параллельный интерфейс Centronics, реализуемый LPT-портами, шины ATA, SCSI и все шины расширения. В последовательном интерфейсе биты передаются друг за другом, обычно по одной (возможно, и двухпроводной) линии. Эта линия может быть как однонаправленной (например, в RS-232C, реализуемой СОМ-портом, шине FireWire, SPI, JTAG), так и двунаправленной (USB, PC).

При рассмотрении интерфейсов важным параметром является пропускная способ­ность. Технический прогресс приводит к неуклонному росту объемов передаваемой информации. Если раньше матричные принтеры, печатающие в символьном режи­ме, могли обходиться и СОМ-портом с невысокой пропускной способностью, то современным лазерным принтерам при высоком разрешении не хватает произво­дительности даже самых быстрых LPT-портов. То же касается и сканеров. А пере­дача «живого» видео, даже с применением компрессии, требует ранее немысли­мой пропускной способности.

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

Для повышения пропускной способности параллельных интерфейсов с середин 90-х годов стали применять двойную синхронизацию DDK (Dual Data Rate). Eё идея заключается в выравнивании частот переключения информационных cигнальных линий и линий стробирования (синхронизации). В «классическом» варианте данные информационных линий воспринимались только по одному перепаду (фронту или спаду) синхросигнала, что удваивает частоту переключена линии синхросигнала относительно линий данных. При двойной синхронизаци данные воспринимаются и по фронту, и по спаду, так что частота смены состояний всех линий выравнивается, что при одних и тех же физических параметра кабеля и интерфейсных схем позволяет удвоить пропускную способность. Волна этих модернизаций началась с интерфейса АТА (режимы UltraDMA) и прошл уже и по SCSI (UltralGO и выше), и по памяти (DDK SDRAM), и по системно! шине процессоров (Pentium 4).

Немаловажен для интерфейса контроль достоверности передачи данных, который, увы, имеется далеко не везде. «Ветераном» контроля является шина SCSI с ее битом паритета; контроль паритета применяется и в последовательных интерфейсах и в шине PCI. Шина ISA в этом плане беззащитна, как и ее «потомок» — интер­фейс АТА, в котором до UltraDMA контроля достоверности не было. В новых интерфейсах контролю достоверности уделяется серьезное внимание, поскольку они, как правило, рассчитываются на экстремальные условия работы (высокие частоты, большие расстояния и помехи). Контроль достоверности может произ­водиться и на более высоких протокольных уровнях (контроль целостности паке­тов и их полей), но на аппаратном уровне он работает, естественно, быстрее.

clip_image002

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

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

С появлением шин USB и Fire Wire в качестве характеристики интерфейса стала фигурировать и топология соединения. Для интерфейсов RS-232C и Centronics практически всегда применялась двухточечная топология PC — устройство (или PC — PC). Исключениями из этого правила являются различные устройства безопасности и защиты данных (Security devices), которые подключаются к СОМ- или LPT-портам, но имеют разъем для подключения внешнего устройства. Однако эти устройства для традиционной периферии прозрачны, поэтому можно считать, что они не нарушают общего правила. Аналогично обстоит дело и с адаптерами ло­кальных сетей (например, Paraport) и внешних дисковых накопителей (Iomega Zip), подключаемых к LPT-портам. Хотя разрабатываемые стандарты для парал­лельного порта (IEEE 1284.3) и предусматривают соединение устройств в цепоч­ку (Daisy Chain) или через мультиплексоры, широкого распространения такие способы подключения пока не получили. К другому классу исключений относится построение моноканала на СОМ-портах, которое несколько лет назад применялось в «любительских» локальных сетях, но было вытеснено существенно более эффек­тивной и подешевевшей технологией Ethernet. Интерфейсные шины USB и Fire Wire реализуют древовидную топологию, в которой внешние устройства могут быть как оконечными, так и промежуточными (разветвителями). Эта топология позволяет подключать множество устройств к одному порту USB или Fire Wire.

Важным свойством интерфейса, на которое часто не обращают внимание, являет­ся гальваническая развязка, а точнее — ее отсутствие.« Схемные земли» устройств, соединяемых интерфейсом с СОМ- или LPT-портом PC, оказываются связанны­ми со схемной землей компьютера (а через интерфейсный кабель и между собой). Если между ними до подключения интерфейса была разность потенциалов, то по общему проводу интерфейса потечет уравнивающий ток, что плохо по целому ряду причин. Падение напряжения на общем проводе, вызванное протеканием этого тока, приводит к смещению уровней сигналов, а протекание переменного тока приводит к сложению полезного сигнала с переменной составляющей поме­хи. К этим помехам особенно чувствительны ТТЛ-интерфейсы; в то же время в RS-232C смещение и помеху в пределах 2 В поглотит зона нечувствительности. В случае обрыва общего провода или плохого контакта, а гораздо чаще — при под­ключении и отключении интерфейсов без выключения питания устройств, раз­ность потенциалов прикладывается к сигнальным цепям, а протекание уравни­вающих токов через них часто приводит к пиротехническим эффектам. Гальваническую развязку устройств обеспечива­ют интерфейсы MIDI, «токовая петля», S/PDIF, шина FireWire, сетевые интерфейсы Ethernet.

Существенным свойством является возможность «горячего» подключения/отклю­чения или замены устройств (Hot Swap), причем в двух аспектах. Во-первых, это безопасность переключений «на ходу» как для самих устройств и их интерфейс­ных схем, так и для целостности хранящихся и передаваемых данных и, наконец, для человека. Во-вторых, это возможность использования вновь подключенных устройств без перезагрузки системы, а также продолжения устойчивой работы системы при отключении устройств. Далеко не все внешние интерфейсы поддер­живают «горячее подключение» в полном объеме, так, например, зачастую сканер с интерфейсом SCSI должен быть подключен к компьютеру и включен до загруз­ки ОС, иначе он не будет доступен системе. С новыми шинами USB и FireWire проблем «горячего подключения» не возникает. Для внутренних интерфейсов «горячее подключение» несвойственно. Это касается и шин расширения, и модулей памяти, и даже большинства дисков АТА и SCSI. «Горячее подключение» под­держивается для шин расширения промышленных компьютеров, а также в специ­альных конструкциях массивов устройств хранения.

В ряде интерфейсов заложены возможности PnP (Plug and Play — включай и играй), которые предназначены для снятия с пользователей забот по конфигурированию подключаемых устройств. В современных интерфейсах эти возможности заклады­вались изначально (PCI, USB, Fire Wire, Bluetooth), и эти функции в большинстве случаев работают нормально. Однако для интерфейсов-ветеранов (например, ISA, SCSI) технология PnP является поздней искусственной надстройкой, работающей с переменным успехом (Plug and Pray — включай и молись). Часто побочные эффек­ты вызваны наследием «тяжелого прошлого» — соседством устройств РпР с тради­ционными (legacy) устройствами. На закате шины ISA ее система РпР в общем работала, но в SCSI от идей автоконфигурирования со временем отказались.

При разработке собственных устройств встает вопрос выбора подходящего интер­фейса подключения. Этот вопрос следует решать, исходя из принципа разумной достаточности, по возможности отдавая предпочтение внешним интерфейсам. Следует помнить, что разработка аппаратной части устройства (hardware) тесно связана и с программной поддержкой устройств — как модулями ПО, исполня­емыми процессором компьютера (software), так и программами встроенного мик­роконтроллера (firmware), на базе которого, как правило, строятся современные устройства. Промышленностью выпускается множество моделей микроконтрол­леров, имеющих популярные интерфейсы (USB, RS-232, PC и другие). Однако в ряде случаев приходится использовать и стандартизованные шины расширения ввода-вывода. Эти шины предоставляют более широкие возможности для взаи­модействия процессора с аппаратурой, нескованные жесткими ограничениями внешних интерфейсов. Однако за универсальность и производительность внут­ренних шин расширения приходится расплачиваться более замысловатой реали­зацией интерфейсных схем и сложностями при обеспечении совместимости с дру­гим установленным в компьютер оборудованием. Здесь ошибки могут приводить к потере работоспособности компьютера. Недаром серь­езные производители компьютеров гарантируют работоспособность своих изделий только при установке сертифицированных карт расширения. При использовании внешних интерфейсов неприятности в случае ошибок чаще всего имеют отношение только к подключаемому устройству.

Компьютерная философия

Компьютер представляет собой устройство, способное исполнять четко опре­деленную последовательность операций, предписанную программой. Понятие «компьютер» является более широким, чем «электронно-вычислительная маши­на» (ЭВМ), поскольку в последнем явный акцент делается на вычисления. Пер­сональный компьютер (ПК) характерен тем, что им может пользоваться один человек, не прибегая к помощи бригады обслуживающего персонала и не от­водя под него специального зала с поддержанием климата, мощной системой электропитания и прочими атрибутами больших вычислительных машин. Этот компьютер обычно сильно ориентирован на интерактивное взаимодействие с одним пользователем (в играх иногда и с двумя), причем взаимодействие про­исходит через множество сред общения — от алфавитно-цифрового и графи­ческого диалога с помощью дисплея, клавиатуры и мыши до устройств виртуальной реальности, в которой пока не задействованы, наверное, только запахи. Когда используется аббревиатура PC (Personal Computer), подразуме­вается ПК, совместимый с самым массовым семейством персональных компь­ютеров фирмы IBM и их клонов. Конечно же, это не единственное в мире семейство — есть множество и других достойных компьютерных линий. PC может быть использован и коллективно: возможности многих компьютеров этого семейства позволяют использовать их и в качестве серверов в сетях или локальных многотерминальных системах. Таким образом, можно объяснить словосочетание PC-сервер, которое неявно предполагает повышенную мощность (скорость вы­числений, объем оперативной и внешней памяти) и особое конструктивное ис­полнение (просторный корпус) компьютера. Словосочетание ПК-сервер уже звучит странновато, хотя в одноранговых сетях и этому словосочетанию можно найти объяснение — персональный компьютер может предоставлять свои ре­сурсы (например, дисковое пространство, принтеры или модемы) другим компь­ютерам, для которых он будет являться невыделенным сервером. Попутно отметим и термин рабочая станция (Workstation, WS), в который может быть вложено два значения. В компьютерной сети рабочей станцией называют компь­ютер пользователя (как противоположность серверу). Однако рабочая станция может быть и отдельно стоящим (Standalone Computer), но особенно мощным компьютером (его подключение к сети, конечно же, не исключается). В этом случае часто подразумевается архитектура, отличающаяся от IBM PC-совмес­тимой (например, компьютер на RISC-процессоре). Для мощного IBM PC-со­вместимого компьютера применяют англоязычный термин High End PC, которому короткого русского аналога пока нет.

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

clip_image001

Процессор является основным «мозговым» узлом, в задачу которого входит исполнение программного кода, находящегося в памяти. В настоящее время под словом «процессор» подразумевают микропроцессор — микросхему, кото­рая, кроме собственно процессора, может содержать и другие узлы — например, кэш-память. Процессор в определенной последовательности выбирает из памяти инструкции и исполняет их. Инструкции процессора предназначены для пере­сылки, обработки и анализа данных, расположенных в пространствах памяти и портов ввода/вывода, а также организации ветвлений и переходов в вычис­лительном процессе. В компьютере обязательно должен присутствовать централь­ный процессор (CPU — Central Processing Unit), который исполняет основную программу. В многопроцессорной системе функции центрального процессора распределяются между несколькими обычно идентичными процессорами для повышения общей производительности системы, а один из них назначается главным. В помощь центральному процессору в компьютер часто вводят сопро­цессоры, ориентированные на эффективное исполнение каких-либо специфических функций. Широко распространены математические сопроцессоры, эффективно обрабатывающие числовые данные в формате с плавающей точкой; графические сопроцессоры, выполняющие геометрические построения и обработку графи­ческих изображений; сопроцессоры ввода-вывода, разгружающие центральный процессор от несложных, но многочисленных операций взаимодействия с пе­риферийными устройствами. Возможны и другие сопроцессоры, однако все они несамостоятельны — исполнение основного вычислительного процесса осущест­вляется центральным процессором, который в соответствии с программой вы­дает «задания» сопроцессорам на исполнение их «партий».

clip_image002

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

Существуют процессоры и компьютеры с разрядностью обрабатываемого слова не кратной 8 (например, 5, 7, 9...), и их байты не восьмибитные, но в мире PC столкновение с ними маловероятно. Также в некоторый системах (обычно ком­муникационных) совокупность восьми соседних бит данных называют октетом. Название «октет» обычно подразумевает, что эти 8 бит не имеют явного адреса, а характеризуются только своим местоположением в длинной цепочке бит.

clip_image003

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

* внутренняя память — электронная (полупроводниковая) память, уста­навливаемая на системной плате или на платах расширения;

* внешняя память — память, реализованная в виде устройств с различными принципами хранения информации и обычно с подвижными носителями. В настоящее время сюда входят устройства магнитной (дисковой и лен­точной) памяти, оптической и магнитооптической памяти. Устройства внешней памяти могут размещаться как в системном блоке компьютера, так и в отдельных корпусах, достигающих иногда и размеров небольшого шкафа. Для процессора непосредственно доступной является внутренняя память, доступ к которой осуществляется по адресу, заданному программой. Для внут­ренней памяти характерен одномерный (линейный) адрес, который представля­ет собой одно двоичное число определенной разрядности. Внутренняя память подразделяется на оперативную, информация в которой может изменяться процессором в любой момент времени, и постоянную, информацию которой процессор может только считывать. Обращение к ячейкам оперативной памяти может происходить в любом порядке, причем как по чтению, так и по записи, и оперативную память называют памятью с произвольным доступом — Random Aceess Memory (RAM) — в отличие от постоянной памяти (Read Only Memory, ROM). Внешняя память адресуется более сложным образом — каждая ее ячейка имеет свой адрес внутри некоторого блока, который, в свою очередь, имеет многомерный адрес. Во время физических операций обмена данными блок может быть считан или записан только целиком. В случае одиночного дискового накопителя адрес блока будет трехмерным: номер поверхности (головки), номер цилиндра и номер сектора. В современных накопителях этот трехмерный адрес часто заменяют линейным номером — логическим адресом блока, а его преоб­разованием в физический адрес занимается внутренний контроллер накопителя. Поскольку дисковых накопителей в компьютере может быть множество, в ад­ресации дисковой памяти участвует и номер накопителя, а также номер канала интерфейса. С такой сложной системой адресации процессор справляется толь­ко с помощью программного драйвера, в задачу которого в общем случае входит копирование некоторого блока данных из оперативной памяти в дисковую и обратно. Дисковая память является внешней памятью с прямым доступом, что подразумевает возможность обращения к блокам (но не ячейкам) в произволь­ном порядке. Память на ленточных носителях имеет самый неудобный метод доступа — последовательный. В ней информация хранится также в виде бло­ков фиксированной или переменной длины, и в пределах одного носителя эти блоки имеют последовательные адреса. Для доступа к какому-либо блоку устрой­ство должно найти некоторый маркер начала ленты (тома), после чего после­довательным холостым чтением блока за блоком дойти до требуемого места и только тогда производить сами операции обмена данными. С такими неудобст­вами мирятся только потому, что ленточные носители являются самым дешевым хранилищем для больших объемов информации, к которой не требуется опера­тивного доступа.

Для подсистемы памяти важными параметрами являются следующие:

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

- время доступа — усредненная задержка начала обмена полезной информа­цией относительно появления запроса на данные. Минимальное время доступа имеет оперативная память, за ней идет дисковая и после нее — ленточная;

- скорость обмена при передаче потока данных (после задержки на время доступа). Максимальную скорость обмена имеет оперативная память, за ней идет дисковал и после нее — ленточная;

- удельная стоимость хранения единицы данных — цена накопителя (с но­сителями), отнесенная к единице хранения (байту или мегабайту). Мини­мальную стоимость хранения имеют ленточные устройства со сменными носителями, их догоняют дисковые накопители, а самая дорогая — опера­тивная память.

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

Однако реальная жизнь многообразнее этой упрощенной схемы, и на прак­тике дисковая и оперативная память переплетаются сложным образом. Главный недостаток дисковой памяти большое время доступа и низкая скорость об­мена - устраняется при использовании виртуального диска, представляющего собой своеобразно используемую область оперативной памяти. В этой области хранятся файлы, и с точки зрения операционной системы (и, тем более, при­кладной программы) она выглядит как обычный, но очень быстрый диск. Ко­нечно же, его объем ограничен, и этот объем вычитается из объема физически установленной памяти, доступной процессору в качестве обычной оперативной. Кроме того, виртуальный диск в отличие от реального не является энергонеза­висимым. Более того, информация на нем не переживет даже перезагрузки опе­рационной системы. Но несмотря на эти ограничения, виртуальный диск во многих случаях может повысить эффективность работы компьютера при интен­сивном дисковом обмене. В операционной системе MS-DOS (и Windows 95) виртуальный диск реализуется загрузкой программного драйвера RAMDRIVE.SYS (в некоторых версиях — VDISK.SYS), похожие средства имеются и в других операционных системах. Другим способом решения проблем быстродействия дисковой памяти за счет оперативной является кэширование дисков — хранение образов последних из использованных блоков дисковой памяти в оперативной в надежде на то, что к ним вскоре будет следующий запрос, который удастся удовлетворить из памяти. В MS-DOS кэшированием дисков занимается загру­жаемый драйвер SMARTDRV.EXE, в Windows 95 кэширование встроено в опе­рационную систему. Даже и без этого драйвера «неглубокое» кэширование выполняет операционная система, и этим процессом можно управлять с по­мощью строки «8UFFERS=xxx» файла CONFIG.SYS. Если затребованный блок с диска уже находится в одном из буферов, ОС не будет «беспокоить» диск, а удовлетворит запрос из буфера. Чем больше параметр ххх, тем больше блоков может держать ОС в оперативной памяти, но область памяти для буферов, естественно, уменьшает объем памяти, доступной программам.

Основной недостаток оперативной памяти заключается в том, что конструк­тивно достижимый ее объем во много раз меньше, чем у дисковой (пока что это было справедливо на всех ступенях технического прогресса). Решить про­блему увеличения объема оперативной памяти за счет дисковой позволяет вир­туальная память, которую можно считать кэшированием оперативной памяти на диске. Суть ее заключается в том, что программам предоставляется вирту­альное пространство оперативной памяти, по размерам превышающее объем физически установленной оперативной памяти. Это виртуальное пространство разбито на страницы фиксированного размера, а в физической оперативной па­мяти в каждый момент времени присутствует только часть из них. Остальные страницы хранятся на диске, откуда операционная система может их «подка­чать» в физическую на место предварительно выгруженных на диск страниц. Для прикладной программы этот процесс прозрачен (если только она не кри­тична ко времени обращения к памяти). Для пользователя этот процесс заметен по работе диска даже в тот момент, когда не требуется обращение к файлам. Расплатой за почти безмерное увеличение объема доступной оперативной памяти является снижение средней производительности памяти и некото­рый расход дисковой памяти на так называемый файл подкачки (Swap File). Естественно, размер виртуальной памяти не может превышать размера диска (файл подкачки на нескольких дисках обычно не размещают). Виртуальная па­мять реализуется операционными системами (и оболочками) защищенного ре­жима (например, OS/2, MS Windows) на основе аппаратных средств процессоров класса не ниже 286, а наиболее эффективно — 32-разрядных процессоров 386 и старше.

Таково в общих чертах устройство подсистемы памяти.

В общем случае в подсистему памяти обязательно входит оперативная память и энергонезависимая память, хранящая по крайней мере программу первона­чальной загрузки компьютера. Дисковая память как таковая может и отсутст­вовать. Однако часто в понятие «диск» или «дисковое устройство» (Disk Device, Disk Drive) вкладывают значение «устройство внешней памяти прямого досту­па». Так, например, виртуальный диск в ОЗУ и электронный диск на флэш-памяти отнюдь не имеют круглых, а тем более вращающихся деталей. Внешняя память с прямым доступом в том или ином виде — будь то действительно дис­ковые накопители, флэш-диск или сетевой диск, отображающий часть диска физически значительно удаленного компьютера-сервера, — является обязатель­ным атрибутом персонального компьютера. Без внешней памяти компьютер вырождается в узкоспециализированное устройство с ограниченным набором функций (например, эмуляции терминала или интерпретатора языка Basic), «за­шитых» в его постоянную память. Ленточная память является необязательной и используется обычно для хранения архивов.

Периферийные устройства связывают компьютер с внешним миром, и без них он был бы «вещью в себе». Список устройств, делающих компьютер «вещью для нас», практически неограничен. Сюда входят устройства ввода — клавиа­тура, манипуляторы «мышь», «трекбол», джойстики, сканеры, устройства оцифровки звука и видеоизображений; устройства вывода — алфавитно-цифровые и графические мониторы, принтеры, плоттеры, акустические системы и прочие устройства в великом множестве их разновидностей; коммуникационные устрой­ства — модемы, адаптеры локальных и глобальных сетей. Сюда же часто относят дисковые и ленточные устройства хранения информации, но по выполняемым функциям, по-моему, их все-таки лучше включать в подсистему памяти. Кроме того, к компьютеру можно подключать датчики и исполнительные устройства технологического оборудования, различные приборы — в общем все, что в ко­нечном итоге может вырабатывать электрические сигналы и (или) ими управ­ляться. Периферийные устройства подключаются к компьютеру через внешние интерфейсы или с помощью специализированных адаптеров или контроллеров, встраиваемых в системную плату или размещаемых на платах (картах) рас­ширения. Адаптер является средством сопряжения какого-либо устройства с какой-либо шиной компьютера. Контроллер служит тем же целям сопряжения, но при этом подразумевается его некоторая активность — способность к самос­тоятельным действиям после получения команд от обслуживающей его про­граммы. Сложный контроллер может иметь в своем составе и собственный процессор. На эти тонкости терминологии не всегда обращают внимание, и понятия «адаптер» и «контроллер» считают почти синонимами. Все внешние интерфейсы компьютера, естественно, тоже имеют свои адаптеры или конт­роллеры. Для взаимодействия с программой (с помощью процессора или со­процессоров) адаптеры и контроллеры периферийных устройств обычно имеют регистры ввода и вывода, которые могут располагаться либо в адресном прост­ранстве памяти, либо в специальном пространстве портов ввода/вывода. Кроме того, используются механизмы аппаратных прерываний для сигнализации про­грамме о событиях, происходящих в периферийных устройствах. Для обмена информацией с периферийными устройствами применяется и механизм прямо­го доступа к памяти DMA (Direct Memory Acces). Контроллер DMA можно считать простейшим сопроцессором ввода/вывода, разгружающим центральный процессор от рутинных операций обмена. Таково в общих чертах устройство компьютера (естественно, подразумева­ется и наличие корпуса с блоком питания). Однако этот набор «железок» не имеет практической ценности без программного обеспечения, которое в компь­ютере имеет многоуровневую организацию. Часть программного обеспечения хранится в постоянной (энергонезависимой) памяти и обеспечивает тестиро­вание и запуск при включении, загрузку операционной системы и связь опера­ционной системы с аппаратными средствами компьютера. Эта часть называется базовой системой ввода/вывода BIOS (Basic Input-Output System). Следую­щий уровень — операционная система, основным назначением которой являет­ся загрузка прикладных программ и предоставление им некоторых сервисов. И наконец, верхний уровень — прикладное программное обеспечение, ради ис­полнения которого и городился весь этот огород. Именно возможность загрузки любой прикладной программы в совокупности с неограниченным ассортимен­том периферийных устройств и позволяет считать персональный компьютер универсальным инструментом с неограниченными возможностями.