Основы параллельного программирования на кластере и разработка элективного курса «Администрирование в информационных системах и администрирование виртуальных машин»

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

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

Институт математики, физики и информатики

Факультет информатики

	Кафедра информатики и вычислительной техники



Выпускная квалификационная работа



Основы параллельного программирования на кластере и  разработка элективного курса  "Администрирование в информационных системах и администрирование виртуальных машин"



Работу выполнил:

	Гончаров Иван Викторович

		(роспись)

Научный руководитель:

	Шикунов Сергей Анатольевич

	к.ф.-м.н., доцент _____________(роспись)

Рецензент:

Прохоров Алексей Анатольевич

ст.преподаватель _____________(роспись)

Допущена к защите:

Пак Н.И.

д.п.н., профессор, зав. каф.ИВТ 

Оценка:

Дата защиты (число, месяц, год)



Красноярск 2008


Содержание



Введение

Глава 1. Кластерные системы 

1.1 Структура Beowulf и параметры

1.2 Виртуальный скоростной канал, интерфейс

1.3  Устройство кластера

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

1.5 Организация кластерной системы

1.6 Параллельная виртуальная машина(PVM)

1.6.1 Взаимодействие задач в PVM

1.6.2 Управление задачами

1.6.3 Передача сообщений

1.6.4 Упаковка данных 

1.6.5 Распаковка полученных данных 

1.6.6 Отладка в PVM

1.6.7 Установка PVM

	Глава 2 Обучение будущих учителей сетевому администрированию

	2.1 Анализ целесообразности обучения будущих учителей сетевому 

	администрированию

	2.2. Виртуальная машина для обучения

	2.2.1.	Анализ и выбор виртуальной машины для обучения

	2.2.2. Инструкции по работе с рекомендуемым программным 

	обеспечением

	Разработка и содержание курса

	Тематическое планирование и рабочая программа курса

	Дидактические материалы

	Учебно-методические материалы

	Учебные задачи, задания, лабораторные работы

	Контрольно-измерительные материалы

Заключение

Список литературы


Введение



Сейчас в наших научных организациях и университетах, как правило, имеются энтузиасты бесплатного распространяемого ПО и специалисты по ОС Linux. В то же время парк более-менее современных персональных компьютеров в этих организациях имеется. Закономерно появилась идея создавния параллельных вычислительных систем из общедоступных компьютеров на базе процессоров Intel и недорогих Ethernet-сетей, установив на эти компьютеры Linux и, объединив с помощью одной из бесплатно распространяемых коммуникационных библиотек (PVM, а затем MPI) эти компьютеры в кластер. Оказалось, что на многих классах задач и при достаточном числе узлов такие системы дают производительность, сравнимую с той, что можно получить, используя дорогие суперкомпьютеры. 

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

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

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

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

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

Единственной реальной возможностью в достаточной степени получить практические навыки такого сорта является организация для каждого учащегося на отдельном компьютере виртуальной сети из нескольких виртуальных компьютеров. Современное программное обеспечение позволяет применить виртуальные машины, что  дает различным категориям пользователей - от начинающих до IT-специалистов - множество преимуществ. Это и повышенная безопасность работы, и простота развертывания новых платформ, и снижение стоимости владения. И потому не случайно сегодня виртуальные машины переживают второе рождение. На сегодняшний день существуют три наиболее популярных инструмента, предназначенных для создания виртуальных машин и управления ими: Virtual PC 2004 компании Microsoft, VMware Workstation от компании VMware и относительно "свежий" продукт - Parallels Workstation, созданный в компании Parallels.

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

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

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

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

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

- изучить кластерные системы,  организацию кластерной системы, устройство кластера, сетевое обеспечение кластера;

- изучить параллельную виртуальную машину(PVM), взаимодействие её задач, администрирование PVM.

- Ознакомиться с возможностями виртуальных машин для построения

виртуальных локальных сетей.

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

- Ознакомиться с типичными содержаниями курсов по системному администрированию и определить содержание курса.

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

- Разработать инструкции по установке и использованию сетей виртуальных машин.

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

- Разработать лабораторные работы, упражнения и контрольные вопросы по темам курса.

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


1. Кластерные системы



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



1.1 Структура Beowulf и параметры



Сразу скажу, что кластер Beowulf - гетерогенная структура. В него могут входить самые разнообазные по параметрам компьютеры, построенные на различных аппаратных платформах, например Intel Pentium различных версий, Alpha, RISC-процессоры, Transmeta, 32-х и 64-х битовые процессоры. Более того, на компьютерах в кластере могут быть установлены самые различные системы: Linux, Windows, OS/2 WARP. Нашей целью будет построение кластера с минимальными усилиями. Поэтому, если вы хотите заниматься делом (сиречь научной работой), а не повышать свой профессионализм в области информационных технологий, о возможной гетерогенности кластера я предлагаю забыть. Будем считать, что аппаратная платформа комьютеров нашего будущего кластера однообразна. 

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

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

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

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

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

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

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



1.2 Виртуальный  скоростной канал, интерфейс



Рассмотрим более подробно каким образом из нескольких сетевых интерфейсов можно создать один виртуальный скоростной канал. 

Для увеличения эффективной пропускной способности сети кластера рекомендуется использовать так называемое "связывание каналов" или channel bonding. Это такой способ объединения узлов кластера в сеть, когда каждый узел подсоединяется к коммутатору более чем одним каналом. Чтобы достичь этого, узлы надо оснастить либо несколькими сетевыми платами, либо многопортовыми платами Fast Ethernet. Связать можно и гигабитные каналы. Связывание каналов аналогично режиму транкинга при соединении коммутаторов, который используется для увеличения скорости передачи данных между двумя или несколькими коммутаторами. Применение связывания каналов в узлах под управлением ОС Linux позволяет организовать равномерное распределение нагрузки приема/передачи между соответствующими каналами. 

Channel bonding пораждает некоторые проблемы связанные с выбором коммутаторов и их настройки. Коммутатор должен уметь работать со связанными каналами иначе могут происходить всевозможные ошибки при построении комутатором таблиц маршрутизации пакетов или таблиц MAC-адресов. То есть, как уже было упомянуто ранее, в качестве сетового оборудования надо выбирать такой ethernet switсh, который поддерживает для своих портов функции Link Aggregation или IEEE 802.3ad. Другим решением проблемы я вляется выбор коммутатора с возможностью поддержки режима виртуальных локальных сетей (VLAN). Применение VLAN призвано помочь избежать "дублирования" во внутренних таблицах коммутаторов MAC-адресов многопортовых сетевых плат. Впрочем, есть сообщения, что и поддержка VLAN не всегда помогает, вы можете попробовать этот вариант, но на свой страх и риск. 

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

Организация в системе сетевого итерфеса по методу channel bonding достаточно проста. Нужно только следовать одному правилу. Все присоединенные машины должны иметь одинаковый набор bonded networks, т.е. нельзя в одной машине использовать 2х100BaseTx, а в другой 10Base и 100BaseTx. Режим работы сетевых карт тоже должен быть однообразный. Другими словами, недопустим вариант, когда одна карта работает в full duplex, а другая в полудуплексном режиме. В каждой же отдельной машине можно устанавливать карты различных производителей, но работающие обязательно в одном стандарте. Channel bonding требует наличия как минимум двух физических подсетей. Но, при желании связанный канал можно построить на основе трех или более сетевых карт. 

Для связывания сетевых карт в один канал (одну виртуальную карту) необходимо либо скомпилировать ядро системы с поддержкой cannel bonding, либо загрузить в систему модуль ядра bonding.o. 

В Linux начиная с ядер 2.4.x channel bonding является стандартной включаемой опцией. Например в дистрибутиве Alt Linux Master 2.2 channel bonding поставляется в виде загружаемого модуля ядра. 

Для конфигурации связанного канала вам потребуется стандартная команда ifconfig и, возможно, дополнительная команда ifenslave. Программа 'ifenslave' копирует установки первого интерфейса на все остальные дополнительные интерфейсы. Этой же командой можно при желании какие-либо интерфейсы сконфигурировать в режиме Rx-only. 

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



/etc/rc.d/init.d/network stop 



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



alias bond0 bonding 



Сделанное нами добавление говорит системе о том, что при загрузке необходимо загрузить модуль bonding.o, который узнается так же по алиасу bond0. Чтобы не перезагружать систему, вручную загрузим модуль: 



modprobe bonding 



Теперь идем в каталог /etc/sysconfig/network-scripts и переименовываем файл описания нашего первого интерфейса ifcfg-eth0 в ifcfg-bond0: 

cp ifcfg-eth0 ifcfg-bond0 



Полученный нами файл ifcfg-bond0 мы должны отредактировать так, чтобы он принял примерно следующий вид: 



DEVICE=bond0

IPADDR=192.168.1.1

NETMASK=255.255.255.0

NETWORK=192.168.1.0

BROADCAST=192.168.1.255

ONBOOT=yes

BOOTPROTO=none

