Адресное пространство процесса 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Адресное пространство процесса



Адресное пространство каждого процесса защищено от вмешательства в него любого другого процесса. Это обеспечивается механизмами виртуальной памяти. Операционная система, конечно, тоже защищена от прикладных процессов. Чтобы выполнить какую-либо процедуру ОС или прочитать что-либо из ее области памяти, нить должна выполняться в режиме ядра. Пользовательские процессы получают доступ к функциям ядра посредством системных вызовов. В пользовательском режиме выполняются не только прикладные программы, но и защищенные подсистемы Windows NT.

В Windows NT процесс - это просто объект, создаваемый и уничтожаемый менеджером объектов. Объект-процесс, как и другие объекты, содержит заголовок, который создает и инициализирует менеджер объектов. Менеджер процессов определяет атрибуты, хранимые в теле объекта-процесса, а также обеспечивает системный сервис, который восстанавливает и изменяет эти атрибуты.

Процесс в WIN

Объект-нить

Объект-нить имеет следующие атрибуты тела:

-Идентификатор клиента - уникальное значение, которое идентифицирует нить при ее обращении к серверу.

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

-Динамический приоритет - значение приоритета нити в данный момент.

-Базовый приоритет - нижний предел динамического приоритета нити.

-Процессорная совместимость нитей - перечень типов процессоров, на которых может выполняться нить.

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

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

-Счетчик приостановок - текущее количество приостановок выполнения нити.

29.Алгоритм планирования процессов и нитей

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

 

В ОС Windows NT нить в ходе своего существования может иметь одно из шести состояний (рисунок). Жизненный цикл нити начинается в тот момент, когда программа создает новую нить. Запрос передается NT executive, менеджер процессов выделяет память для объекта-нити и обращается к ядру, чтобы инициализировать объект-нить ядра. После инициализации нить проходит через следующие состояния:

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

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

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

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

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

Завершение. Когда выполнение нити закончилось, она входит в состояние завершения. Находясь в этом состоянии, нить может быть либо удалена, либо не удалена. Это зависит от алгоритма работы менеджера объектов, в соответствии с которым он и решает, когда удалять объект. Если executive имеет указатель на объект-нить, то она может быть инициализирована и использована снова.

30.Алгоритм планирования: готовность, первоочередная готовность, выполнение.

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

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

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

31.Алгоритм планирования: ожидание, переходное состояние, завершение.

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

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

Завершение. Когда выполнение нити закончилось, она входит в состояние завершения. Находясь в этом состоянии, нить может быть либо удалена, либо не удалена. Это зависит от алгоритма работы менеджера объектов, в соответствии с которым он и решает, когда удалять объект. Если executive имеет указатель на объект-нить, то она может быть инициализирована и использована снова.

Диспетчер ядра

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

Windows NT поддерживает 32 уровня приоритетов, разделенных на два класса - класс реального времени и класс переменных приоритетов. Нити реального времени, приоритеты которых находятся в диапазоне от 16 до 31, являются более приоритетными процессами и используются для выполнения задач, критичных ко времени.

Каждый раз, когда необходимо выбрать нить для выполнения, диспетчер прежде всего просматривает очередь готовых нитей реального времени и обращается к другим нитям, только когда очередь нитей реального времени пуста. Большинство нитей в системе попадают в класс нитей с переменными приоритетами, диапазон приоритетов которых от 0 до 15. Этот класс имеет название "переменные приоритеты" потому, что диспетчер настраивает систему, выбирая (понижая или повышая) приоритеты нитей этого класса.

Алгоритм планирования нитей в Windows NT объединяет в себе обе базовых концепции - квантование и приоритеты. Как и во всех других алгоритмах, основанных на квантовании, каждой нити назначается квант, в течение которого она может выполняться. Нить освобождает процессор, если:

Ò блокируется, уходя в состояние ожидания;

Ò завершается;

Ò исчерпан квант;

Ò в очереди готовых появляется более приоритетная нить.

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

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

Удаленное управление

Службы IIS 7.0 представляют новые способы удаленного управления сервером, узлами, веб-приложениями.

