Where does sitecore xdb Aggregation / Processing background services run, will this run in worker process when sitecore app pool starts or as a windows services?
Aggregation processing extracts data from the collection database, then groups and reduces it before storing the data in the reporting database for use by Sitecore reporting applications. It runs on CM server or in a standalone Processing Server. So is a worker process not a windows service.
Update for When aggregation process runs
When Sitecore starts, a hook runs that starts the AggregationLoader. The loader instantiates the AggregationModule, which is basically a container for agents. The agents are specified in the Sitecore config files. These agents handle the various processes that ensure the aggregation process runs properly.
One of these agents is the aggregation agent. This agent has a property named Dispatcher. The dispatcher provides InteractionWorkItem objects to the agent.
When the session ends an entry is made in the tracking database (which is another MongoDB database) that identifies the interaction that represents the session activity. The aggregation agent's Dispatcher reads the entries from the tracking database. Those entries are exposed as InteractionWorkItem objects.