In computer programming, a task is a basic unit of programming that an operating system controls. Depending on how the operating system defines a task in its design, this unit of programming may be an entire program or each successive invocation of a program. Since one program may make requests of other utility programs, the utility programs may also be considered tasks(or subtasks). All of todays widely-used operating systems support multitasking, which allows multiple tasks to run concurrently, taking turns using the resources of the computer.