task scheduling problem