Thứ Ba, 13 tháng 8, 2013

Shared Service Processes

Running mọi service trong các process của chúng thay vì có services chia sẻ cùng một process bất cứ khi nào có thể sẽ gây lãng phí tài nguyên hệ thống. Tuy nhiên, trong các processes được chia sẻ nếu có bất cứ một service trong process có một lỗi gây cho process exit, tất cả services trong process sẽ kết thúc.

Một số Windows built-in services run trong process của riêng chúng và một số chia sẻ một process với các services khác. Cho ví dụ, SCM process hosts Event Log service và user-mode Plug and Play service, và LSASS process chứa các dịch vụ liên quan đến security - ví dụ như Security Accounts Manager (Samss) service, Net Logon (Netlogon) service, và IPSec Policy Agent (PolicyAgent) service.

Cũng có một process chung có tên là Service Host (SvcHost - \Windows\System32\Svchost.exe) để chứa nhiều services. Services mà run trong các SvcHost processes bao gồm Telephony (TapiSrv), Remote Procedure Call (RpcSs), và Remote Access Connection Manager (Rasman). Windows implements services mà run trong SvcHost như là các Dlls và includes một ImagePath giống như là “%SystemRoot%\System32\svchost.exe -k netsvcs” trong service registry key. Registry key của service phải có một registry value có tên là ServiceDll dưới Parameters subkey mà trỏ tới file Dll của service.

Tất cả các services chia sẻ một SvcHost process chỉ định cùng một parameter (ví dụ như "-k netsvcs") vì vậy chúng có một single entry trong SCM's image database.

Không có nhận xét nào:

Đăng nhận xét