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

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

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

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

Настройка пула ресурсов

Чтобы согласовать ресурсное планирование, нужно создать обычный файл проекта в формате *.mрр и поместить в него все данные о ресурсах. Затем создаются проекты с планами, и в них указывается, что при планировании будут использоваться ресурсы из первого файла, который в терминах MS Project называется пулам ресурсов (resource pool). В качестве примера мы создали файл пула pool. mpp и два файла с планами, где должны использоваться ресурсы пула -1.mpp и 2.mрр.

Чтобы определить пул ресурсов для использования в плане проекта, нужно открыть и файл с планом, и файл с пулом (в нашем случае - открыть файлы 1.mрр и pool.mрр). Затем, находясь в окне файла с планом, следует выбрать команду меню Tools > Resource Sharing > Share Resources (Сервис > Общие ресурсы > Доступ к ресурсам). После этого открывается диалоговое окно определения общего доступа к ресурсам, в котором настраиваются параметры работы с пулом (рис. 23.1).

Чтобы включить режим использования пула ресурсов, в этом диалоговом окне необходимо выбрать переключатель Use resources (Использовать ресурсы), а затем выбрать название файла проекта в раскрывающемся списке. Например, для файла 1.mpp мы указали файл pool.mрркак пул ресурсов.

Рис. 23.1. Настройка использования пула ресурсов

ПРИМЕЧАНИЕ

Файл, в котором используются ресурсы из пула, называется клиентом пула (sharer). Клиент пула не может быть пулом ресурсов для другого плана проекта.

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

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

ВНИМАНИЕ

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

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

Чтобы в дальнейшем изменить настройки использования пула, нужно снова открыть это диалоговое окно. Выбрав перключатель Use own resources (Использовать собственные ресурсы), можно будет отказаться от использования пула. После этого в проекте останутся только те ресурсы, которые назначены на его задачи, а остальные будут удалены.

Можно изменить и настройки относительного преимущества файлов при конфликтах. Например, если вы отредактировали данные о ресурсе в файле клиента пула и хотите, чтобы они сохранились в пуле при синхронизации, следует открыть диалоговое окно и выбрать переключатель Sharer takes precedence (Преимущество имеет клиент пула). После синхронизации, когда измененные данные сохранились в пуле, нужно вновь открыть диалоговое окно и выбрать переключатель Pool takes precedence (Преимущество имеет пул), чтобы в дальнейшем пул вновь имел приоритет.

Планирование с использованием пула

После того как списки ресурсов клиента и пула синхронизированы, выделение ресурсов на задачи в файле клиента осуществляется обычным способом. При этом MS Project учитывает данные о назначениях ресурсов в других проектах. Рассмотрим работу с одним ресурсом в двух проектах на примере наших файлов 1.mpp и 2.mрр, использующих ресурсы пула pool.mрр. В первом проекте мы создали задачу длительностью 5 дней, назвали ее 1_1 и выделили на ее исполнение Иванова А.А. Затем во втором проекте мы также создали задачу длительностью 5 дней и назвали ее 2_1. Оба проекта начинаются в один день, и поэтому эта задача запланирована на то же время, что и задача 1_1.

Теперь попробуем выделить ресурс на задачу 2_1. Для этого воспользуемся диалоговым окном назначения ресурсов (см. раздел «Замена ресурсов») , которое открывается с помощью одноименной кнопки стандартной панели инструментов или команды меню Tools > Assign Resources (Сервис > Назначить ресурсы). Чтобы отобрать только доступных в нужное нам время сотрудников, установим флажок Available to work (Доступные не менее) и в счетчике введем 40 часов, поскольку наша задача длится именно столько. Ресурс Иванов А.А., на это время уже назначенный на задачу в другом проекте, сразу пропадает из списка, и программа не предлагает назначить его на исполнение задачи (рис. 23.2).

