.. _parts: Parts of an Operating System ============================== There are 4 broad tasks performed by an operating system. .. describe:: Process Management A :term:`process` is an executing program. It has its code, data, a certain set of resources allocated to it, and one or more threads of execution through the code. The OS manages the allocation of resources to these processes, and also provides system calls to manage these processes. .. describe:: Memory Management Memory must be shared between the OS and an application program. The OS must manage the allocation of memory to processes and control the memory management hardware that determines which memory locations a process may access. .. describe:: File System Management Computers process information that must be transmitted, processed, or stored. File systems are an abstract organized collection of file system objects. The OS provides primitives to manipulate these objects. .. describe:: Device Management Information is sent through a computer's input and output devices. Processes access these devices using the :term:`system call` interface. The OS tries to manage said devices in a manner that makes them efficiently shared among all processes requiring them. A :term:`system call` is a programming interface to the services provided by the OS, typically written in C/C++.