- Operating system (often referred to as OS) is an integrated set of programs that controls the resources (CPU, memory, I/O devices etc .) of a computer system and provides its users with an interface or virtual machine that is easier to use than the bare machine
- main functions of most modern operating systems are process management memory management file management device management security and command interpretation
- Usually we measure efficiency of an operating system and overall performance of a computer system in terms of its throughput turnaround time and response time
- A process ( also called job) is a program in execution the main objective of process management module of an operating system is to manage the processes submitted to a system in a manner to minimize idle time of processors (CPU s, I/O processors etc) of the system
- A uni programming system processes only job at a time and all system resource are available exclusively for the job until its completion
- multi programming is interleaved execution of two or more different and independent programs by a computer
- multitasking is interleaved execution of multiple jobs (often referred to as tasks of same user) in a single user system
- in multi threading a process consists of an address space and one or more threads of control each thread of a process has its own program counter its own register states and its own stack however all the threads of a process share the same address space we often refer to threads as lightweight processes and traditional processes as heavyweight processes
- systems having multiple CPU s are called multiprocessing systems they can execute multiple processes concurrently these systems use multiple CPU s to process either instructions from different and independent programs or different instructions from the same program simultaneously (known as parallel processing )
- time sharing is a mechanism to provide simultaneous interactive use of a computer system by many users in such a way that all users feel that he/she is the sole user of the system it uses multi programming with a special CPU scheduling algorithm this
- memory management module of an operating system manages the main memory of a system its job is to keep track of free and occupied (in use ) parts of memory it also allocates memory to processes when they need it and de allocates when they no more need
- In a multi programming memory model multiple user processes can reside simultaneously in main memory the two memory management schemes which operating systems use to facilitate this are multi programming with fixed number of memory partitions and multi programming with variable number of memory partitions
- virtual memory is a memory management scheme that allows execution of a process without the need to load the process in main memory completely the three basic concepts which virtual memory mechanism uses for its realization are on-line secondary storage swapping and demand paging
- A file is a collection of related information every file has a name its data and attributes
- File management module of an operating system takes care of file related activities such as structuring accessing naming sharing and protection of files
- device management module of an operating system takes care of controlling all I/) devices of a computer system and provides a simple and easy to use interface to these devices
- computer security deals with protecting various resources and information of a computer system against destruction and unauthorized access commonly used approaches for this are user authentication access control and cryptography
- Command interpretation module (known as command interpreter) of an operating system provides a set of commands which users use to give instructions to a computer for execution of their jobs two broad categories of user interfaces supported by modern operating systems are command line interface and graphical user interface (GUI)
- OS capability enhancement software is a special category of software which bridges the gap between functionality of an operating system and needs of users for frequently used programs normally we group such software into three categories translating programs library programs and utility programs
- some popular operating systems are UNIX , MS- DOS, microsoft windows NT and Linux
