History, functions, structure and types of operating systems. Memory management (monoprogramming, multiprogramming with fixed partitions, virtual memory with paging or segmentation, optimal page size, optimal memory size). Parallel processes in operating systems (mathematical model, determinancy, maximally parallel task systems, deadlock, mutual exclusion, synchronisation). Processor scheduling. Distributed operating systems. Performance and efficiency of computer systems.