Раньше существовало 2 способа удаленного управления сервером IIS: с помощью веб-узла удаленного управления или удаленного рабочего стола/служб терминалов для доступа к пользовательскому интерфейсу. Но при нахождении с внешней стороны брандмауэра или не на узле эти способы были не особо полезны. В службах IIS 7.0 эта проблема устраняется благодаря созданию способов удаленного управления непосредственно в пользовательском интерфейсе, работающим через совместимое с брандмауэром подключение HTTPS.

 

Сервер терминалов

В семействе операционных систем Microsoft® Windows Server™ 2003 сервер терминалов дает пользователям компьютеров-клиентов всей сети доступ к программам Windows, установленным на серверах терминалов. С помощью сервера терминалов можно в одной точке установить программу, что позволит множеству пользователей из удаленного расположения на рабочем столе семейства операционных систем Windows Server 2003 запускать программы, сохранять файлы, использовать сетевые ресурсы, как на собственных компьютерах.

На компьютерах с операционными системами Microsoft® Windows® XP или Windows Server 2003 клиент сервера терминалов («Подключение к удаленному рабочему столу») уже установлен. Программа «Подключение к удаленному рабочему столу» может быть также установлена на другую 32-разрядную операционную систему Windows.

Сервер терминалов не входит в состав Microsoft® Windows Server™ 2003, Web Edition.

Внимание! Для удаленного администрирования сервера необязательно устанавливать сервер терминалов. По умолчанию устанавливается «Администрирование удаленного рабочего стола». Для использования администрирования удаленного рабочего стола необходимо сначала разрешить удаленные подключения

Для управления удаленными подключениями к серверу используется несколько инструментов администрирования:

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

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

Лицензирование сервера терминалов.

Службы терминалов.

Службы терминалов обеспечивают удаленный доступ к рабочему столу Microsoft® Windows® посредством программного обеспечения «тонкий клиент», позволяющего компьютеру клиента работать в качестве эмулятора терминала. Службы терминалов передают клиенту только пользовательский интерфейс программы. Затем клиент возвращает нажатия клавиш клавиатуры и кнопок мыши для выполнения на сервере. При входе каждый клиент видит только свои сеансы, которые управляются операционной системой сервера и являются независимыми от сеансов других пользователей. Для подключения к компьютеру через службы терминалов, следует использовать программу «Подключение к удаленному рабочему столу» (новый клиент службы терминалов).

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

Внимание!

Для удаленного администрирования сервера необязательно устанавливать сервер терминалов. По умолчанию устанавливается средство «Администрирование удаленного рабочего стола». Для использования администрирования удаленного рабочего стола необходимо сначала разрешить удаленные подключения.

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

Подключение служб терминалов обеспечивает связь, которую клиенты используют для подключения к сеансу на сервере. Когда службы терминалов установлены, соединение TCP/IP настроено на использование порта 3389. Используя оснастку «Настройка служб терминалов», можно изменять установленные по умолчанию свойства подключения, а также другие параметры, применяющиеся к сеансам служб терминалов.

Создание и управление учетной записью для определенного компьютера, осуществляется с использованием оснастки «Локальные пользователи и компьютеры», или, для домена компьютеров, с использованием оснастки «Пользователи и компьютеры Active Directory».

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

Преимущества служб терминалов

· Существенное увеличение быстродействия сетевых приложений. Службы терминалов позволяют многократно ускорить работу сетевых приложений, одновременно снизив нагрузку на локальную сеть. Благодаря эмуляции "клиент-серверной" схемы работы службами терминалов, обработка больших объёмов данных производится непосредственно на сервере, а клиентскому ПК по сети передаётся только результат вычислений. Например если ранее при открытии списка товаров в 1С:Бухгалтерии 7.7 на сетевом ПК Вы ожидали примерно 3-6 секунд, то при использовании новой технологии эта процедура произойдет практически мгновенно! (1)

· Более быстрый доступ к рабочему столу операционных систем семейства Windows XP. Службы терминалов помогают перенести старые версии рабочих столов на Microsoft® Windows® XP Professional, предоставляя компьютерам под управлением более ранних версий Windows виртуальный доступ к рабочему столу Windows XP. Клиенты служб терминалов доступны для различных платформ, использующих рабочий стол, включая Microsoft MS-DOS, терминалы Windows, Macintosh и UNIX. В дополнение к этому веб-версия клиента служб терминалов («Подключение к удаленному рабочему столу») обеспечивает возможность подключения служб терминалов к компьютерам с доступом в Интернет, если на них установлен обозреватель Internet Explorer. (Подключение к MS-DOS, Macintosh, UNIX требует дополнительного программного обеспечения.)