USERCTL=no 



Естественно вы должны указать свои собственные ip-адрес, маску, адрес сети и broadcast вместо 192.168.1 и пр. Надо заметить, что мы не удаляли никакие строчки из этого файла, просто сделали изменения в нужных местах и может быть добавили что-то. Таким образом мы создали файл описания нашего виртуального сетевого интерфейса. Следующим шагом будет создание файлов описания для двух наших реальных физических интерфейсов eth0 и eth1, в которых мы укажем, что они входят в состав связанного канала. Файлы ifcfg-eth0 и ifcfg-eth1 у нас должны иметь следующее содержимое: 

файл ifcfg-eth0	файл ifcfg-eth1

------------------------ 	---------------------------------

DEVICE=eth0	DEVICE=eth1

USERCTL=no	USERCTL=no

ONBOOT=yes	ONBOOT=yes

MASTER=bond0	MASTER=bond0

SLAVE=yes	SLAVE=yes

BOOTPROTO=none	BOOTPROTO=none



Теперь нам осталось только поднять сетевой интерфейс выполнив команду 



/etc/rc.d/init.d/network start 



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



/sbin/ifconfig bond0 192.168.1.1 up netmask 255.255.255.0 /sbin/ifenslave bond0 eth0 /sbin/ifenslave bond0 eth1 



Соответственно вместо 192.168.1.1 вы должны использовать тот ip-адрес, который вам нужен, и указать правильную маску подсети; приведенные выше строчки только пример. Чтобы не выполнять эти команды вручную каждый раз, запишите их в какой-нибудь startup-скрипт, например в /etc/rc.d/rc.local, или замените ими ту часть скрипта /etc/rc.d/init.d/network, которая отвественна за поднятие сетевого интерфейса. 

Как вы заметили, для ручного поднятия интерфейса мы использовали команду ifenslave. Это не стандартная системная команда. Программа ifenslave была разработана в рамках проекта Beowulf и вам придется скомпилировать ее из исходных кодов, которые вы можете взять непосредственно на сайте проекта http://beowulf.org/software/ifenslave.c или с сайта проекта Debian: ifenslave_0.07.orig.tar.gz, ifenslave_0.07-1.diff.gz. Естественно, все это вы можете найти в разделе Download этого сайта. Компиляция программы происходит следующей командой: 



gcc -Wall -Wstrict-prototypes -O -I/usr/src/linux/include ifenslave.c -o ifenslave 



Не забудьте только положить полученный исполняемый файл в /usr/sbin. 



Если по каким то причинам вам нужно, чтобы все сетевые драйверы были загружены до загрузки bonding-драйвера, добавьте ниже приведенную строчку в файл /etc/modules.conf. Эта инструкция укажет системе, что в случае поднятия интерфейса bond0 утилита modprobe должна сначала загрузить драйверы для всех ваших сетевых интерфейсов. 



probeall bond0 eth0 eth1 bonding 



Собственно на этом настройка channel bonding закончена. Если сетевой интерфейс поднялся без ошибок, то проверить этот знаменательный факт можно используя обычную команду ifconfig. Запустив ее без параметров вы должны увидеть нечто подобное: 



[root]# /sbin/ifconfig

bond0     Link encap:Ethernet  HWaddr 00:C0:F0:1F:37:B4

inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0

UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1

RX packets:7224794 errors:0 dropped:0 overruns:0 frame:0

TX packets:3286647 errors:1 dropped:0 overruns:1 carrier:0

collisions:0 txqueuelen:0



eth0      Link encap:Ethernet  HWaddr 00:C0:F0:1F:37:B4

inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0

UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1

RX packets:3573025 errors:0 dropped:0 overruns:0 frame:0

TX packets:1643167 errors:1 dropped:0 overruns:1 carrier:0

collisions:0 txqueuelen:100

Interrupt:10 Base address:0x1080



eth1      Link encap:Ethernet  HWaddr 00:C0:F0:1F:37:B4

inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0

UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1

RX packets:3651769 errors:0 dropped:0 overruns:0 frame:0

TX packets:1643480 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:100

Interrupt:9 Base address:0x1400



lo        Link encap:Local Loopback

inet addr:127.0.0.1  Mask:255.0.0.0

UP LOOPBACK RUNNING  MTU:16436  Metric:1

RX packets:1110 errors:0 dropped:0 overruns:0 frame:0

TX packets:1110 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0



Если вы увидели нечто подобное на экране монитора, можете себя поздравить, вы успешно сконфигурировали связанный канал. Как видите, ip- и MAC-адреса всех сетевых интерфейсов у нас получились одинаковыми. Чтобы switch мог нормально работать с таким каналом вам необходимо настроить Link Aggrigation. Как это делать вы можете прочитать в документации вашего коммутатора. Для разных моделей коммутатров и разных версий их программного обеспечения это может делаться по-разному. Поэтому в данной книге мы опустим вопросы настройки Link Aggrigation на коммутаторах. 

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







1.3  Устройство кластера



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

Узлы кластера. Подходящим выбором в данный момент являются системы на базе процессоров Intel Pentium 4. Стоит установить на каждый узел не менее 64-128MB оперативной памяти. Одну из машин следует выделить в качестве центральной (консоль кластера) куда можно (но не обязательно) установить достаточно большой жесткий диск, возможно более мощный процессор и больше памяти, чем на остальные (рабочие) узлы. Делать консоль кластера более мощной машиной имеет смысл, если вы захотите иметь на этом компьютере кроме интерфеса командной строки более удобное операционной окружение, например оконый менеджер (KDE, Gnome), оффисные программы, программы визуализации данных и т.п.. 

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

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

Возможна организация кластеров на базе уже существующих сетей рабочих станций, то есть рабочие станции пользователей могут использоваться в качестве узлов кластера ночью и в нерабочие дни. Системы такого типа называют COW (Cluster of Workstations). В этом случае реальным представляется вариант, когда кластер строится на основе существующего компьютерного класса. Подобные классы уже имеются в большинстве учебных или научных учреждениях и обычно скомплектованы однотипными машинами, что и необходимо для кластера. Однако обычно такие компьютерные классы работают под операционной системой Windows и, вероятно, для замены ее на Unix придется решить вопросы административного плана и вопросы связанные с построением учебного процесса. Принципиальных препятствий для решения этих вопросов по-видимому нет, поскольку Unix (конкретно Linux) имеет все необходимое программное обеспечение для проведения учебного процесса или научной деятельности (компиляторы, средства разработки, офисные программы, программы работы с изображениями и визуализации данных, средства публикации (TeX)). Эта книга, например, большую часть времени писалась на консоли кластера в OpenOffice под управлением операционной системы Linux. Нельзя сказать, чтобы я испытывал при этом какую-либо ностальгию по старому доброму MS Word. 

По большому счету отказываться от Windows не обязательно. Коммуникационные библиотеки PVM, MPI имеются не только для UNIX, но и для Windows. Если установка в компьютерном классе UNIX-сети вызывает непреодолимую аллергическую реакцию у админов или преподавателей, можно оставить ту операционную систему, к которой вы привыкли. 

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

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

Для получения хорошей производительности межпроцессорных обменов используют полнодуплексный Fast Ethernet на 100Mbit/sec или Gigabit Ethernet. При этом для уменьшения числа коллизий или устанавливают несколько "параллельных" сегментов Ethernet, или соединяют узлы кластера через коммутатор (switch). Под "параллельными" сегментами подразумевается такая структура сети, когда каждый узел кластера имеет более одной сетевой карты, которые с помощью специальных драйверов объединяются в один виртуальный сетевой интерфейс, имеющий суммарную пропускную способность. Для того, чтобы избежать проблем с конфигурированием такого виртуального интерфеса, следует использовать одинаковые сетевые карты на всех машинах кластера. Кроме того, каждая параллельная линия такого интерфеса должна представлять из себя Ethernet-сеть построенную на отдельном (от других параллельных ей линий) комутаторе.



1.4 ОПЕРАЦИОНАЯ СИСТЕМА



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

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

Плюсом Linux является "прозрачность" для пользователя и системного администратора, что позволяет быстрее и проще разрешать все возникающие проблемы. 

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

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

Рассмотренные ранее средства для построения кластера (PVM, MPI) имеют реализации как для операционных систем семейства UNIX (Linux, FreeBSD и т.п.), так и для систем фирмы Майкрософт. Поэтому, если вы испытываете непреодолимые трудности в отказе от Windows, то расстраиваться по этому поводу не надо. Кластер можно поднять и под Windows, причем трудозатраты на установку коммуникационной среды будут такими же как и в варианте с UNIX, то есть небольшими. Основная ваша трудность будет заключаться в том, чтобы научиться писать параллельные программы. 

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

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

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

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

малую защищенность системы от неквалифицированных действий пользователей (студентов); 

подверженность системы различного рода "взломам" при сетевом использовании и подверженность вирусам; 

неустойчивость работы системы, проявляющаяся в зависаниях и потере информации; 

