  Scheduling is essentially a decision-making process that enables resource
sharing among a number of activities by determining their execution order on
the set of available resources. The emergence of distributed systems brought
new challenges on scheduling in computer systems, including clusters, grids,
and more recently clouds. On the other hand, the plethora of research makes it
hard for both newcomers researchers to understand the relationship among
different scheduling problems and strategies proposed in the literature, which
hampers the identification of new and relevant research avenues. In this paper
we introduce a classification of the scheduling problem in distributed systems
by presenting a taxonomy that incorporates recent developments, especially
those in cloud computing. We review the scheduling literature to corroborate
the taxonomy and analyze the interest in different branches of the proposed
taxonomy. Finally, we identify relevant future directions in scheduling for
distributed systems.
