scheduling based on resource availability