большая стоимость лицензий на использование систем; 

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

большие требования к возможностям компьютера (память, быстродействие); 

частая смена версий ОС (примерно каждые два года). 

По поводу ломки учебных планов можно сказать следующее. Решение построить кластер на базе вычислительных мощностей имеющегося в наличии компьютерного класса может быть принято скорее всего на физических или математических факультетах ВУЗов. Целью обучения студентов на этих факультетах не ставится подготовка квалифицированных секретарей-референтов со знанием компьютера. Все же остальные цели компьютерной практики вполне могут быть достигнуты и при использовании операционной системы Linux. Жесткая ориентация на продукты фирмы Майкрософт в действительности не обоснована нуждами учебного процесса. Кроме того, ОС Linux вполне может сосуществовать с Windows на одном и том же компьютере и загружаться только по мере необходимости. Другое дело, что проблемой может встать наличие лаборантов, имеющих достаточный уровень квалификации в Linux. 

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

более эффективно использовать имеющиеся вычислительные средства 

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



1.5 ОРГАНИЗАЦИЯ КЛАСТЕРНОЙ СЕТИ



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

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

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

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

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

Сетевое оборудование	Пиковая пропускная способность	Латентность

1. FastEthernet	12.5 Mbyte/sec	150 sec

2. GigabitEthernet	125 Mbyte/sec	150 sec

3. Myrinet	160 Mbyte/sec	5 sec

4. SCI	400 Mbyte/sec (реально 100)	2.3 sec

5. cLAN	150 Mbyte/sec	30 sec

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

Для малобюджетных кластеров использование супербыстрых Myrinet, SCI, cLAN скорее всего может оказаться нереальным с финансовой точки зрения. Поэтому рассмотрим более дешевые решения. Использование для кластера 10Mbit-сети хотя и возможно, но малоприятно. В результате вы рискуете получить от использования кластера больше разочарований, чем реального увеличения эффективности вашей работы. Далее мы будем рассматривать оборудование для сетей от 100Mbit и выше. 

Сетевые карты. В качестве сетевых адаптеров можно использовать любые имеющиеся в продаже карты, поддерживающие работу в стандартах 100BaseTx и GigabitEthernet. Что касается списка предпочтений, то можно порекомендовать в первую очередь 3Com. Среди других вариантов можно назвать Compex, Intel, Macronix, другие карты, поддерживаемые драйвером tulip, например карты на чипсетах DC21xxx. Особенно популярными при построении кластеров явяляются платы на базе микросхем Intel 21142/21143. Популярность этих карт вызвана бытующим мнением об их высокой производительности, в то время как их цена по сравнению с конкурирующими предложениями обычно довольно невелика. Что касается сетевых карт фирмы 3Com, то они имеют некоторые преимущества, заметно влияющие на производительность сетевых коммуникаций. Приведем лишь несколько примеров возможностей аппаратного обеспечения карт 3Com. 

Разгрузка процессора при вычислении контрольных сумм TCP/UDP/IP. Освобождает центральный процессор от интенсивных вычислений контрольных сумм, выполняя их в самой сетевой плате. Тем самым повышается производительность системы и время жизни процессора. 

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

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

Режим Bus mastering DMA. Обеспечивает более эффективный обмен данными для снижения загрузки центрального процессора. 

В любом случае, если вы не предполагаете использовать технологию связывания каналов (channel bonding), которая позволяет объединять несколько сетевых адаптеров в один скоростной виртуальный канал, то вы можете себя чувствовать достаточно свободно выбирая для покупки ту или иную карту. Практически все современные сетевые карты, имеющиеся сейчас в продаже, без проблем распознаются Linux'ом и нормально работают. 

Для организации связанного канала (channel bonding) лучше всего выбрать сетевые карты Intel EtherExpress PRO/100, 3Com FastEthernet (например 3c905B, 3c905C) или какие-либо карты GigabitEthernet от 3Com или Intel. Так же интересным вариантом являются специализированные серверные сетевые карты, в которых имеется более одного Ethernet-порта. Примерами таких адаптеров могут быть Intel EtherExpress PRO/1000 MF Dual Port или 3Com Fast EtherLink Server Dual Port 3c982C-TXM , которые я без труда нашел на http://www.price.ru. Использование таких карт позволит занимать в компьютере вдвое меньше PCI-слотов и, соответственно, устанавливать вдвое больше сетевых карт для объединения их в связанный канал. 

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

