Designers and users of multitasking operating systems must be alert to the problem of task deadlock, which prevents the affected tasks from being completed. This paper describes the conditions that can result in task deadlock in any multitasking systems. Also discussed are techniques for avoiding deadlock in both operating system and application program design. Finally, it is shown how these techniques were applied in the design of the SYSTEM/360 Operating System job initiator, the part of the system that allocates major resources needed to execute jobs.