Добавлен: 29.10.2018
Просмотров: 47979
Скачиваний: 190
56
Глава 1. Введение
Шина PCIe была придумана Intel в качестве преемницы более старой шины PCI,
которая в свою очередь пришла на замену исходной шине ISA (Industry Standard
Architecture — стандартная промышленная архитектура). Благодаря возможности
передавать данные со скоростью в десятки гигабит в секунду шина PCIe работает
намного быстрее своих предшественниц. Она сильно отличается от них и по своей
природе. Вплоть до ее создания в 2004 году большинство шин были параллельными
и совместно используемыми. Архитектура шин совместного использования означает,
что для передачи данных разными устройствами используются одни и те же проводни-
ки. Таким образом, когда данные для передачи имеются сразу у нескольких устройств,
для определения устройства, которому будет позволено использовать шину, требуется
арбитр. В отличие от этого шина PCIe использует выделенные непосредственные со-
единения типа «точка — точка». Архитектура параллельной шины, подобная той, что
используется в PCI, предполагает отправку каждого слова данных по нескольким про-
водникам. Например, в обычных шинах PCI одно 32-разрядное число отправляется по
32 параллельным проводникам. В отличие от этого в PCIe используется архитектура
последовательной шины, и все биты сообщения отправляются по одному соединению,
известному как дорожка (lane), что очень похоже на отправку сетевого пакета. Это
существенно упрощает задачу, поскольку обеспечивать абсолютно одновременное
прибытие всех 32 битов в пункт назначения уже не нужно. Но параллелизм все же
используется, поскольку параллельно могут действовать сразу несколько дорожек. На-
пример, для параллельной передачи 32 сообщений могут использоваться 32 дорожки.
Из-за быстрого роста скоростей передачи данных таких периферийных устройств, как
сетевые карты и графические адаптеры, стандарт PCIe обновляется каждые 3–5 лет.
Например, 16 дорожек PCIe 2.0 предлагали скорость 64 Гбит/с. Обновление до PCIe 3.0
удвоит эту скорость, а обновление до PCIe 4.0 — удвоит еще раз.
В то же время еще существует множество устаревших устройств для более старого
стандарта PCI. Как показано на рис. 1.12, эти устройства подключаются к отдельному
концентратору. В будущем, когда PCI уже будет считаться не просто старой, а древней
шиной, вполне возможно, что все PCI-устройства будут подключены к еще одному
концентратору, который в свою очередь подключит их к основному концентратору,
создавая таким образом дерево шин.
В данной конфигурации центральный процессор общается с памятью через быструю
шину DDR3, со внешним графическим устройством — через шину PCIe, а со все-
ми остальными устройствами — через концентратор по шине DMI (Direct Media
Interface — интерфейс непосредственной передачи данных). Концентратор в свою
очередь соединяет все другие устройства, используя для обмена данными с USB-
устройствами универсальную последовательную шину, для обмена данными с жестки-
ми дисками и DVD-приводами — шину SATA и для передачи Ethernet-кадров — шину
PCIe. Об устаревших PCI-устройствах, использующих традиционную шину PCI, здесь
уже упоминалось.
Шина USB (Universal Serial Bus — универсальная последовательная шина) была разрабо-
тана для подключения к компьютеру всех низкоскоростных устройств ввода-вывода вро-
де клавиатуры и мыши. Но как-то неестественно было бы называть устройства USB 3.0
со скоростью передачи данных 5 Гбит/с «медленными» тому поколению, становление
которого пришлось на те времена, когда основной для первых машин IBM PC считалась
шина ISA со скоростью передачи данных в 8 Мбит/с. В USB используется небольшой
разъем, имеющий (в зависимости от версии) от 4 до 11 контактов, часть из которых под-
водят к USB-устройствам питание или подключены к заземлению.
1.3. Обзор аппаратного обеспечения компьютера
57
Êîíòðîëëåðû ïàìÿòè
Ãðàôèêà
PCIe
Ïëàòôîðìà
Êîíòðîëëåð
Õàá
DMI
Ñëîò PCIe
Ñëîò PCIe
Ñëîò PCIe
ßäðî1
ßäðî2
Îáùèé êýø
ßäðà ãðàôè÷åñêîãî
ïðîöåññîðà
Ïàìÿòü DDR3
SATA
Ïîðòû USB 2.0
Ïîðòû USB 3.0
Gigabit Ethernet
Êýø
Êýø
Äîïîëíèòåëüíûå
PCIe-óñòðîéñòâà
Ñëîò PCIe
PCIe
Ïàìÿòü DDR3
Рис. 1.12. Структура большой системы семейства x86
USB является централизованной шиной, в которой главное (корневое) устройство
опрашивает устройства ввода-вывода каждую миллисекунду, чтобы узнать, есть ли
у них данные для передачи. Стандарт USB 1.0 мог обеспечить совокупную скорость
передачи данных 12 Мбит/с, в USB 2.0 скорость была поднята до 480 Мбит/с, а пико-
вая скорость в USB 3.0 составила никак не меньше 5 Гбит/с. Любое USB-устройство
может быть подключено к компьютеру и приступить к работе немедленно, не требуя
его перезагрузки, которая нужна была некоторым устройствам до появления USB, что
приводило в ужас целое поколение разочарованных пользователей.
SCSI
(Small Computer System Interface — интерфейс малых вычислительных систем)
является высокоскоростной шиной, предназначенной для высокопроизводительных
дисков, сканеров и других устройств, нуждающихся в значительной пропускной спо-
собности. В наши дни эти шины встречаются в основном в серверах и рабочих станци-
ях. Скорость передачи данных может достигать 640 Мбайт/с.
Для работы в окружении, показанном на рис. 1.12, операционная система должна
знать о том, какие периферийные устройства подключены к компьютеру, и сконфи-
гурировать эти устройства. Это требование заставило корпорации Intel и Microsoft
разработать для PC-совместимых компьютеров систему, называемую plug and play
(подключи и работай). Она основана на аналогичной концепции, первоначально реа-
лизованной в Apple Macintosh. До появления plug and play каждая плата ввода-вывода
имела фиксированный уровень запроса на прерывание и постоянные адреса для своих
регистров ввода-вывода. Например, клавиатура использовала прерывание 1 и адреса
58
Глава 1. Введение
ввода-вывода от 0x60 до 0x64; контроллер гибкого диска использовал прерывание 6
и адреса ввода-вывода от 0x3F0 до 0x3F7; принтер использовал прерывание 7 и адреса
ввода-вывода от 0x378 до 0x37A и т. д.
До поры до времени все это неплохо работало. Проблемы начинались, когда поль-
зователь покупал звуковую карту и внутренний модем и обнаруживалось, что оба
устройства использовали, скажем, прерывание 4. Возникал конфликт, не позволяющий
им работать вместе. Решением стало появление на каждой плате ввода-вывода DIP-
переключателей, или перемычек (jumpers). Однако приходилось инструктировать
пользователя о необходимости выбрать уровень запроса на прерывание и адреса вво-
да-вывода для данного устройства, которые не конфликтовали бы со всеми другими
прерываниями и адресами, задействованными на его системе. Иногда выполнить эти
требования без ошибок оказывались способны подростки, которые посвятили свою
жизнь решению головоломок компьютерного оборудования. Но, к сожалению, кроме
них это практически никому не удавалось, что приводило к полному хаосу.
Технология plug and play заставляет систему автоматически собирать информацию
об устройствах ввода-вывода, централизованно присваивая уровни запросов на пре-
рывания и адреса ввода-вывода, а затем сообщать каждой карте, какие значения ей
присвоены. Эта работа тесно связана с загрузкой компьютера, и нам стоит взглянуть
на этот процесс, поскольку в нем не все так просто, как кажется на первый взгляд.
1.3.7. Загрузка компьютера
В кратком изложении загрузка компьютера происходит следующим образом. У каж-
дого персонального компьютера есть материнская плата (которую теперь в США
в результате распространения политкорректности на компьютерную индустрию на-
зывают родительской платой)
1
. На материнской плате находится программа, которая
называется базовой системой ввода-вывода — BIOS (Basic Input Output System). BIOS
содержит низкоуровневое программное обеспечение ввода-вывода, включая процедуры
считывания состояния клавиатуры, вывода информации на экран и осуществления, ко
всему прочему, дискового ввода-вывода. В наши дни эта программа хранится в энерго-
независимой флеш-памяти с произвольным доступом, которая может быть обновлена
операционной системой в случае обнаружения в BIOS различных ошибок.
При начальной загрузке компьютера BIOS начинает работать первой. Сначала она про-
веряет объем установленной на компьютере оперативной памяти и наличие клавиатуры,
а также установку и нормальную реакцию других основных устройств. Все начинается
со сканирования шин PCIe и PCI с целью определения всех подключенных к ним
устройств. Некоторые из этих устройств унаследованы из прошлого (то есть разработаны
еще до создания технологии plug and play). Они имеют фиксированные уровни прерыва-
ний и адреса ввода-вывода (возможно, установленные с помощью переключателей или
перемычек на карте ввода-вывода, но не подлежащие изменению со стороны операцион-
ной системы). Эти устройства регистрируются. Устройства, отвечающие стандарту plug
and play, также регистрируются. Если присутствующие устройства отличаются от тех,
которые были зарегистрированы в системе при ее последней загрузке, то производится
конфигурирование новых устройств.
1
Также ее вполне корректно называть системной платой (system board или main board). —
Примеч. ред.
1.4. Зоопарк операционных систем
59
Затем BIOS определяет устройство, с которого будет вестись загрузка, по очереди
проверив устройства из списка, сохраненного в CMOS-памяти. Пользователь может
внести в этот список изменения, войдя сразу после начальной загрузки в программу
конфигурации BIOS. Обычно делается попытка загрузки с компакт-диска (иногда
с флеш-накопителя USB), если, конечно, таковой присутствует в системе. В случае
неудачи система загружается с жесткого диска. С загрузочного устройства в память
считывается первый сектор, а затем выполняется записанная в нем программа. Обычно
эта программа проверяет таблицу разделов, которая находится в конце загрузочного
сектора, чтобы определить, какой из разделов имеет статус активного. Затем из этого
раздела считывается вторичный загрузчик, который в свою очередь считывает из ак-
тивного раздела и запускает операционную систему.
После этого операционная система запрашивает BIOS, чтобы получить информацию
о конфигурации компьютера. Она проверяет наличие драйвера для каждого устройства.
Если драйвер отсутствует, операционная система просит установить компакт-диск
с драйвером (поставляемый производителем устройства) или загружает драйвер из
Интернета. Как только в ее распоряжении окажутся все драйверы устройств, операци-
онная система загружает их в ядро. Затем она инициализирует свои таблицы, создает
все необходимые ей фоновые процессы и запускает программу входа в систему или
графический интерфейс пользователя.
1.4. Зоопарк операционных систем
История операционных систем насчитывает уже более полувека. За это время было
разработано огромное количество разнообразных операционных систем, но не все
они получили широкую известность. В данном разделе мы вкратце коснемся девяти
операционных систем. К некоторым из этих различающихся по своему типу систем мы
еще вернемся на страницах книги.
1.4.1. Операционные системы мейнфреймов
К высшей категории относятся операционные системы мейнфреймов (больших уни-
версальных машин) — компьютеров, занимающих целые залы и до сих пор еще встре-
чающихся в крупных центрах обработки корпоративных данных. Такие компьютеры
отличаются от персональных компьютеров объемами ввода-вывода данных. Мейн-
фреймы, имеющие тысячи дисков и петабайты данных, — весьма обычное явление,
а персональный компьютер с таким арсеналом стал бы предметом зависти. Мейнфрей-
мы также находят применение в качестве мощных веб-серверов, серверов крупных
интернет-магазинов и серверов, занимающихся межкорпоративными транзакциями.
Операционные системы мейнфреймов ориентированы преимущественно на одновре-
менную обработку множества заданий, большинство из которых требует колоссаль-
ных объемов ввода-вывода данных. Обычно они предлагают три вида обслуживания:
пакетную обработку, обработку транзакций и работу в режиме разделения времени.
Пакетная обработка — это одна из систем обработки стандартных заданий без участия
пользователей. В пакетном режиме осуществляется обработка исков в страховых
компаниях или отчетов о продажах сети магазинов. Системы обработки транзакций
справляются с большим количеством мелких запросов, к примеру обработкой чеков
в банках или бронированием авиабилетов. Каждая элементарная операция невелика
60
Глава 1. Введение
по объему, но система может справляться с сотнями и тысячами операций в секунду.
Работа в режиме разделения времени дает возможность множеству удаленных поль-
зователей одновременно запускать на компьютере свои задания, например запросы
к большой базе данных. Все эти функции тесно связаны друг с другом, и зачастую
операционные системы универсальных машин выполняют их в комплексе. Примером
операционной системы универсальных машин может послужить OS/390, наследница
OS/360. Однако эти операционные системы постепенно вытесняются вариантами
операционной системы UNIX, например Linux.
1.4.2. Серверные операционные системы
Чуть ниже по уровню стоят серверные операционные системы. Они работают на серве-
рах, которые представлены очень мощными персональными компьютерами, рабочими
станциями или даже универсальными машинами. Они одновременно обслуживают
по сети множество пользователей, обеспечивая им общий доступ к аппаратным и про-
граммным ресурсам. Серверы могут предоставлять услуги печати, хранения файлов
или веб-служб. Интернет-провайдеры для обслуживания своих клиентов обычно за-
действуют сразу несколько серверных машин. При обслуживании веб-сайтов серверы
хранят веб-страницы и обрабатывают поступающие запросы. Типичными представи-
телями серверных операционных систем являются Solaris, FreeBSD, Linux и Windows
Server 201x.
1.4.3. Многопроцессорные операционные системы
Сейчас все шире используется объединение множества центральных процессоров
в единую систему, что позволяет добиться вычислительной мощности, достойной
высшей лиги. В зависимости от того, как именно происходит это объединение, а также
каковы ресурсы общего пользования, эти системы называются параллельными ком-
пьютерами, мультикомпьютерами или многопроцессорными системами. Им требуются
специальные операционные системы, в качестве которых часто применяются особые
версии серверных операционных систем, оснащенные специальными функциями связи,
сопряжения и синхронизации.
С недавним появлением многоядерных процессоров для персональных компьютеров
операционные системы даже обычных настольных компьютеров и ноутбуков стали
работать по меньшей мере с небольшой многопроцессорной системой. Со временем,
похоже, число ядер будет только расти. К счастью, за годы предыдущих исследований
были накоплены обширные знания о многопроцессорных операционных системах,
и использование этого арсенала в многоядерных системах не должно вызвать особых
осложнений. Труднее всего будет найти приложения, которые смогли бы использовать
всю эту вычислительную мощь. На многопроцессорных системах могут работать мно-
гие популярные операционные системы, включая Windows и Linux.
1.4.4. Операционные системы персональных компьютеров
К следующей категории относятся операционные системы персональных компьютеров.
Все их современные представители поддерживают многозадачный режим. При этом
довольно часто уже в процессе загрузки на одновременное выполнение запускаются
десятки программ. Задачей операционных систем персональных компьютеров является