Читайте также:
|
|
Московский государственный технический университет
Имени Н.Э.Баумана
Учебное пособие
В.А.Крищенко, Н.Ю.Рязанова
Сервисы Windows
Издательство МГТУ им. Н.Э.Баумана
УДК 681.3.06
ББК 32.81
К82
Сведения об авторах:
Крищенко Всеволод Александрович, к.т.н., доцент
Рязанова Наталья Юрьевна, к.т.н., доцент
Рецензенты:
Учебное пособие рекомендовано к опубликованию кафедрой ИУ-7 и
Аннотация
Рассматрены служебные программы операционных систем Windows NT/2000/XP/Vista (службы или сервисы Win32), работающие в режиме пользователя и занимающие в операционных системах Windows NT/2000/XP/Vista особое место. На службы Win32 возложены такие важнейшие системные функции как сохранения копий отдельных файлов, управление конфигурацией сети, загрузки и обновление Windows и т.п.
Рассотрены особенности работы, использования, установки и разработки сервисов Win32.
Для студентов 3-го и 4-го курсов кафедры «Программное обеспечение ЭВМ и информационные технологии» МГТУ им.Н.Э.Баумана.
Введение
В различных операционных системах существует разные способы выполнения служебных заданий одновременно с основной работой без снижения скорости интерактивного взаимодействия с пользователем. В операционных системах семейства Unix для этого существуют демоны, выполняемые в фоновом режиме. В ОС Windows возможность запуска процессов, не связанных с работой интерактивного пользователя, осуществляется службами или сервисами, которые используют функции интерфейса - Windows API и работают в режиме пользователя. Примером Windows-сервиса может служить Web-сервер, который должен запускаться при запуске системы и работать независимо от того, зарегистрировался ли в системе какой-либо пользователь.
Windows-сервисы являются частью операционной системы и взаимодействуют с SCP-приложением (Service Control Program) и диспетчером управления сервисами (Service Control Manager - SCM). В данном учебном пособии обсуждаются особенности работы и написания сервисных приложений режима пользователя, учетные записи сервисов и работа SCM.
Службы Windows.
1.1. Программа – служба
Сервис ОС Windows или служба*) (англ. Windows Service) – это Win32 приложение, которое особым образом обрабатывается операционной системой (ОС). Службы Microsoft Windows, ранее называвшиеся службами NT, позволяют создавать исполняемые приложения, работающие длительное время и выполняющиеся в отдельной сессии Windows.
Основное отличие сервиса от обычного приложения заключается во взаимодействии сервиса с менеджером управления сервисами (Service Control Manager – SCM)**). Именно влияние SCM на работу сервиса определяет его особенности:
· Сервис имеет определенную структуру, которая позволяет ему принимать информацию и команды от SCM.
· Сервис в общем случае не является последовательно исполняемой программой, так как имеет несколько точек входа, т.е. содержит функции, вызываемые в ответ на определенные события в системе.
· Сервис может выполняться от имени любой учетной записи, при этом независимо от наличия вошедших в систему пользователей и их количества. Этот факт оказывает естественное влияние (т.е. влияние, не запрограммированное специально для сервисов, а являющееся следствием работы механизмов ОС, отвечающих за пользователей и их права) на принципы взаимодействия сервисами с операционной системой и другими программами.
К сожалению, термин «сервисы» (службы) используется фирмой Microsoft для обозначения совершенно разных программных средств Windows. Термин «сервисы» (службы) обозначает и драйверы устройств, и низкоуровневые сервисы ОС, такие как, NtCreateProcess, являющиеся внутрисистемными сервисами, и собственно сервисы, т.е. серверные приложения, являющиеся процессами пользовательского режима. Последние часто называют сервисами Win32. На множественность понятия «сервис» (service) в документации Windows обращают внимание Руссинович М. и Соломон Д. в своей книге «Внутреннее устройство Microsoft Windows: Windows Server 2003, Windows XP и Windows 2000» (стр.6)[3].
Как правило, Windows-сервис не имеет пользовательского интерфейса, что позволяет создавать сервис или как GUI-приложение (с функцией WinMain), или как консольное (с функцией main).
Сервис может быть запущен несколькими способами:
- автоматически при загрузке системы,
- пользователем через панель управления сервисами,
- с помощью специально написанного приложения,
- путем вызова функций управления сервисами.
Запущенный одним из перечисленных способов процесс может содержать в себе несколько сервисов, выполняющихся в различных потоках. Например, сервис Services.exe содержит около 10 других сервисов, включая такие сервисы как DHCP Client, Messenger и Alerter. Потоки не имеют собственного адресного пространства и разделяют адресное пространство своего процесса. Запуск каждого процесса связан с переключением полного контекста, что является расточительным с точки зрения временных затрат. Переключение потоков выполняется значительно быстрее. Но такая оптимизация имеет один недостаток – SCM позволяет таким сервисам работать только от имени системы. Другими словами, в настройках сервиса нельзя указать другие имя пользователя и пароль.
Управление сервисами можно осуществлять программно, обращаясь к предоставляемому SCM API, либо через соответствующую оснастку консоли управления (Microsoft Manager Consol – MMC).
Дата добавления: 2015-08-13; просмотров: 152 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Порядок действий при размещении файлов на диске Google | | | Диспетчер управления сервисами (SCM) |