Коммутаторы и другие элементы сетевой структуры используются для обеспечения коммуникаций между процессорами, для поддержки параллельного программирования и различных функций управления. Для параллельного программирования (организации межпроцессного взаимодействия (Inter Process Communication, IPC) широко используется коммутатор Myrinet-2000 компании Myricom (http://www.myri.com) - очень быстрое, хорошо масштабируемое широкополосное устройство. Считается, что при увеличении числа подключенных узлов общая ширина полосы пропускания - как у всех коммутаторов с настоящей масштабируемостью - растет пропорционально, а латентность остается постоянной. Иными словами, полоса на каждом из путей одинакова, а число путей (направлений) зависит от количества узлов, при этом каждый узел имеет связь со всеми остальными узлами независимо от размера кластера. Например, полоса в расчете на направление может составлять 200 Мбайт/с в каждом направлении с латентностью в 6-8 мкс. Коммуникации между пользовательскими пространствами могут реализовываться на основе протоколов IP или GM при помощи ПО пользовательского уровня Myricom. 

Если среда параллельных вычислений не требует повышенной интенсивности коммуникаций между процессорами, то могут использоваться менее дорогостоящие средства, скажем, Ethernet. В индивидуальном заказном проекте могут также применяться технологии GigaNet, SCI или ServerNet, а в будущем и InfiniBand. 

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

Если говорить, к примеру, о 100Мбит сети, то задачей комутатора является обеспечение пропускной способности 100 Мбит/с одновременно для всех n/2 соединений между парами портов n-портового коммутатора. Теоретически коммутатор должен это гарантировать, но на практике производители оборудования весьма часто идут на упрощение электронной начинки своей продукции, как с целью удешевления, так и с целью максимального увеличения числа портов. В последнем случае при распараллеливании могут возникать конфликты на уровне Fast Ethernet, что снижает скорость обмена сообщениями и соответственно эффективность распараллеливания. 

По моему личному опыту таблица приоритетов при выборе сетевого коммуникатора для построения сети кластера может выглядеть так: Cisco Catalist, 3Com SuperStack 3, Compex Switch. Ну и на последнем месте стоят самые дешевые хабы различных производителей, таких как Compex или 3Com. 

Конечно, принимая решение о выборе коммутатора, необходимо учесть и другие их характеристики, в том числе цену. Хорошая продукция и стоит дороже. Так, отличные коммутаторы Cisco Catalyst (например, известная модель 5000, имеющая большее число портов и поддерживающая возможность связывания каналов) имеют более высокую цену, чем оборудование не столь "именитых" фирм. 

Не все коммутаторы могут обеспечить возможность применения связанных каналов. Если вы предполагаете использовать channel bonding для увеличения пропускной способности вашей сети, то необходимо с особой тщательностью подходить к выбору коммутатроа. Обычные хабы в этом случае отпадают сразу. Проблема в связывании каналов заключается в том, что пр наличии channel bonding у вас появляется две или несколько сетевых карт с одинаоквым MAC-адресом. В обычном режиме работы коммутатор либо просто "сойдет с ума", либо будет интенсивно перестраивать свои внутренние таблицы портов, переназначая ваш MAC-адрес с одного порта на другой. Это может привести либо к полной неработоспособности канала, либо к значительным потерям пакетов и существенному снижению производительности сети. Для обеспечения нормальной работы таких связанных каналов в коммутаторе должны быть предусмотрены функции Link Aggrigation или, по другому, работа в стандарте IEEE 802.3ad. При покупке коммутатора внимательно читайте прилагаемые спецификаци и ищите эти магические словосочетания. Не все коммутаторы, имеющие функцию Link Aggrigation, позволяют применять ее для всех портов. Например, существуют модели, которые имеют 12/24 100Мбит и два гигабитных порта. В таких моделях Link Aggrigation можно настроить только для гигабитных портов, используя их для связи между двумя коммутаторами. Ясно, что такие модели не применимы для наших целей. Поэтому консультации со специалистами при покупке коммутатора обязательны. 

В качестве примеров коммутатором, позволяющих настроить Link Aggrigation, можно упомянуть Cisco Catalist 2900 series, Cisco Catalist 3500 series, Cisco Catalist 5000 series, 3Com SuperStack 3 4950, 4400 и др. Следует отметить, что наличие или отсутствие функций Link Aggrigation зависит не только от модели коммутатора, но и от версии его программного обеспечения.



1.6 Параллельная виртуальная машина(PVM) 



Основой вычислительной среды кластера Beowulf является параллельная вирутальная машина PVM. PVM (Параллельная Виртуальная Машина) - это пакет программ, который позволяет использовать связанный в локальную сеть набор разнородных компьютеров, работающих под операционной системой Unix, как один большой параллельный компьютер. Таким образом, проблема больших вычислений может быть весьма эффективно решена за счет использования совокупной мощности и памяти большого числа компьютеров. Пакет программ PVM легко переносится на любую платформу. Исходные тексты, свободно распространяемые netlib, был скомпилирован на компьютерах начиная от laptop и до CRAY. 

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

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

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

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

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

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



1.6.1 Взаимодействие задач в PVM

В системе PVM каждая задача, запущенная на некотором процессоре, идентифицируется целым числом, которое называется идентификатором задачи (TID) и по смыслу похоже на идентификатор процесса в операционной системе Unix. Система PVM автоматически поддерживает уникальность таких идентификаторов: копии одного исполняемого файла, запущенные параллельно на N процессорах PVM, создают N задач с разными TID. 

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

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

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

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

Память для буферных массивов на передающей и приемной стороне выделяется динамически, следовательно, максимальный объем сообщений ограничивается только объемом доступной памяти. Если одна из задач, запущенных в PVM, не может получить требуемую память для общения с другими задачами, то она выдает пользователю соответствующее сообщение об ошибке ("cannot get memory"), но другие задачи об этом событии не извещаются и могут, например, продолжать посылать ей сообщения.



1.6.2 Управление задачами

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



call pvmfmytid( tid ) 



возвращающую значение идентификатора задачи tid >= 0, которым может определяться выбор для выполнения той или иной части программы. Эта функция может вызываться более одного раза. 

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



call pvmfspawn( task, flag, where, ntask, tids, numt )

task - имя исполняемого файла

INTEGER flag   - опции запуска

where - указывает место запуска

INTEGER ntask - число запускаемых копий программы

INTEGER tids - массив значений tid для запущенных задач

Эта функция запускает в PVM ntask копий исполняемого файла с именем "task" с одинаковыми аргументами командной строки в массиве argv и возвращает число запущенных задач numt а также последовательность идентификаторов для запущенных задач. Причем, если numt Второй вариант написания параллельной задачи заключается в том, что для каждого процессора пишутся свои собственные задачи, выполняющие различные действия, и создается маленькая программа, которая, используя функцию pvm_spawn запускает все остальные задачи. 

Исполняемый файл для функции pvm_spawn() должен находиться в строго определенном каталоге. Под Unix задача ищется в каталогах $PVM_ROOT/bin/$PVM_ARCH/ и $HOME/pvm3/bin/$PVM_ARCH. Задавать имя каталога в параметре "task" недопустимо. 

Но это не единственный способ. В другом варианте исполняемый файл ищется (и запускается) не только на том компьютере, на котором работает вызвавшая pvm_spawn() задача, но в зависимости от параметров flag и where, на любом входящем в состав PVM. Например, если flag==0, то PVM сам выбирает, на какой из машин запускать новые задачи (главное, чтобы приложение было скомпилировано на этих машинах); а если flag & PvmMppFront > 0, то местом запуска будет выбран самый быстрый компьютер. 

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



В FORTRANe flag может быть суммой следующих величин:



PVMDEFAULT=0 - PVM может выбрать любую машину для старта задачи

PVMHOST=1 - параметр where определяет машину для запуска

PVMARCH=2 - параметр where определяет тип архитектуры

PVMDEBUG=4 - процесс старует под отладчиком

PVMTRACE=8 - процесс генерирует PVM trace data.



Параметр where описывает на каких компьютерах кластера может быть запущена задача. Параметр является простой строковой переменной, в которую записано имя списка компьютеров. Списки компьютеров находятся в конфигурационных файлах системы PVM и формируются на этаме ее установки. Например в случае, когда в вашем кластере кроме консольной машины присутствует еще два компьютера: один класса P166 и другой класса P4, вы можете определить их в системе под именами "oldcomp" и "supercomp". И в зависимости от тех или иных условий, запускать свои задачи на какой-либо их этих машин кластера. 



И, наконец, еще две функции, относящиеся к управлению задачами. 



call pvmfkill( tid, info )

call pvmfexit( info ) 



Первая из них завершает выполнение задачи с идентификатором tid, возвращая при ошибке код ошибки info < 0. Отметим, что задача не может таким образом завершить свое выполнение. Вторая функция завершает работу PVM, запущенной пользователем, но при этом сама задача продолжает выполняться уже как обычная локальная задача и завершает работу обычным образом.



1.6.3 Передача сообщений

Посылка сообщений в PVM предназначена для передачи данных между различными процессам и состоит из трех шагов. Во-первых, буфер данных перед посылкой должен быть проинициализирован с использованием функций pvm_initsend() или pvm_mkbuf(). Во-вторых, пересылаемые данные должны быть "упакованы" в этот буфер. Для упаковки используется некоторе количество комбинаций вызовов функции pvm_pk*(). В FORTRANе упаковка данных производится подпрограмой pvmfpack(). Третий шаг заключается в пересылке данных адресатам. Для этой цели в зависимости от списка адресатов используется вызов функции pvm_send(), в параметрах которой указывается конкретный процесс-приемник, или функции pvm_mcast(), используемой для всенаправленной передачи (то есть всем процессам сразу). 

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

для приема любых сообщений 

для приема любых сообщений от определенного источника 

для приема любых сообщений с определенным message tag 

для приема любых сообщений с определенным message tag от определенного источника 



Кроме того, существует функция для проверки факта доставки сообщения адресату. Буфер сообщения 



call pvmfinitsend( encoding, bufid ) 



Если пользователь использует только один буфер сообщения (обычно так и делается), то единственная необходимая для работы с буфером функция - это pvm_initsend(). Эта функция вызывается непосредственно перед упаковкой новой порции пересылаемых данных в буфер сообщения. Функция pvm_initsend освобождает буфер и создает новый для упаковки в него данных. Схема кодировки упаковываемых в буфер данных указывается заданием переменной encoding. Возвращаемое в переменную bufid значение является идентификатором буфера. Переменная encoding может принимать следующие значения: 

PvmDataDefault - XDR кодировка, используемая в PVM по умолчанию. Эта кодировка используется обычно в гетерогенных кластерах, когда PVM не может знать понимает ли принимающая сторона передаваемый формат данных. Например, когда данные передаются с Linux-машины на Windows-машину. В случае, когда в кластере используется только один тип операционной машины или когда пользователь уверен, что принимающая сторона поймет все правильно, следует использовать тип кодировки PvmDataRaw. PvmDataRaw - без кодировки. Даные передаются без каких либо изменений. Если принимающая сторона не сможет правильно прочитать этот формат, это вызовет возврат кода ошибки в процессе распаковки. PvmDataInPlace - данные остаются на месте, не перемещаясь в буфер посылки. Этот тип кодировки можно использовать для снижения накладных расходов, связанных с перемещением данных в буфер. В этом случае буфер содержит только длины и указатели на передаваемые данные. Когда вызвана pvm_send(), данные копируются непосредственно с того места, где они расположены. Использование этой кодировки накладывает одно ограничение. Передаваемые данные не должны быть изменены между моментом, когда началась их упаковка и моментом окончания передачи буфера сообщения адресату. Однако, при использовании данного типа упаковки, имеется одно заметное преимущество. Функция упаковки pvm_initsend может быть вызвана только один раз в начале прогарммы. Например в начале работы программы мы можем упаковать данные из области перекрытия (см. главу "Декомпозиция данных") и передавать их множество раз по мере необходимости. 



1.6.4 Упаковка данных 

Для FORTRANа существует только одна функция, которая управялет упаковкой данных всех типов. 



call pvmfpack( what, xp, nitem, stride, info ) 



В пареметре what указывается тип упаковываемых данных. Параметр xp является первым элементом массива данных. Пареметры nitem и stride описаны выше. Параметр info - возвращаемое значение. Значения параметра what представлены в следующей таблице: 



STRING          0       REAL4           4

BYTE1           1       COMPLEX8        5

INTEGER2        2       REAL8           6

INTEGER4        3       COMPLEX16       7



Константы, соответствующие значениям параметра what определены в файле pvm3/include/fpvm3.h. Некоторые производители могут расширять этот список дополнительными данными, например INTEGER8, REAL16 и др. 



Приведем пример использования всех этих функций: 



CALL PVMFINITSEND(PVMRAW, INFO)

CALL PVMFPACK( INTEGER4, NSIZE, 1, 1, INFO )

CALL PVMFPACK( STRING, `row 5 of NXN matrix', 19, 1, INFO )

CALL PVMFPACK( REAL8, A(5,1), NSIZE, NSIZE , INFO )

CALL PVMFSEND( TID, MSGTAG, INFO )



Прием и посылка данных 



call pvmfsend( tid, msgtag, info )

call pvmfmcast( ntask, tids, msgtag, info )



Функция pvm_send() помечает сообщение тагом msgtag и выполняет немедленную пересылку данных процессу с соответствющим идентификатором tid. 

Функция pvm_mcast() помечает сообщение тагом msgtag и выполняет немедленную пересылку данных все процессам, имеющим идентификаторы, совпадающими со значениями, хранящимися в массиве tids. Длина массива tids равна ntask. 

Следующие функции предназначены для совмещения работы по упаковке данных и их пересылке: 



call pvmfpsend( tid, msgtag, xp, cnt, type, info )



Эти функции упаковывают массив определенного параметром type типа в буфер и передают его процессу, идентифицированному параметром tid. В FORTRANе типы данных определены так же, как и для процедуры pvmfpack(). 



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

Следующие процедуры осуществляют блокирующий прием сообщений: 



call pvmfrecv( tid, msgtag, bufid ) 



Эти процедуры инициируют процесс ожидания поступления сообщения, помеченного тагом msgtag от процеса с идентификатором tid (если сообщение еще не пришло). В случае, когда значения параметров tid и/или msgtag равны -1, осуществляется ожидание сообщения от любого процесса и/или сообщения с любым тагом. 

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

call pvmfnrecv( tid, msgtag, bufid ) 

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

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



call pvmfprobe( tid, msgtag, bufid ) 



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

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



call pvmfprecv( tid, msgtag, xp, cnt, type, rtid, rtag, rcnt, info ) 



Эту функцию можно использовать для приема сообщений, в которых содержатся однотипные данные. Вызов этой функции инициирует процесс ожидания сообщения, помеченного тагом msgtag от процесса с идентификатором tid. По поступлении сообщения pvm_precv распаковывает данные общим объемом len * (size of data type) в буфер buf. 

Типы данных в FORTRAN-программах такие же, как это дано в описании функции pvmfpack. 

Описание параметров функций: 

tid	ID процесса откуда мы ждем сообщение. "-1" означает "любой процесс".

msgtag	Ожидаемый таг сообщения. "-1" означает "любое сообщение".

vp	Указатель на массив (переменную) куда будут помещены полученные данные.

xp	Массив (переменная) куда будут помещены полученные данные. (FORTRAN)

cnt	Количество ожидаемых элементов указанного типа.

type	Тип получаемых данных (см. выше).

rtid	Возвращаемый параметр. ID процесса, откуда пришло сообщение.

rtag	Возвращаемый параметр. Таг (метка) полученного сообщения.

rcnt	Возвращаемый параметр. Длина полученного сообщения (кол-во элементов).

info	Содержит на выходе PvmOk если все нормально и отрицательное значение в случае ошибки.



1.6.5 Распаковка полученных данных 

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



call pvmfunpack( what, xp, nitem, stride, info ) 



Параметр xp - массив, куда будут помещены распакованные данные. 

Параметры nitem и stride имеют тот же смысл, что и в соответствующих функциях упаковки (см. выше). 

Параметр what был так же описан выше. 



1.6.6 Отладка в PVM

По умолчанию только текст, выводимый родительской задачей (то есть той, которую вы сами запустили с терминала) окажется на экране. Стандартный вывод задач, запускаемых функцией pvm_spawn(), по умолчанию перенаправляется в LOG-файл исполняющей системы PVM ($PVM_TMP/pvml.*). Функция 



call pvmfcatchout( onoff, info ) 



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



call pvmfcatchout (1, info);

call pvmfspawn (... 



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



1.6.7 Установка PVM

Установка системы PVM на компьютере, работающем под управлением операционной системы Linux достаточно проста и не требует каких либо длительных настроек. Cистема PVM распространяется бесплатно и в исходных кодах. Исходники PVM вы можете найти на этом сайте или непосредственно на сайте разработчиков по адресу http://www.netlib.org/pvm3/index.html. 

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



tar zxvf pvm3.3.4.tgz 



Перед сборкой и запуском PVM вы должны установить переменную окружения $PVM_ROOT, указав в ней полный путь к каталогу, в котором хранится система. Если вы используете в качестве командной оболочки csh, вам необходимо добавить следующую строку в файл .cshrc: 



setenv PVM_ROOT=/pvm3 



Если же вы используете оболочки, которые используют .profile, наприемр sh или ksh, или bash, которая использует .bashrc, тогда добавьте в соответствующий файл такую команду: 



export PVM_ROOT=/pvm3 



Так же вы должны определить другие переменные окружения, необходимые для функционирования PVM, добавив после команды определения PVM_ROOT содержимое соответствующих командной оболочке файлов: pvm3/lib/cshrc.stub, pvm3/lib/kshrc.stub или pvm3/lib/bashrc.stub. 

По умолчанию PVM использует протокол rsh для общения с другими компьютерами кластера. Если вы хотите rsh заменить на ssh, вы должны изменить файл /pvm3/conf/LINUX.def, прописав в переменной ARCHCFLAGS параметр RSHCOMMAND, определив для него полный путь к команде ssh (например /usr/bin/ssh). Например на моем кластере файл /pvm3/conf/LINUX.def выглядит так: 



#

ARCHCFLAGS	=	-DSYSVSIGNAL -DNOWAIT3 -DRSHCOMMAND=\"/usr/bin/ssh\" \

-DNEEDENDIAN -DFDSETNOTSTRUCT -DHASERRORVARS \

-DCTIMEISTIMET -DSYSERRISCONST -DNOTMPNAM

ARCHDLIB	=

ARCHDOBJ	=

ARCHLIB		=

HASRANLIB	=t

AR		=ar

PVM_ARCH	=LINUX

MAKE		=make

В дальнейшем будем считать, что виртуальная машина была собрана именно с такими изменениями, то есть с заменой rsh на ssh. 

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

Для сборки и установки PVM, находясь в каталге /pvm3, выполните команду make. По окончании ее работы система PVM готова к запуску. Следует отметить, что для уменьшения проблем, связаных с настройкой PVM на узлах кластера, на всех машинах кластера PVM следует устанавливать в один и тот же каталог.


Глава 2.	Обучение будущих учителей сетевому администрированию



2.1.	Анализ целесообразности обучения будущих учителей сетевому администрированию



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

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

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

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

Единственной реальной возможностью в достаточной степени получить практические навыки такого сорта является организация для каждого учащегося на отдельном компьютере виртуальной сети из нескольких виртуальных компьютеров. Современное программное обеспечение позволяет применить виртуальные машины, что  дает различным категориям пользователей - от начинающих до IT-специалистов - множество преимуществ. Это и повышенная безопасность работы, и простота развертывания новых платформ, и снижение стоимости владения. И потому не случайно сегодня виртуальные машины переживают второе рождение. На сегодняшний день существуют три наиболее популярных инструмента, предназначенных для создания виртуальных машин и управления ими: Virtual PC 2004 компании Microsoft, VMware Workstation от компании VMware и относительно "свежий" продукт - Parallels Workstation, созданный в компании Parallels.

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


2.2.	Виртуальная машина для обучения



2.2.1.	Анализ и выбор виртуальной машины для обучения

Можно сравнить наиболее популярные виртуальные машины с целью выбора наиболее перспективной для целей обучения. 



Название

Создатель

Процессор хост-машины

ОС хост-машины

Официально поддерживаемые гостевые ОС

Поддержка SMP в гостевых ОС

Поддержка драйверов в гостевой ОС

Принцип действия

Лицензия

Скорость работы гостевой ОС в сравнении с ОС хоста

Parallels Workstation

Parallels, Inc.

Intel x86, Intel VT-x

Windows, Linux, Mac OS X (Intel version)

Windows, Linux, FreeBSD, OS/2, eComStation, MS-DOS, Solaris

Нет

Есть

Виртуализация, легковесный гипервизор

Проприетарная

Близка к производительности хост-системы

Virtual PC 2007

Microsoft

Intel x86, x64

Windows Vista (Business, Enterprise, Ultimate), XP Pro, XP Tablet PC Edition

DOS, Windows, OS/2

Нет

Есть

Virtualization (перехват гостевых вызовов)

Проприетарная (бесплатная с июля 2006 года)

Практически без потерь, если используются расширения Virtual Machine additions

VirtualBox 2004

Innotek

Intel x86

32-bit Windows, Linux, MacOS X

DOS, Windows, Linux, OpenBSD

Нет

Есть

Динамическая рекомпиляция (основана на QEMU)

Свободная и проприетарная версии (GPL, PUEL)

Практически без потерь, если используются расширения




Продолжение таблицы

VMware Workstation 5.5

VMware

Intel x86, AMD64

Windows, Linux

DOS, Windows, Linux, FreeBSD, Netware, Solaris, Virtual Appliances[10]

Есть

Есть

Виртуализация x86

Проприетарная

При использовании VMware Tools практически без потерь



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

Первая в индустрии технология “тонкого” гипервизора для рабочих станций, позволяет Parallels Workstation работать с каждой виртуальной машиной точно так же, как с реальным компьютером. Каждая виртуальная машина располагает своим процессором, своей оперативной памятью, дисководами CD или DVD, портами USB, устройствами ввода/вывода, то есть полным набором атрибутов реального компьютера. Кроме того, “тонкий” гипервизор Parallels Workstation позволяет пользователям уже сейчас воспользоваться всеми преимуществами аппаратных архитектур нового поколения, таких, как Intel Virtualization Technology® ("VT") и AMD "Pacifica".

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

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

Разработчики могут с помощью Parallels Workstation создавать виртуальные среды для разработки и тестирования нового программного обеспечения на единственном компьютере, получая возможность проверить работоспособность различных вариантов установки и использования ПО. Это упрощает и ускоряет процесс тестирования – тестеры выполняют больше работы за тот же срок, растет производительность и качество тестирования, что помогает выпускать более совершенные программные продукты.

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

Продемонстрировать и продать многоуровневое приложение с помощью одного ноутбука.

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

Старые, но необходимые приложения работают рядом с современными. 

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

Персональная рабочая среда для обучения 

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

Основные возможности: 

- Технология ”тонкого” гипервизора, позволяющая создавать стабильно работающие, высокопроизводительные виртуальные машины. • Полная совместимость с технологией Intel VT, оптимизация для технологии AMD "Pacifica". 

- Устанавливается на любой компьютер, работающий под управлением Windows или Linux • Виртуальные машины работают практически со всеми гостевыми ОС, совместимыми с набором команд x86, включая Windows 3.1-XP/2003, Linux, FreeBSD, Solaris, OS/2, eComStation и DOS.

 -  Небольшой размер дистрибутива, установка одним нажатием на кнопку мыши.

- Система Мастеров (Wizards), позволяющая установить виртуальные машины любой сложности за несколько секунд.

 - Простой и понятный интерфейс для управления и настройки виртуальных машин. 

- Доступная цена.

Новые возможности, реализованные в Parallels Workstation 2.2: 

- Улучшенная мощность, стабильность и изолированность виртуальных машин.

 - Полностью переработанный пользовательский интерфейс.

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

- Улучшенный виртуальных процессор и расширенная поддержка технологии Intel VT® у виртуальных машин.

 - Функциональность "Suspend and Resume" - возможность приостановить работу виртуальной машины не закрывая гостевую ОС, а позднее возобновить, не загружая.

 - Поддержка PAE режима первичных ОС для размера памяти до 4GB of RAM.

 - Использование пакета утилит Parallels Tools для персональной настройки гостевой среды.

 - Поддержка SUSE Linux 10 в качестве, как первичной, так и гостевой ОС, а Sun Solaris – как гостевой.



2.2.2.	Инструкции по работе с рекомендуемым программным обеспечением

Виртуальная машина Parallels Workstation работает на Windows, Linux и Mac OS. Размер дистрибутива для Windows 16,3 мегабайт. 

Установка Parallels Workstation

Установка виртуальной машины выполняется мастером, который в ходе своей работы задаёт несколько стандартных вопросов: необходимо принять условия лицензионного соглашения; ввести своё имя и почтовый адрес для отправки на него ключа с ограниченным сроком действия для ознакомления с работой Parallels Workstation, либо, если программа уже была приобретена, ввести активационный ключ; выбрать папку для установки программы; выбрать имя новой группы ярлыков для запуска виртуальной машины в меню Пуск; включить создание ярлыков на рабочем столе или в панели быстрого запуска. После этого мастер скопирует файлы программы и установит необходимые драйверы. Для начала работы с виртуальной машиной перезагружать компьютер не требуется, если машина установлена на Windows XP и старше.

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







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







На следующем шаге работы мастера нужно выбрать тип гостевой операционной системы, которая в последствии будет установлена на создаваемую виртуальную машину. Доступны следующие варианты: Windows (все версии от 3.11 до 2003), Linux (Red Hat, Debian, Fedora Core, SUSE, Mandriva, другие версии, в том числе ядра 2.4 и 2.6), FreeBSD (4, 5, другие), OS/2 (Warp 3, 4, 4.5, eComStation 1.1, 1.2, другие OS/2), Solaris (9, 10, другие), MS-DOS (6.22, другие). Последним идёт пункт Other. 

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

Следующий шаг - создание виртуального жёсткого диска.

Здесь возможны два варианта: создать диск, под который сразу же будет отведён затребованный объём (Plain), или создать виртуальный жёсткий диск, который будет занимать в файловой системе основной операционной системы минимум места и будет увеличиваться по мере заполнения диска в виртуальной машине. 







Выбор папки для хранения файла виртуального жёсткого диска.

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





Тип подключения к сети.

Доступны 3 варианта: 

- Разделение подключения к физической сети (виртуальная машина будет доступна по локальной сети). 

- Сеть только между гостевой и главной операционной системой. 

- Без поддержки сети. 

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

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

Имя виртуальной машины.

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

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





Главное окно Parallels Workstation.

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







Редактирование настроек виртуальной машины.

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

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

На этой вкладке можно переподключить к виртуальной машине другой жёсткий диск или пересоздать виртуальный жёсткий диск с потерей всех данных (кнопка Recreate). На вкладке Advanced можно изменить канал, к которому подключен виртуальный жёсткий диск и сжать файл виртуального жёсткого диска.





Настройки привода.

На этой вкладке можно указать виртуальной машине на необходимость использовать привод или указать путь к файлу с образом диска в формате ISO. Аналогичная настройка присутствует и у дисковода.







В настройках виртуальной сетевой карты есть возможность сменить MAC-адрес. 

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





Основная и гостевая операционные системы.

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

Панель инструментов, размещённая по умолчанию справа в главном окне, перетаскивается при помощи мыши и может быть вынесена за пределы окна программы. Кнопки на панели стандартны: выключить, пауза (основной операционной системе возвращаются все ресурсы, занятые ранее виртуальной машиной, а её работа приостанавливается), включить, перезагрузка (reset). Нижние три кнопки предоставляют возможность переключить гостевую ОС в полноэкранный режим, просмотреть конфигурацию гостевой машины и вернуться в консоль. Чтобы передать мышь и клавиатуру в гостевую систему, достаточно щёлкнуть мышью в окно с гостевой системой. Возврат происходит при нажатии комбинации клавиш Ctrl+Alt. Для максимального комфорта при работе с виртуальной машиной рекомендуется установить специальный пакет инструментов, содержащий драйверы видео, мыши, сетевой карты. Помимо драйверов в комплект входят инструменты для синхронизации времени на гостевой системе со временем основной системы и для автоматической синхронизации буфера обмена. Помимо этого, после установки пакета инструментов, больше не возникает необходимости для передачи мыши и клавиатуры гостевой системе щёлкать мышью в окно гостевой системы, а для их возврата - нажимать Ctrl+Alt. Теперь мышь автоматически передаётся гостевой системе при нахождении курсора мыши над главным окном программы, а клавиатура - при наличии фокуса на главном окне Parallels Workstation. Помимо перечисленного выше, устанавливается утилита, которая позволяет сжать файл виртуального жёсткого диска. Сжатие возможно только при условии, что под виртуальный диск не было сразу отведено место, равное объёму виртуального жёсткого диска. Если это условие выполняется, то утилита очистит неиспользуемое пространство на виртуальном жёстком диске и размер файла виртуального жёсткого диска сократиться. 

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



2.3 Разработка содержания курса



Предлагаемый элективный курс содержит основы курса обучения администрированию Windows с углубленным обучением работы с виртуальными машинами.

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

Цели и задачи курса:

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

- овладение теоретическими знаниями в области управления информационными ресурсами систем и сетей; 

- приобретение прикладных знаний об объектах и методах администрирования в информационных системах; 

- овладение навыками самостоятельного использования инструментальных программных систем, сетевых служб и оборудования для администрирования в ИС;

- овладение навыками самостоятельного использования виртуальных машин.

После изучения курса "Администрирование в информационных системах и администрирование виртуальных машин"  студент должен знать: 

- процедуры администрирования в ИС; 

- объекты и методы администрирования. 

- технологию инсталляции информационных систем; 

- принципы управления, мониторинга и аудита информационных систем;

- основы работы с виртуальными машинами.

уметь: 

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

- организовывать использование общих ресурсов в информационных сетях и системах; 

- оценивать необходимость применения различных средств администрирования;

- организовывать защиту информации в информационной системе; 

- организовывать безопасную работу в Интернет; 

-  организовывать работу с виртуальными машинами. 

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

Изучение предлагаемого курса должно производится в течение одного семестра. 

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

Тема 1. Функции и процедуры администрирования. 

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

Тема 2. Объекты и методы администрирования. 

Администрирование баз данных. Администрирование операционных систем. Администрирование ЛВС. Администрирование почтовых и Internet серверов. 

Тема 3. Службы администрирования. 

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

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

Тема 4 Эксплуатация и сопровождение информационных систем. 
Ведение статистики использования ресурсов ИС. Выявление и устранение узких мест информационной системы. Управление пользователями ИС. 

Тема 5 Инсталляция информационных систем. 

Планирование инсталляционных работ. Выбор аппаратно-программных средств. Инсталляция информационной системы на примере Windows 2000. Настройка информационной системы. 

Тема 6. Оперативное управление и регламентные работы. 

Методы выявления неполадок в работе информационной системы. Оперативное управление и устранение неполадок в системе. 

Тема 7. Управление и обслуживание технических средств. 

Технические средства в информационных системах. 
Методы тестирования технических средств. Обслуживание технических средств. 

Тема 8. Информационные системы администрирования. 

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

Тема 9. Аппаратно-программные платформы администрирования операционных систем. 

Средства администрирования ОС на примере Windows 2000. Администрирование учетных записей. Администрирование дисковых массивов. 

Тема 10. Аппаратно-программные платформы администрирования баз данных. 

Средства администрирования баз данных на примере SQL Server 2000. 

Тема 11. Аппаратно-программные платформы администрирования локальных сетей. 

Средства администрирования ЛВС на примере домена Windows 2000. 

Тема 12. Аппаратно-программные платформы администрирования службы каталога. Средства администрирования службы каталога на примере домена Windows 2000. 

Тема 13. Администрирование систем, средств и участников безопасности информационных систем. Разработка структуры подразделений и групповых политик безопасности. Применение политик безопасности на примере Windows 2000. 

Тема 14. Аппаратно-программные платформы администрирования служб информационных систем в глобальных сетях. 
Средства администрирования служб WWW, FTP, SMTP, NNTP в глобальных сетях на примере Microsoft IIS. Средства администрирования служб маршрутизации и удаленного доступа на примере Microsoft RRAS Windows 2000. 

Тема 15. Администрирование и управление доступом в Internet. Развертывание набора средств для Интернет с использованием Microsoft IEAK. 

Тема 16. Средства автоматизации администрирования. 

Программирование в системах администрирования. Сценарии регистрации и скрипты администрирования. Примеры систем администрирования с использованием Windows Script Host. Сценарии ADSI для системного администрирования Windows 2000.

Тема 17. Сущность виртуальных машин и их использование.

Изучение сущности виртуальных машин, изучение основных современных виртуальных машин и их использование.

Тема 18. Эксплуатация и сопровождение виртуальных машин. 
Ведение статистики использования ресурсов виртуальных машин. Выявление и устранение узких мест виртуальной машины. 

Тема 19.  Инсталляция виртуальных машин. 

Планирование инсталляционных работ. Выбор аппаратно-программных средств. Инсталляция виртуальной машины на примере Parallels Workstation. Настройка виртуальной машины и настройка утилиты Parallels Image Tool. 

Тема 20. Оперативное управление и регламентные работы. 

Методы выявления неполадок в работе виртуальной машины. Оперативное управление и устранение неполадок в работе виртуальной машины. 


2.4.	Тематическое планирование и рабочая программа курса



Изучение курса предусматривает проведение следующих видов занятий: 

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

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

- выполнение лабораторных работ под руководством преподавателя на ПЭВМ; 
Содержание лабораторных занятий должно формировать практические навыки работы пользователя в различной сетевой среде и обеспечивать студентов знаниями в области сетевых технологий. 

- самостоятельная работа студентов с литературой и в компьютерных классах. 

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

Ниже приведено тематическое планирование предлагаемого курса.


№

Тема

Содержание

Часов







Лекций

Лабораторных

1

Функции и процедуры администрирования. 



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



2

2

2

Объекты и методы администрирования. 



Администрирование баз данных. Администрирование операционных систем. Администрирование ЛВС. Администрирование почтовых и Internet серверов. 

2

2

3

Службы администрирования. 



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

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

2

2

4

Эксплуатация и сопровождение информационных систем. 


Ведение статистики использования ресурсов ИС. Выявление и устранение узких мест информационной системы. Управление пользователями ИС. 

2

2

5

Инсталляция информационных систем.

Планирование инсталляционных работ. Выбор аппаратно-программных средств. Инсталляция информационной системы на примере Windows 2000. Настройка информационной системы. 

2

2

6

Оперативное управление и регламентные работы. 

Методы выявления неполадок в работе информационной системы. Оперативное управление и устранение неполадок в системе. 

2

2

7

Управление и обслуживание технических средств. 

	Технические средства в информационных системах. 
Методы тестирования технических средств. Обслуживание технических средств. 

2

2

8

Информационные системы администрирования. 



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

2

2




Продолжение таблицы

9

Аппаратно-программные платформы администрирования операционных систем. 

Средства администрирования ОС на примере Windows 2000. Администрирование учетных записей. Администрирование дисковых массивов. 

2

2

10

Аппаратно-программные платформы администрирования баз данных. 

Средства администрирования баз данных на примере SQL Server 2000. 



2

2

11

Аппаратно-программные платформы администрирования локальных сетей. 



Средства администрирования ЛВС на примере домена Windows 2000.

2

2

12

Аппаратно-программные платформы администрирования службы каталога.

Средства администрирования службы каталога на примере домена Windows 2000. 



2

2

13

Администрирование систем, средств и участников безопасности информационных систем.

Разработка структуры подразделений и групповых политик безопасности. Применение политик безопасности на примере Windows 2000. 



2

2

14

Аппаратно-программные платформы администрирования служб информационных систем в глобальных сетях.

Средства администрирования служб WWW, FTP, SMTP, NNTP в глобальных сетях на примере Microsoft IIS. Средства администрирования служб маршрутизации и удаленного доступа на примере Microsoft RRAS Windows 2000. 



2

2

15

Администрирование и управление доступом в Internet.

Развертывание набора средств для Интернет с использованием Microsoft IEAK. 



2

2

16

Средства автоматизации администрирования.

Программирование в системах администрирования. Сценарии регистрации и скрипты администрирования. Примеры систем администрирования с использованием Windows Script Host. Сценарии ADSI для системного администрирования Windows 2000.



2

2

17

Сущность виртуальных машин и их использование.

Изучение сущности виртуальных машин, изучение основных современных виртуальных машин и их использование.

2

2




Продолжение таблицы

18

Эксплуатация и сопровождение виртуальных машин.

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



2

2

19

Инсталляция виртуальных машин. 



Планирование инсталляционных работ. Выбор аппаратно-программных средств. Инсталляция виртуальной машины на примере Parallels Workstation. Настройка виртуальной машины и настройка утилиты Parallels Image Tool. 



2

2

20

Оперативное управление и регламентные работы.

Методы выявления неполадок в работе виртуальной машины. Оперативное управление и устранение неполадок в работе виртуальной машины. 



2

2



Всего



40

40



Курс требует 40 часов лекций, и 40 часов лабораторных работ. Всего 80 часов. Также предусматривается 48 часов самостоятельной работы.



2.5.	Дидактические материалы



2.5.1.	Учебно-методические материалы

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

Во-первых, книга, посвящённая виртуальным машинам [1]:

Алексей Гультяев. Виртуальные машины. Несколько компьютеров в одном. Издательство: Питер, 2006 г. 224с. В книге рассмотрены три наиболее популярных на сегодняшний день инструмента, предназначенных для создания виртуальных машин и управления ими: Virtual PC 2004 компании Microsoft, VMware Workstation от компании VMware и относительно "свежий" продукт - Parallels Workstation, созданный в компании Parallels. Причем описание всех "конкурирующих" программ построено по одной и той же схеме, чтобы читателю проще было сравнить их между собой и сделать обоснованный выбор.

Во-вторых, книга, посвящённая практическому администрированию сети [2].

Поляк-Брагинский А. В. Администрирование сети на примерах. — СПб.: БХВ-Петербург, 2005. — 320с. В доступном для начинающих системных администраторов изложении рассматриваются вопросы администрирования небольшой сети с двумя серверами Windows XP Server и Windows Server 2003 и рабочими станциями под управлением Windows XP и Windows 98. Изложение построено на большом количестве практических примеров. Приведено решение типичных задач администратора сети с применением стандартных и нестандартных методов, с использованием возможностей операционной системы, программ сторонних разработчиков, а также средств, созданных самим администратором. Предполагается, что читатель имеет опыт работы с компьютером на уровне опытного пользователя. Теоретические основы администрирования рассмотрены предельно кратко. Описание примеров сделано на основе реально работающей сети, что на 100% гарантирует их работоспособность при соблюдении описанных условий применения. Приведены примеры создания сценариев и программ на языках VBScript, Visual Basic и других, доступных начинающему администратору.

Далее, ещё одна книга, посвящённая практическому администрированию сети[3].

Бормотов С. В. Системное администрирование на 100 % (+CD). — СПб.: Питер, 2006. — 256 с. В книге детально рассмотрены практические задачи, с которыми ежедневно сталкивается системный администратор: от настройки сети, организации антивирусной защиты и обновления системы до защиты информации. Основной упор сделан на решение практических задач, однако приводятся и необходимые теоретические сведения для понимания вопроса.



2.5.2.	Лабораторные работы

Лабораторные работы были разработаны по следующим темам курса

- Инсталляция операционной системы Windows 2000 

- Применение системного монитора в операционной системе Windows 2000 

- Применение сетевого монитора в операционной системе Windows 2000 

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

- Средства администрирования службы каталога в домене Windows 2000. 

- Применение политик безопасности в Windows 2000. 

- Средства администрирования служб WWW, FTP в глобальных сетях с использованием Microsoft IIS. 

- Средства администрирования служб маршрутизации и удаленного доступа в Microsoft RRAS Windows 2000. 

- Сценарии регистрации и скрипты администрирования. 

-  Инсталляция виртуальной машины  Parallels Workstation.

-  Настройка виртуальной машины и настройка утилиты Parallels Image Tool. 

- Оперативное управление и устранение неполадок в работе виртуальной машины.

Например, лабораторная работа по теме "Инсталляция операционной системы Windows 2000" приведена ниже.

Рассмотрим один из самых трудоемких и долговременных процессов - процесс установки операционной системы Windows 2000. 

Сначала необходимо убедиться, что компьютер соответствует минимальным системным требованиям Windows 2000 - Pentium-совместимый-233, 64 Mb RAM, 1,5 Gb на HDD, CD-ROM. 

Существует два основных способа запуска установки ОС Windows: 

непосредственно из установленной ОС 

при загрузке компьютера, когда не установлены ОС Windows. 

если имеется загрузочный компакт-диск Windows, то чтобы загрузиться с него надо в BIOS-e параметр "Boot sequence" установить равным CD-ROM, вставить CD и перезагрузиться. После старта компьютера запустится программа установки. 

Если же такого CD нет, тогда необходимо загрузиться с системного диска или системной дискеты, выставив "Boot sequence" соответственно CD-ROM или Floppy. После этого запустить файл, выполняющий установку.

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

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

Установить последние обновления системы, выпускаемые фирмой-производителем Microsoft 

Если Windows не смогла определить и настроить правильно устройства компьютера, необходимо установить драйвера этих устройств. 

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

Имеется еще один способ быстрой переустановки Windows. Для этого необходимо сделать образ диска или раздела, на котором установлена операционная система. Образ делается с помощью специального программного обеспечения резервного копирования информации(Symantec Norton Ghost, Acronis TrueImage). Образ помещается в один или несколько специальных файлов на какой-то другой диск или раздел. Затем, когда система стала работать нестабильно или слишком медленно необходимо загрузить компьютер с помощью данной программы или обычной системной дискеты и извлечь данный образ на системный диск компьютера. Образы можно переносить с компьютера на компьютер при условии, что аппаратное обеспечение компьютеров практически одинаково. 

Задания: 

Произведите установку ОС Windows с компакт-диска. 

Произведите установку программ Total Commander, WinRAR, AVP, Microsoft Office, MathCad в Windows. 



Контрольно-измерительные материалы

Контрольные вопросы были разработаны по следующим темам курса

Тема 1. Функции и процедуры администрирования. 

Тема 2. Объекты и методы администрирования. 

Тема 3. Службы администрирования. 

Тема 4. Эксплуатация и сопровождение информационных систем. 

Тема 5. Инсталляция информационных систем. 

Тема 6. Оперативное управление и регламентные работы. 

Тема 7. Управление и обслуживание технических средств. 

Тема 8. Информационные системы администрирования. 

Тема 9. Аппаратно-программные платформы администрирования операционных систем. 

Тема 10. Аппаратно-программные платформы администрирования баз данных. 

Тема 11. Аппаратно-программные платформы администрирования локальных сетей. 

Тема 12. Аппаратно-программные платформы администрирования службы каталога. 

Тема 13. Администрирование систем, средств и участников безопасности информационных систем. 

Тема 14. Аппаратно-программные платформы администрирования служб информационных систем в глобальных сетях. 

Тема 15. Администрирование и управление доступом в Internet. 

Тема 16. Средства автоматизации администрирования. 

Тема 17. Сущность виртуальных машин и их использование.

Тема 18. Эксплуатация и сопровождение виртуальных машин.  

Тема 19.  Инсталляция виртуальных машин. 

Тема 20. Оперативное управление и регламентные работы. 

Например, вопросы по теме "Аппаратно-программные платформы администрирования баз данных"  приведены ниже.

1. Какая разница между интегрированным режимом зашиты и смешанным режимом? 

2. Какой режим лучше всего применять при использовании сети Windows 2000 с клиентами Unix? 

3.Какая хранимая процедура подключает роль на уровне приложения? 

4. Если мне определено регистрационное имя, но не определено имя пользователя базы данных, почему я получаю доступ к базе данных pubs? 

5. Как отменить права администратора Windows 2000 на регистрацию в SQL Server системным администратором (за)? 

6. Как поступить, если необходимо добавить нового владельца к базе данных, в которой уже определен пользователь dbo? 

7. Когда в SQL Server 2000 создается отдельная учетная запись для пользователей, а не групп Windows 2000? 

8. Как проще поступить: использовать для назначения прав роли или определять их для каждого пользователя отдельно? 

9.Что лучше использовать заранее определенные роли или назначать права доступа без них? 

10.Как дать возможность пользователю Магу считать данные из таблицы МуТаblе? 

11. Назовите оптимальный способ восстановления прав, назначенных разорванной цепочкой подчинения. 

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


Заключение



Parallels Workstation предоставляет пользователю возможность установить и одновременно работать с любым количеством практически любых операционных систем. Поддержка сети, портов, звука позволяет использовать виртуальную машину для самых различных целей: начиная от работы со старыми устройствами, которые давно не поддерживаются новыми ОС, заканчивая, например, установкой серверных приложений, требующих для работы определённой версии операционной системы. Работая с виртуальной машиной нет необходимости устанавливать на один компьютер разные операционные системы. Играть в старые игры, написанные для работы в MS-DOS, можно прямо в Windows XP, установив на виртуальную машину DOS. Количество одновременно работающих виртуальных машин на одном компьютере ограничено лишь объёмом оперативной памяти и свободным местом на жёстком диске.

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

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

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

- Было проведено ознакомление с типичными содержаниями курсов по системному администрированию, и определено содержание курса.

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

- Были разработаны инструкции по установке и использованию сетей виртуальных машин.

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

- Были разработаны лабораторные работы, упражнения и контрольные вопросы по темам курса.

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


Список литературы.



1. Алексей Гультяев. Виртуальные машины. Несколько компьютеров в одном. Издательство: Питер, 2006 г. 224с.

2. Илья Евсеев. Использование PVM. Введение в программирование. http://www.csa.ru/~il/pvm_tutor/ 

3. Al Geist, Adam Beguelin, Jack Dongarra, Weicheng Jiang, Robert Manchek, Vaidy Sunderam. PVM: Parallel Virtual Machine. A Users' Guide and Tutorial for Networked Parallel Computing. http://www.netlib.org/pvm3/book/pvm-book.html 

4. Евгений Борисов. Вычислительные системы сверхвысокой производительности. http://mechanoid.narod.ru/high_perf/index.html 

4. Дмитрий Арапов. Можно ли превратить сеть в суперкомпьютер? http://www.osp.ru/os/1997/04/6.htm 

5. Павлов В.М. Программное обеспечение для построения систем распределённых вычислений. Реферат по междисциплинарному государственному экзамену 

6. Поляк-Брагинский А. В. Администрирование сети на примерах. — СПб.: БХВ-Петербург, 2005. — 320с.

6. Константин Михайленко. Параллельный стиль. http://www.altlinux.ru 

7. Михаил Кузьминский. Кластеры на базе ОС Linux. ComputerWorld 5/1998 

8. А.М. Горелик. Средства поддержки параллельности в языках программирования. Открытые системы 02/1995. 

9. Андрей Кузнецов. Параллельные миры. http://ccc.ru/magazine/depot/00_08/web3.htm 

10. Вл. В. Воеводин. Суперкомпьютерная грань компьютерного мира. http://parallel.ru/vvv/intro2hpc.html 

11. Е.С.Борисов. Декомпозиция последовательных программ при параллельных вычислениях. http://mechanoid.narod.ru/parallel/semiautomata/ 

12. В.Н. Дацюк, А.А. Букатов, А.И. Жегуло. Методическое пособие по курсу "Многопроцессорные системы и параллельное программирование" http://rsusu1.rnd.runnet.ru/tutor/method/index.html 

13. А. Кильпио, П. Кайгородов. Параллельные системы, их создание и применение. http://www.xform.ru/library/article/default.asp?I=20 

14. Е.С.Борисов. Вычислительные системы сверхвысокой производительности. http://mechanoid.narod.ru/parallel/high_perf/ 

15. Бутко А.И., Пярнпуу А.А., Донских В.В. ОС Linux в учебном поцессе. http://ict.edu.ru/vconf/index.php?a=vconf&c=getForm&r=thesisDesc&d=light&id_sec=59&id_thesis=1949 

16. А.В.Комолкин, С.А.Немнюгин. Программирование для высокопроизводительных ЭВМ. http://www.hpc.nw.ru/COURSES/HPC/

2