Scheduling in distributed systems a cloud computing perspective