Not sure to understand what you are looking for.
Of course this is based on the plugin configuration.
The configuration of the plugins is stored as your kong configuration, you can configure it to be in memory or in database, see datastore section for more details
If you have question when you have several plugins, the plugins have a hardcoded priority to know the order of execution, see plugins order
If you question is which plugins will be executed, the Plugins can be configured for various entities, combination of entities, or even globally.
A plugin will always be run once and only once per request. But the configuration with which it will run depends on the entities it has been configured for. The more specific a plugin is with regards to how many entities it has been configured on, the higher its priority, you can get more details about precedence
Example: if the rate-limiting plugin is applied twice (with different configurations): for a Service (Plugin config A), and for a Consumer (Plugin config B), then requests authenticating this Consumer will run Plugin config B and ignore A. However, requests that do not authenticate this Consumer will fallback to running Plugin config A. Note that if config B is disabled (its enabled flag is set to false), config A will apply to requests that would have otherwise matched config B.