Если в проекте включен режим автоматического выравнивания ресурсов (см. раздел«Анализ и выравнивание загрузки ресурсов»), то MS Project автоматически перенесет задачу на другое время, если назначенный на ее исполнение ресурс уже выделен в это время на исполнение другой задачи в другом проекте, подключенном к пулу.

Вы можете попробовать включить этот режим в файле 2.mррназначить Иванова А.А. на исполнение задачи 2_1. Задача автоматически будет перенесена на неделю вперед, то есть на время окончания задачи 1_1 в плане проекта 1.mрр. Если же вы отключите автоматическое выравнивание ресурсов и затем откроете представление Resource Sheet (Лист ресурсов), то увидите, что MS Project определил превышение доступности у Иванова А.А.

Как программа определяет, в какое время ресурс загружен в других проектах? Дело в том, что сводные данные о загрузке ресурсов во всех клиентах пула содержатся в пуле, и когда он открыт, эти сведения доступны.

Чтобы просмотреть информацию о загрузке ресурса и учесть ее при планировании, нужно открыть представление Resource Usage (Использование ресурсов) в файле клиента пула (при этом файл пула также должен быть открыт в MS Project). В нем для каждого ресурса указаны все задачи, в которых он задействован. Чтобы определить, к какому проекту относится та или иная задача, в таблицу необходимо добавить столбец Project (Проект).

Рис. 23.2. Программа определяет, кого можно назначить на исполнение задачи

Этот столбец может относиться как к ресурсам, так и к задачам. В файле 2.mрр(рис. 23.3) мы добавили его в таблицу, и в нем видно, что ресурсы относятся к проекту poo1.mpp, а задача 1_1, в которой задействован Иванов А.А. - к проекту 1.mрр. Мы просматриваем данные в файле 2.mрр, но на диаграмме видно, что в нем хранятся данные, относящиеся к загрузке ресурса в файле 1.mрр. В списке отображаются и не назначенные задачи во всех клиентах пула, например не назначена задача 2_1 из файла 2.mрр

Рис. 23.3. Данные о загрузке ресурса в других проектах - клиентах пула отображаются в каждом проекте, если загружен пул

Использование пула

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

Рис. 23.4. Диалоговое окно для открытия файла пула вместе с планом проекта

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

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

ПРИМЕЧАНИЕ

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

Совместная работа с пулом

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

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

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

Если пул открыт в режиме записи, то данные в нем можно редактировать обычным способом. Если же вы открыли пул для чтения, то его нужно обновить после того, как вы изменили план проекта, иначе данные о новых назначениях ресурсов не попадут в пул и не будут доступны в других файлах - клиентах пула. Для обновления пула с учетом проектных данных предназначена команда меню Tools > Resource Sharing > Update Resource Pool (Сервис > Общие ресурсы > Обновить пул ресурсов). Эта команда доступна, только когда файл пула открыт для чтения. Если файл пула открыт на запись, то он обновляется автоматически и эта команда меню не используется.

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

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

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

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

Обновление экрана пула осуществляется с помощью команды меню Tools > Resource Sharing > Refresh Resource Pool (Сервис > Общие ресурсы > Обновить экран пула ресурсов).

При выборе этой команды меню MS Project заново открывает файл пула, и вам оказываются доступны изменения, внесенные в него другими пользователями. Обычно после обновления экрана пула в плане происходят изменения: некоторые ресурсы оказываются перегруженными или изменяются затраты на проект. Чтобы найти изменения, можно перед обновлением экрана пула сохранить версию плана а затем, используя автоматизированное сравнение (см. раздел «Файлы MS Project»), сравнить ее с той, что получилась после обновления экрана пула.

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

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

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

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

Настройка пула ресурсов

Чтобы согласовать ресурсное планирование, нужно создать обычный файл проекта в формате *.mрр и поместить в него все данные о ресурсах. Затем создаются проекты с планами, и в них указывается, что при планировании будут использоваться ресурсы из первого файла, который в терминах MS Project называется пулам ресурсов (resource pool ). В качестве примера мы создали файл пула pool .mpp и два файла с планами, где должны использоваться ресурсы пула - 1.mpp и 2.mрр.

