I just came across this term "time shared and space shared algorithms". I couldn't get much information about it in the web. Can anyone shed some light on these terms, specially on space sharing?
In my understanding, the terms time-sharing and space-sharing refer to the way the resources of a machine are shared among computational tasks. For instance, several processes typically take turns in accessing the CPU. This is time-sharing, because over a period of time, we observe more than one process utilizing the resource. On the contrary, when we assign cores of a CPU to individual processes, we observe more than one process only by looking at more than one core, thus the term space-sharing. A definition from [1]:
Space-sharing: The machine may be partitioned into sets of processors (clusters). Each cluster is allocated to a single job that is allowed to run to completion (RTC).
Time-sharing: More than one job may be allocated to a cluster, in which case each job runs for some quantum of time before being preempted to allow other jobs to run.
A more recent, but less broad definition of the terms can be found in the context of a Cloud environment [2]:
assign specific CPU cores to specific VMs (a space-shared policy), dynamically distribute the capacity of a core among VMs (time-shared policy)
Both definitions refer to exclusive access (until a logical task is done) to as space-sharing, while interwoven access to a resource (during a logical task) is referred to as time-sharing.
[1] A. B. Downey, “Predicting Queue Times on Space-Sharing Parallel Computers.,” IPPS, pp. 209–218, 1997.
[2] R. N. Calheiros, R. Ranjan, A. Beloglazov, C. A. F. De Rose, and R. Buyya, “CloudSim: a toolkit for modeling and simulation of cloud computing environments and evaluation of resource provisioning algorithms,” SPE, vol. 41, no. 1, pp. 23–50, Aug. 2010.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With