Task Allocation Problems in Distributed Computer Systems