· Снижение затрат на модернизацию старого парка персональных компьютеров. Службы терминалов позволяют подключать, без дополнительных затрат на модернизацию аппаратного обеспечения, новый интерфейс Microsoft® Windows® XP Professional на старые ПК, производительности которых хватало только для ранних версий Windows (95,98,NT4,2000).

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

· Возможность использования полного набора преимуществ данного оборудования. Службы терминалов расширяют модель распределенных вычислений, позволяя компьютерам одновременно выполнять операции в качестве «тонкого клиента» и полноценные операции. Компьютеры могут продолжать работать в существующей сети и одновременно с этим выполнять функции «тонких клиентов», эмулируя рабочий стол Windows XP Professional.

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

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

35.

Подсистемы в Win NT

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

Наиболее важной подсистемой окружения является Win32 - подсистема, которая обеспечивает доступ для приложений к 32-bit Windows API. Дополнительно эта система обеспечивает графический интерфейс с пользователем и управляет вводом/выводом данных пользователя. Также поддерживаются подсистемы POSIX, OS/2,16-разрядная Windows и MS-DOS.

Каждая защищенная подсистема работает в режиме пользователя, вызывая системный сервис NT executive для выполнения привилегированных действий в режиме ядра. Сетевые серверы могут выполняться как в режиме пользователя, так и в режиме ядра, в зависимости от того, как они разработаны.

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

Основным средством, скрепляющим все подсистемы Windows NT в единое целое, является механизм вызова локальных процедур (Local Procedure Call - LPC). LPC представляет собой оптимизированный вариант более общего средства - удаленного вызова процедур (RPC), которое используется для связи клиентов и серверов, расположенных на разных машинах сети.

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

Windows NT использует защищенные подсистемы для того, чтобы:

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

Изолировать базовую операционную систему от изменений или расширений в поддерживаемых API.

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

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

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

Редиректор в WIN

Windows NT унаследовала от своих предшественников редиректор и сервер, протокол верхнего уровня SMB и транспортный протокол NetBIOS (правда, с новым "наполнением" - NetBEUI). Как и в сети MS-NET редиректор перенаправляет локальные запросы ввода-вывода на удаленный сервер, а сервер принимает и обрабатывает эти запросы.

Сначала редиректор и сервер были написаны на ассемблере и располагались над существующим системным программным обеспечением MS-DOS. Новые редиректор и сервер встроены в Windows NT, они не зависят от архитектуры аппаратных средств, на которых работает ОС. Они написаны на С и выполнены как загружаемые драйверы файловой системы, которые могут загружаться или выгружаться в любое время. Они также могут сосуществовать с редиректорами и серверами других производителей.

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

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

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

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

Сетевой редиректор обеспечивает средства, необходимые одному компьютеру Windows NT для доступа к файлам и принтерам другого компьютера. Так как он поддерживает SMB-протокол, то он работает с существующими серверами MS-NET и LAN Manager, обеспечивая доступ к системам MS-DOS, Windows и OS/2 из Windows NT. Механизмы безопасности обеспечивают защиту данных Windows NT, разделяемых по сети, от несанкционированного доступа.

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

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

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

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

SMB реализует:

· установление сессии,

· файловый сервис,

· сервис печати,

· сервис сообщений.

Интерфейс, в соответствии с которым редиректор посылает блоки SMB, называется интерфейсом транспортных драйверов (transport driver interface - TDI). Редиректор вызывает функции TDI для передачи блоков SMB различным транспортным драйверам, загруженным в Windows NT. Для вызова функций TDI редиректор должен открыть канал, называемый виртуальной связью (virtual circuit), к машине назначения, а затем послать SMB-сообщение через эту виртуальную связь.

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

Как и редиректор, сервер Windows NT на 100% совместим с существующими SMB-протоколами MS-NET и LAN Manager. Эта полная совместимость позволяет серверу обрабатывать запросы, исходящие не только от систем Windows NT, но и от других систем, работающих с программным обеспечением LAN Manager. Как и редиректор, сервер выполнен в виде драйвера файловой системы.



Поделиться:


Последнее изменение этой страницы: 2017-02-17; просмотров: 206; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.222.67.251 (0.063 с.)