Чтобы определить пул ресурсов для использования в плане проекта, нужно открыть и файл с планом, и файл с пулом (в нашем случае - открыть файлы 1.mрр и pool.mрр). Затем, находясь в окне файла с планом, следует выбрать команду меню Tools › Resource Sharing › Share Resources (Сервис › Общие ресурсы › Доступ к ресурсам). После этого открывается диалоговое окно определения общего доступа к ресурсам, в котором настраиваются параметры работы с пулом (рис. 23.1).

Чтобы включить режим использования пула ресурсов, в этом диалоговом окне необходимо выбрать переключатель Use resources (Использовать ресурсы), а затем выбрать название файла проекта в раскрывающемся списке. Например, для файла 1.mpp мы указали файл pool.mрр как пул ресурсов.

Рис. 23.1 . Настройка использования пула ресурсов

Примечание
Файл, в котором используются ресурсы из пула, называется клиентом пула (sharer ). Клиент пула не может быть пулом ресурсов для другого плана проекта
.

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

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

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

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

Чтобы в дальнейшем изменить настройки использования пула, нужно снова открыть это диалоговое окно. Выбрав переключатель Use own resources (Использовать собственные ресурсы), можно будет отказаться от использования пула. После этого в проекте останутся только те ресурсы, которые назначены на его задачи, а остальные будут удалены.

Можно изменить и настройки относительного преимущества файлов при конфликтах. Например, если вы отредактировали данные о ресурсе в файле клиента пула и хотите, чтобы они сохранились в пуле при синхронизации, следует открыть диалоговое окно и выбрать переключатель Sharer takes precedence (Преимущество имеет клиент пула). После синхронизации, когда измененные данные сохранились в пуле, нужно вновь открыть диалоговое окно и выбрать переключатель Pool takes precedence (Преимущество имеет пул), чтобы в дальнейшем пул вновь имел приоритет.

Совместное использование ресурсов и управление ими

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

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

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

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

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

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

Рис. 2.11. Ключевые элементы многозадачной операционной системы

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

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

Структура системы

С добавлением в операционные системы все новых функций, а также с рос­том возможностей управляемого операционными системами аппаратного обеспе­чения и его разнообразия возрастает степень их сложности. Операционная сис­тема CTSS, введенная в эксплуатацию в Массачусетском технологическом инсти­туте в 1963 году, занимала в памяти около 32000 36-битовых слов. Операционная система OS/360, выпущенная фирмой IBM через год, содержала более миллиона машинных команд. Система Multics, совместная разработка ко­торой была завершена специалистами Массачусетского технологического инсти­тута и компанией Bell Laboratories к 1975 году, разрослась до 20 миллионов ко­манд. Ради справедливости отметим, что впоследствии на меньших машинах стали появляться операционные системы и попроще, но и они неуклонно услож­нялись с развитием аппаратного обеспечения и ростом требований со стороны пользователей. Так, современная система UNIX по своей сложности намного превосходит свой почти игрушечный первоначальный вариант, разработанный несколькими талантливыми программистами в начале 70-х годов. То же самое произошло с простой системой MS-DOS, со временем переросшей в сложные и мощные операционные системы OS/2 и Windows 2000. Так, операционная сис­тема Windows NT содержит около 16 миллионов строк кода, а в Windows 2000 этот показатель увеличен более чем в два раза.

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

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

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

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

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

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

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

Уровень 3. Содержит концепцию процедуры (подпрограммы), а также операции вызова и возврата.

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

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

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

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

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

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

