4.3 Способы обеспечения надежности
В системах NetWare предусмотрен ряд функций, обеспечивающих надежность системы и целостность данных. Ниже перечислены функции, которые обеспечивают защиту всех частей сервера: от устройств хранения данных до критичных файлов прикладных программ. Наличие таких функций позволяет NetWare обеспечить очень высокий уровень надежности сети.
Средства обеспечения надежности SFT I:
Проверка чтением после записи. После записи на диск каждый блок данных немедленно считывается в память для проверки читаемости. Первоначальное содержание блока не стирается до окончания проверки. Если данные не читаются, они записываются в другой блок диска, а первый блок помечается как дефектный.
Дублирование каталогов. NetWare хранит копию структуры корневого каталога. Если портится основная структура, то начинает использоваться резервная.
Дублирование таблицы размещения файлов FAT. NetWare хранит копию FAT и использует ее при порче основной таблицы FAT.
Оперативное исправление 1 (Hot Fix 1). Запись или перезапись данных из дефектных блоков в специальную резервную область диска.
Контроль UPS.
Средства обеспечения надежности SFT II:
Зеркальное отображение дисков, подключенных к одному дисковому контроллеру (Disk Mirroring).
Дуплексирование дисков, подключенных к различным дисковым контроллерам (Disk Duplexing).
Оперативное исправление 2 (Hot Fix 2). Повторное выполнение операции чтения на отраженном диске и запись данных в резервную область.
Система отслеживания транзакций (TTS).
Средства обеспечения надежности SFT III заключаются в полном динамическом зеркальном отображении двух серверов, которые могут находится на значительном удалении друг от друга (при использовании оптоволоконного кабеля для межсерверной связи - до 4 км).
4.4 Защита информации
Средства защиты информации встроены в NetWare на базовых уровнях операционной системы, а не являются надстройкой в виде какого-либо приложения. Поскольку NetWare использует на файл-сервере особую структуру файлов, то пользователи не могут получить доступ к сетевым файлам, даже если они получат физический доступ к файл-серверу.
Операционные системы NetWare содержат механизмы защиты следующих уровней:
защита информации о пользователе;
защита паролем;
защита каталогов;
защита файлов;
межсетевая защита.
В 1983 году фирма Novell ввела в систему концепций локальной сети понятия имени пользователя, пароля и характеристики пользователя (user profile). Характеристика пользователя содержит перечень ресурсов, к которым пользователь имеет доступ, и права, которыми он обладает при работе с этими ресурсами. Администратор сети может ограничить права пользователя по входу в сеть датой, временем и конкретными рабочими станциями. Средства обнаружения нарушений защиты и блокировки действий нарушителя извещают администратора сети о попытках несанкционированного доступа.
В версии NetWare 3.12 пароли хранятся на сервере в зашифрованном виде. Пароль, задаваемый пользователем, передается по кабелю также в зашифрованном виде, что обеспечивает защиту от попыток узнать пароль путем "прослушивания" сети.
В версии NetWare 6.x использована более надежная схема идентификации пользователя при логическом входе в сеть, основанная на использовании технологии защиты RSA public key/private key. При использовании этой технологии пароль и личный ключ пользователя никогда не передаются по кабелям, что полностью исключает возможность узнать чужой пароль. В службу каталогов NDS также введен новый уровень управления доступом, который может быть введен в действие администратором в любой части сети.
С точки зрения защиты ОС NetWare не делает различия между операционными системами рабочих станций. Станции, работающие под управлением DOS, Windows, OS/2, Macintosh и UnixWare, обслуживаются совершенно одинаково, и все функции защиты применяются ко всем операционным системам, которые могут использоваться в сети NetWare.
4.5 Управление процессами
Каждый NLM стартует в ОС NetWare как по крайней мере одна нить (ее можно считать процессом в традиционном понимании этого термина), которая создается неявным образом при запуске функции main() программы, но однонитевые процессы в NetWare являются редким исключением. Функциональные особенности файл-сервера предопределяют большие выгоды при расщеплении процесса обслуживания параллельных запросов к файлам, поступающих одновременно от нескольких пользователей, на несколько нитей. Концепция нитей упрощает программирование этого параллелизма, так как подпроцесс обслуживания одного запроса внутри одной нити программируется как последовательный процесс, то есть процесс, в котором все стадии выполнения протекают в естественной последовательности. Параллелизм же выполнения нескольких запросов реализуется на уровне планировщика операционной системы. NetWare сама запускает много внутренних процессов, таких как процесс обновления кэша или процесс обработки командной строки консоли, которые являются многонитевыми. Все нити одного NLM разделяют общее адресное пространство.
При переключении нитей операционная система использует контекст нити, который является мгновенным снимком рабочей среды нити. В общем случае в контекст нити входят различные переменные, содержание экранов, указатели, счетчики, ссылки, управляющая информация и другие параметры. При переключении с одной нити на другую контекст снимаемой с выполнения нити запоминается ОС, а контекст запускаемой нити восстанавливается. Время переключения во многом зависит от размера контекста, и алгоритм невытесняющей многозадачности работает быстрее вытесняющего алгоритма и из-за того, что в первом случае контекст нити или процесса (в ОС, поддерживающих только концепцию процесса) имеет меньшие размеры.
Рис 5. Соотношение между глобальным, групповым и индивидуальным контекстами нитей в NetWare
В среде NetWare различается три вида контекстов нитей: глобальный контекст, контекст группы нитей и контекст отдельной нити. Эти контексты вложены друг в друга, как это показано на рисунке 5. Соотношение между данными этих контекстов напоминает соотношение глобальных и локальных переменных в программе, написанной на языке C. Глобальный контекст является общим для всех нитей данного NLM'а, и все его переменные видны для всех его нитей. В NetWare можно создавать несколько групп нитей внутри одного NLM-процесса, и эти группы имеют свой групповой контекст. Все нити группы видят переменные контекста своей группы, но не видят переменных контекста другой группы. И, наконец, каждая отдельная нить имеет свой собственный контекст. Содержимое этого контекста доступно только для данной нити.
Очевидно, что такая иерархическая организация контекстов ускоряет переключение нитей, так как при переключении с нити на нить в пределах одной группы нет необходимости заменять контексты групп или глобальные контексты, достаточно лишь заменить контексты нитей, которые меньше по объему, чем контексты других видов. Аналогично, при переключении с нити одной группы на нить другой группы в пределах одного NLM глобальный контекст не изменяется, а заменяется только контекст группы. Переключение же глобальных контекстов происходит только при переходе с нити одного NLM на нить другого NLM.
Программный код в NetWare для работы с нитями может пользоваться различными библиотечными функциями, такими как:
BeginThread - создать новую нить.
BeginThreadGroup - создать новую группу нитей, которая содержит одну нить. Функция аналогична BeginThread, но нить приписывается к новой группе нитей.
ThreadSwitch- с помощью этой функции нить отдает управление планировщику ОС, который выполняет переключение на новую нить. Нить, вызвавшая эту функцию, считает себя готовой к дальнейшему выполнению, но отдает управления для того, чтобы могли выполняться и другие нити.
ThreadSwitchWithDelay - функция аналогична предыдущей, но нить считает, что она будет готова к выполнению только через определенное количество переключений с нити на нить.
Delay - функция, аналогичная предыдущей, но задержка дается в миллисекундах.
ThreadSwitchLowPriority - функция передачи управления, отличается от ThreadSwitch тем, что нить просит поместить ее в очередь готовых к выполнению, но низкоприоритетных нитей.
SheduleWorkToDo - вместо создания новой нити для выполнения определенной работы (выраженной функцией языка C), поручает эту работу уже созданной заранее нити из резервного пула нитей ОС NetWare, который создается при старте системы для системных целей и срочных работ NLM'ов. Эта функция появилась только в версии NetWare 4.0.
Кроме этих функций NetWare предоставляет средства синхронизации нитей с помощью семафоров и сигналов.
Планировщик NetWare использует несколько очередей для организации невытесняющей дисциплины обслуживания нитей (рисунок 6).
При создании нити с помощью функций BeginThread или BeginThreadGroup нить попадает в конец очереди RunList, которая содержит готовые к выполнению нити. После того, как выполнявшаяся на CPU нить завершает свою очередную итерацию с помощью одного из вызовов передачи управления (или вызова ожидания на семафоре), планировщик выбирает для выполнения стоящую первой в очереди RunList нить и запускает ее на выполнение. Нить, завершившая свою очередную итерацию, помещается в конец одной из очередей в зависимости от того, какой вызов передачи управления она использовала: в конец очереди RunList при вызове ThreadSwitch, в конец очереди DelayedWorkToDoList при вызовах ThreadSwitchWithDelay или Delay или же в конец очереди LowPriorityRunList при вызове ThreadSwitchLowPriority. Если же нить вообще завершила свою работу, выполнив функцию return() в главной функции нити (при создании нити в качестве параметра указывается функция, которая является главной функцией нити), то данная нить уничтожается.
Нити, находящиеся в очереди DelayedWorkToDoList, после завершения условия ожидания перемещаются в конец очереди RunList.
Нити, находящиеся в очереди LowPriorityRunList, запускаются на выполнения только в том случае, когда очередь RunList пуста. Обычно в эту очередь назначаются нити, выполняющую несрочную фоновую работу.
Рис 6. Система очередей планирования NetWare
Очередь WorkToDoList является в системе самой приоритетной. Рабочие нити ОС выбирают работы из этой очереди, и эти нити обладают наивысшим приоритетом, то есть попадают на выполнение перед нитями из очереди RunList. Рабочие нити должны использоваться для выполнения очень срочных работ. Планировщик разрешает выполниться подряд только определенному количеству нитей из очереди WorkToDoList, а затем запускает нить из очереди RunList. Очередь WorkToDoList и связанные с ней функции, появившиеся в версии NetWare 4.0, значительно повышают производительность NLM-приложений.
Описанный механизм организации многонитевой работы в ОС NetWare v5.x и NetWare 6.x в сочетании со средствами синхронизации нитей (семафоры и сигналы) представляет собой современный подход к организации параллелизма и многопоточной обработки. Этот подход потенциально очень производителен, так как отличается небольшими накладными расходами ОС на диспетчирование нитей за счет простых алгоритмов планирования и иерархии контекстов Но для достижения высокой производительности к разработчикам NLM-приложений предъявляются высокие требования, так как распределение процессорного времени между различными NLM будет зависеть в конечном счете от реализации приложения и способа использования описанных в этом разделе средств. Кроме того, общая производительность сервера будет определяться всем набором выполняемых на нем NLM'ов и их взаимной способностью к сосуществованию.
... издержек производства, улучшение финансово-экономических результатов деятельности, посредством применения мер государственной поддержки, разработки и реализации планов финансового оздоровления, механизмов привлечения к кризисным предприятиям инвестиционных ресурсов, антикризисных компаний и инфраструктуры сопровождения реабилитационных процедур (страховые, лизинговые, субконтрактинговые, иные ...
... серийных программных продуктов, которые могут удовлетворить самых взыскательных пользователей. Наиболее подробно стоит рассмотреть Программный комплекс для автоматизации управления предприятием ПАРУС 8.1. Программный комплекс для автоматизации управления предприятием ПАРУС 8.1 Большинство факторов, мешающих процветанию предприятия, так или иначе связаны с проблемами в организации управления: ...
... уровня. В общем случае в качестве вариантов решений можно использовать классы стратегий, предлагаемых в экономической литературе. 16. Особенности проектирования интеллектуальной экономической информационной системы Проектирование ИИС начинается с обследования предметной области. Современные технологии такого обследования базируются на концепции и программных средствах реинжиниринга бизнес- ...
... бумажными технологиями). Третий этап. Внедрение самостоятельного электронного документооборота. Организация работы арендуемых приложений.4.3 Создание Информационно-логистического центра транспортного комплекса калининградского региона 4.3.1 Организационная модель ИЛЦ 4.3.1.1 Закрытое акционерное общество "Информационно-логистический Центр" Акционерная компания ( ...
0 комментариев