The scheduler manages a number of slots in which tasks can be executed in parallel. The maximum number of concurrent slots is determined for each category of tasks as described in the following table:
Task category |
Task types in this category |
Maximum concurrent slots for this category |
---|---|---|
Disk |
Copying & moving jobs, basic tools in Sunrise framework |
3 |
Light |
Light scripts (see below) |
3 + "Concurrent external processes" preference |
Processor |
(Un)Compress, configurators in Sunrise framework, heavy scripts (see below) |
"Concurrent external processes" preference |
Network |
FTP, Mail |
"Concurrent file transfers" preference |
Within each category concurrency is further limited by the serialization needs of each task type. Thus even when a slot is available for a particular category, a task in that category may not match the slot because, for example, another task of the same type is already executing and the task type has the serialized execution mode.
Scripts include many of the tools built-in to Switch, and all third-party script packages.
Initially a script is heavy. If its entry points consistently complete quickly (in less than 1 second for 5 consecutive times) the script becomes light, until it violates this "trust" by not completing within 1 second once – it then becomes heavy again.