A study of the principles and techniques employed in modern computer operating systems. The emphasis is on process and thread creation, management and scheduling; system calls; memory management, virtual memory and paging; file system implementation, input/output systems and device management.