Уровень 8. Отвечает за обмен информацией и сообщениями между процессами.
На этом уровне происходит более богатый обмен информацией, чем на уровне 5,
который обеспечивает работу первичного сигнального механизма для синхрони­зации процессов. Одним из наиболее мощных инструментов подобного типа является конвейер, представляющий собой логический канал передачи данных
между процессами. Конвейер определяется как канал, передающий вывод одно­го процесса на вход другого; кроме того, он может быть использован и для свя­зи с процессом внешних устройств или файлов. Эта концепция рассматривается в главе 6, "Взаимоблокировка и голодание".

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

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

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

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

Уровень 13. Обеспечивает взаимодействие операционной системы с пользователем. Этот уровень называется оболочкой (shell), так как он отделяет пользователя от деталей внутреннего устройства операционной системы и представляет ее пользователю как набор сервисов. Оболочка принимает ко­манды пользователя или инструкции-управления заданиями, интерпретиру­ет их, создает необходимые процессы и управляет ими. На этом уровне, на­пример, может быть реализован графический интерфейс, предоставляющий пользователю возможность выбора команды с помощью меню и отобра­жающий результаты работы на экране.

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

Таблица 2.4. Иерархическая модель операционной системы2

Под ресурсами ПК будет пониматься любой из следу­ющих элементов:

Логические диски, включая накопители на CD-ROM, ZIP, DVD и другие аналогичные устройства;

Каталоги (папки) с подкаталогами (вложенными папками) или без них, а также содержащиеся в них файлы;

Подключенные к ПК устройства: принтеры, модемы и др.

Ресурс, доступный только с ПК, на котором он нахо­дится, называется локальным. Ресурс ПК, доступный для дру­гих компьютеров сети, называется разделяемым или сетевым (общим, совместно используемым). Локальный ресурс мож­но сделать разделяемым, и, наоборот, разделяемому ресурсу можно вернуть статус локального, т. е. запретить доступ к нему других пользователей сети.

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

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

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

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

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

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

Сервер сам отбирает необходимые записи из БД (реализует запрос) и пересылает их на рабочую станцию.

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

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

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

Топологии

Топология – геометрическое отображение отношений в сети. По топологии ЛВС делятся: на общую шину, кольцо, звезду и др.

Топология “звезда”

Звездообразная топология сети – разновидность сети, где каждый терминал соединен с центральной станцией (рис. 2).

Эта топология взята из области больших электронных вычислительных ма­шин. Здесь файловый сервер находится в “центре”.

Достоинства сети:

Повреждение кабеля является проблемой для одного конкретного ком­пьютера и в целом не сказывается на работе сети;

Просто выполняется подключение, так как рабочая станция должна со­единяться только с сервером;

Механизмы защиты против несанкционированного доступа оптимальны;

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

Недостатки:

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

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

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

Рис 2. Топология типа “звезда”

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

Кольцевая топология

Сеть типа “кольцо” – разновидность сети, в которой каждый терминал подключен к двум другим соседним терминалам кольца.

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

Рис. 3. Кольцевая топология

Достоинство сети типа “кольцо”:

Недостатки:

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

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

При подключении новых рабочих станций сеть должна быть кратковре­менно выключена.

Шинная топология

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

Рис. 4. Шинная топология

Достоинства шинной топологии:

Небольшие затраты на кабели;

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

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

Недостатки:

При обрыве кабеля выходит из строя весь участок сети от места разрыва;

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

Комбинированная структура ЛВС

Наряду с известными топологиями вычислительных сетей: кольцо, звезда и шина – на практике применяется и комбинированная. Она образуется в основном в виде комбинаций вы­шеназванных топологий вычислительных сетей (рис. 5).

Рис 5. Комбинированная структура

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

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

Семиуровневая модель ЛВС

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

Единой передающей среды;

Единого метода управления;

Единых протоколов;

Гибкой модульной организации;

Информационной и программной совместимости.

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

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

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

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

Протокол – набор правил и процедур, регламентирующий обмен данными.

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

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

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

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

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

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

Обнаружение ошибок. Под обнаружением ошибок понимают установку и проверку контрольных битов.

