на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Консолидация информационных потоков предприятия
p align="left">При переключении нитей операционная система использует контекст нити, который является мгновенным снимком рабочей среды нити. В общем случае в контекст нити входят различные переменные, содержание экранов, указатели, счетчики, ссылки, управляющая информация и другие параметры. При переключении с одной нити на другую контекст снимаемой с выполнения нити запоминается ОС, а контекст запускаемой нити восстанавливается. Время переключения во многом зависит от размера контекста, и алгоритм невытесняющей многозадачности работает быстрее вытесняющего алгоритма и из-за того, что в первом случае контекст нити или процесса (в ОС, поддерживающих только концепцию процесса) имеет меньшие размеры.

Рис 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'ов и их взаимной способностью к сосуществованию.

4.6 Файловая система

Файловая система NetWare значительно отличается от файловых систем ОС общего назначения следующими ключевыми свойствами:

в ней предприняты дополнительные меры по сохранению целостности данных;

достигнута высокая производительность;

обеспечена емкость файловых систем класса мейнфреймов;

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

Тома и жесткие диски

Том - это первичная структура данных файловой системы NetWare. Том включает физическое хранилище данных, логическую информацию о файлах (файлы и каталоги), информацию пространства имен (Name Space) для поддержки не-DOS'овских форматов файлов и системы отказоустойчивости - систему оперативного исправления (Hot Fix) и систему отслеживания транзакций (TTS).

Сервер NetWare 5.х или 6.x может иметь до 64 томов, монтируемых одновременно. Каждый том может обеспечивать хранение до 32 TБ (терабайт), если сервер имеет достаточный кэш для хранения структур данных тома, включая FAT (File Allocation Table) тома.

Том NetWare - это аналог понятия "файловая система" в UNIX. То есть том можно монтировать и демонтировать, как и файловую систему UNIX. Однако внутренняя структура тома NetWare существенно отличается от структуры файловой системы UNIX.

Физическая структура тома

Физический носитель, который доступен для приложений с помощью средств тома NetWare, состоит из блоков. Блок тома соответствует последовательности секторов физического носителя. Стандартный размер блока тома - 4K (8 секторов), но возможны блоки и больших размеров. Том NetWare - это массив блоков, а каждый блок - это массив секторов.

Блоки тома должны быть связаны с реальным физическим носителем. Этот носитель состоит из сегментов областей физического носителя, которые являются разделами (partitions), подготовленными для использования как части тома NetWare.

Таким образом, базовая структура тома NetWare включает:

Сегмент физического носителя, который подготовлен как раздел NetWare;

Секторы физического носителя, поддерживаемые контроллером диска;

Блоки, каждый из которыхпредставляет собой массив секторов;

Том, представляет собой массив блоков.

Том NetWare может быть многосегментным. Поэтому физический носитель тома может состоять из нескольких дисководов.

Многосегментные тома имеют следующую структуру:

Том может включать до 32 сегментов;

Отдельный физический носитель может состоять максимум из 8 сегментов, относящихся к одному или нескольким томам.

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

Таблица, которая описывает сегмент, называется таблицей определения тома Volume Definition Table (VDT). В этой таблице содержится имя тома, размер тома и информация о расположении сегментов тома на различных дисках. Каждый том NetWare содержит четыре копии (для обеспечения отказоустойчивости) таблицы VDT в каждом разделе NetWare диска. Кроме таблиц VDT раздел NetWare содержит область переназначения дефектных блоков Hot Fix, остальная часть раздела NetWare отводится под сегменты, которые могут принадлежать различным томам.

На сервере NetWare должен быть один диск, содержащий раздел DOS. Этот раздел является активным и с него после выполнения стартового командного файла DOS autoexec.bat автоматически стартует ОС NetWare.

Логическая структура тома

Каждый том имеет таблицу распределения блоков файлов FAT и таблицу входов в каталог DET (Directory Entry Table). Таблица FAT по назначению аналогична таблице FAT MS-DOS, а таблица DET - корневому каталогу диска MS-DOS. Отличие DET от корневого каталога DOS состоит в том, что для каждого файла в нем может находиться несколько записей - входов, если файл имеет не DOS'овский формат.

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

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

Кэширование файлов

В NetWare для достижения высокой производительности файловой системы реализован обширный динамический кэш файлов в оперативной памяти. Этот кэш построен на блочной основе. Когда приложение читает или пишет в файл, NetWare копирует нужные блоки данных файла в кэш (если они не находятся уже там). Когда файловая кэш-память полностью заполняется, NetWare выполняет процедуру выгрузки в соответствии с алгоритмом "наименее используемый в последнее время" (Least Recently Used, LRU).

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

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

В NetWare в буферах кэш-системы хранятся не только блоки данных файлов, но и такие элементы файловой системы, как FAT, Turbo FAT, кэш-таблица и входы каталогов. Turbo FAT представляет собой таблицу, в которой непосредственно перечислены все блоки файла, если их количество превышает 64. Это обеспечивает быстрый доступ к большим файлам.

При разработке серверных приложений при использовании стандартных функций API работы с файлами программисту нет необходимости задумываться об особенностях реализации системы кэширования файлов. Однако NetWare предоставляет разработчику специальные функции чтения данных непосредственно из буферов кэша (API асинхронного чтения AsyncRead API). Этот API позволяет увеличить производительность NLM-приложений.

Страницы: 1, 2, 3, 4, 5



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.