Scheduling Independent Tasks with Multiple Shared Resources