Нумерация блоков. Текущая нумерация блоков позволяет установить ошибочно переда­ваемую или поте­рявшуюся информацию.

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

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

Разрешение доступа. Распределение, контроль и управление ограничениями доступа к данным вме­няются в обязанность пункта разрешения доступа (например, “только передача” или “только прием”).

Каждый уровень подразделяется на две части:

Спецификация услуг;

Спецификация протокола.

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

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

Международная организация по стандартизации предложила семиуровневую модель , которой соответствует и программная структура (рис. 6).

Рис 6. Уровни управления и протоколы ЛВС

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

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

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

3. Сетевой – определяет маршрут передачи информации между сетями (ПЭВМ), обеспечивает обработку ошибок, а также управление потоками данных. Основная задача сетевого уровня - маршрутизация данных (передача данных между сетями). Специальные устройства – маршрутизаторы (Router) определяют для, какой сети предназначено то или другое сообщение, и направляют эту посылку в заданную сеть. Для определения абонента внутри сети используется адрес узла (Node Address). Для определения пути передачи данных между сетями на маршрутизаторах строятся таблицы маршрутов (Routing Tables) , содержащие последовательность передачи данных через маршрутизаторы. Каждый маршрут содержит адрес конечной сети, адрес следующего маршрутизатора и стоимость передачи данных по этому маршруту. При оценке стоимости могут учитываться количество промежуточных маршрутизаторов, время, необходимое на передачу данных, денежная стоимость передачи данных по линии связи. Для построения таблиц маршрутов наиболее часто используют либо метод векторов либо статический метод . При выборе оптимального маршрута применяют динамические или статические методы. На сетевом уровне возможно применение одной из двух процедур передачи пакетов:

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

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

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

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

6. Представительский – управляет представлением данных в необходимой для программы пользователя форме, генерацию и интерпретацию взаимодействия процессов, кодирование/декодирование данных, в том числе компрессию и декомпрессию данных. На рабочих станциях могут использоваться различные операционные системы: DOS, UNIX, OS/2. Каждая из них имеет свою файловую систему, свои форматы хранения и обработки данных. Задачей данного уровня является преобразование данных при передаче информации в формат, который используется в информационной системе. При приеме данных этот уровень представления данных выполняет обратное преобразование. Таким образом, появляется возможность организовать обмен данными между станциями, на которых используются различные операционные системы. Форматы представления данных могут различаться по следующим признакам:

Порядок следования битов и размерность символа в битах;

Порядок следования байтов;

Представление и кодировка символов;

Структура и синтаксис файлов.

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

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

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

Протоколы передачи данных

В различных сетях существуют различные протоколы обмена данными. Наибольшее распространение получила конкретная реализация методов доступа в сетях типа Ethernet, Arcnet и Token-Ring.

Метод доступа в сетях Ethernet

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

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

Метод доступа в сетях Ethernet является методом множественного доступа с прослушиванием несущей и разрешением коллизий (конфликтов) (CSMA/CD - Carrier Sense Multiple Access/Collision Detection)

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

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

Метод доступа в сетях Arcnet

Этот метод доступа разработан фирмой Datapoint Corp. Он также получил широкое распространение в основном благодаря тому, что оборудование Arcnet дешевле, чем оборудование Ethernet или Token-Ring. Технология Arcnet используется в локальных сетях с топологией “звезда”. Один из компьютеров создает специальный маркер (сообщение специального вида), который последовательно передается от одного компьютера к другому.

Если станция желает передать сообщение другой станции, она должна дождаться маркера и добавить к нему сообщение, дополненное адресом отправителя и адресом станции назначения. Когда пакет дойдет до станции назначения, сообщение будет “отцеплено” от маркера и передано станции.

Метод доступа в сетях Token-Ring

  • Анализ состояния и эффективности образования и использования запасов сырья и материалов на предприятии: цель, информационная база, система показателей, методика проведения.