What is Operating System? It is a program. It is the first piece of software to run after the system boots. It coordinates the execution of all other software. It provides various common services needed by users and applications.
Operating System Definition Short definition: a program that manages a computer’s resources and acts as an intermediary between a user and those resources Computer User Application Operating system Application User Hardware Application
Operating System (OS) Functions For the User: Provides a user interface to let the user access hardware and software resources. For the System: Manages all the system tasks and resources to provide security, and fair, efficient use.
Hardware Kernel Operating Shell System Applications
Operating System Goals Execute user programs and make solving user problems easier. Make the computer system convenient to use. Use the computer hardware in an efficient manner.
Parts of an Operating System User Interface (Shell) Menu Command Language Graphical User Interface (GUI) System Security Login control Process Management CPU Scheduler
Parts of an Operating System Memory Management Swapper/Pager Temporarily unused pages are stored on disk (swapped out) When they are needed again, they are brought back into the memory (swapped in) Garbage Collection Resource Management File Management Device Management
Operating System Terminology Kernel Software component that controls the hardware directly, and implements the core privileged OS functions. Process An executing program.
Time Sharing Allows multiple processes to run on the same computer, seemingly at the same time. CPU is multiplexed among several processes that are kept in memory (the CPU is allocated to a process only if the process is in memory). A process is swapped in and out of memory to the disk as needed. OS must manage process scheduling and provide memory protection to keep one program from crashing the system or corrupting other programs.
CPU Time Slicingfor Time Sharing Only ONE process can be running on the CPU at a time. Each process is allocated a “slice” of time in the CPU. When the time runs out, the process is interrupted, and another process is loaded into the CPU. The act of giving each process a small slice of time to run is called time slicing.
CPU Time SlicingCPU Main Memory Allocate CPU to Process 1 Process 1 Allocate CPU Current to Process 2 Process 2 Process Process 3 Allocate CPU to Process 3Repeat until all processes have completed.
CPU execution modes CPUs supports (at least) 2 execution modes: User mode The code of the user programs Kernel (supervisor, privileged, monitor, system) mode The code of OS The execution mode is indicated by a bit in the processor status word (PSW) (a register in the CPU)
Protecting Kernel mode OS code executes in the Kernel mode Called via interrupts and system calls Only the OS code is allowed to be executed in the Kernel mode The user code must never be executed in the Kernel mode The program counter (PC) is only set to point to the OS code when the CPU goes to the Kernel mode
Interrupts An interrupt is the way by which the hardware informs the OS of special conditions that require OS attention Interrupts cause the CPU not to execute the next instruction Instead, the control is passed to OS
System Calls A System Call is used by a process to request a service from the OS Typical system calls Open/read/write/close the file Get the current time Create a new process Request more memory
A typical scenario 1. OS executes and chooses (schedules) an process to run 2. Process runs • CPU executes process’ instructions • OS is not involved 3. The system clock interrupts the CPU • Clock interrupt handler is executed • The handler is an OS function
A typical scenario (continued) 4. In the interrupt handler: Process’ time has expired. The OS chooses another process to run 5. Process runs • CPU executes process’ instructions • OS is not involved 5. The process performs a system call to read from a file.
A typical scenario (continued) 7. The system call causes a trap into the OS OS sets up the I/O OS schedules another application to run 7. The third application runs…. NOTE: At any given time only ONE program can be running: Either the OS or a user process
Parallel Systems Multi-processor systems with more than one CPU in close communication. Tightly coupled system – processors share memory and a clock; communication usually takes place through the shared memory. Advantages of parallel system: Economical Increased throughput Increased reliability
Parallel Systems Symmetric multiprocessing (SMP) Each processor runs an identical copy of the operating system. Many processes can run at once without performance deterioration. Most modern operating systems support SMP Asymmetric multiprocessing Each processor is assigned a specific task; master processor schedules and allocates work to slave processors. More common in extremely large systems
Distributed Systems Distribute the computation among several physical computers. Each has its own CPU, local memory, stable storage, I/O paths connecting to the environment Interconnections Loosely coupled system – each processor has its own local memory; processors communicate with one another through various communications lines, such as high-speed buses or telephone lines. Systems cooperate to maintain shared state and coordinate global information
Distributed Systems Advantages of distributed systems. Inherent distribution Speedup - improved performance due to load sharing Fault tolerance/Reliability Resource Sharing Scalability Flexibility
Distributed Systems Network Operating System provides file sharing provides communication scheme runs independently from other computers on the network Distributed Operating System less autonomy between computers gives the impression there is a single operating system controlling the network.