Unit 6 Operating Systems Dr Damitha Karunaratna University of Colombo school of computing.

download Unit 6 Operating Systems Dr Damitha Karunaratna University of Colombo school of computing.

If you can't read please download the document

Transcript of Unit 6 Operating Systems Dr Damitha Karunaratna University of Colombo school of computing.

  • Slide 1
  • Unit 6 Operating Systems Dr Damitha Karunaratna University of Colombo school of computing
  • Slide 2
  • Topics to discuss What is an operating system(OS)? Main objectives of an OS Main functions of an OS Evolution of OS. Process management. Context switching. Process state diagrams Operating Systems 2
  • Slide 3
  • Components of a Computer System hardwareelectronic, mechanical, optical devices. softwareprograms. Software saved on the storage media. Software burned into hardware Firmware Liveware Computer Users Operating Systems 3
  • Slide 4
  • What is an operating system(OS)? An operating system (OS) is a resource manager. What is the necessity for a resource manager? Many processes are active at any given time and compete for resources. An operating system provides orderly and controlled allocation of the resources among processes (jobs) that are competing for them. Operating Systems 4
  • Slide 5
  • Different types of Software Application Software Systems Software Operating system System utilities The quality of system software also directly affects the application software Operating Systems 5
  • Slide 6
  • Types of Software Operating Systems 6 Utility software: system software designed to help analyze, configure, optimize or maintain a computer (Anti-virus, Backup software, Editors, Data compression, Disk cleaners .). They are not essential to the running of the computer Transient Component
  • Slide 7
  • What is an operating system(OS)? Operating Systems 7
  • Slide 8
  • What is an operating system(OS)? Operating Systems 8 Kernel : Part of the O/S that resides in the main memory all the time.
  • Slide 9
  • Execution of source programs Operating Systems 9
  • Slide 10
  • Address mapping for re- locatable programs Operating Systems 10
  • Slide 11
  • Different types of Oss (Based on the processor) Windows/Linux For personal computers Unix,z/OS, OS/390, VM For mainframes MacOs For Macs X Server, Windows Server Server Operating Systems Symbian, Android For mobile phones. Operating Systems 11
  • Slide 12
  • Different types of OSs (Based on the users) Single User Allows only a single user to use the OS at any given time. The use may run several processes at the same time. Example - DOS Multi User - Allows multiple users to access a computer system at the same time Example UNIX, Time-sharing systems and Internet servers. Operating Systems 12
  • Slide 13
  • Different types of OSs(Based on the number of tasks) Single Task Allows only one running program at any given time. Multi Task - A multi-tasking operating system allows more than one program to be running at the same time. Operating Systems 13
  • Slide 14
  • Different types of OSs Real Time OS is designed to run applications with very precise timing and with a high degree of reliability. The main objective of real-time operating systems is their quick and predictable response to events. These types of OS are needed in situations where downtime is costly or a program delay could cause a safety hazard. Operating Systems 14
  • Slide 15
  • Main objectives of an OS Convenience: Make the computer more convenient to use Provide easy to use interface for a normal users. Hide the complexity of the hardware devices from the application developer. Efficiency: Monitor and manage resources of the computer system efficiently CPU Main memory Secondary Storages Various devices connected to the computer Operating Systems 15
  • Slide 16
  • Services provided by an OS Process Management Storage (external) management Memory management I/O device management Management of the File System Networking User Interface Protection Operating Systems 16
  • Slide 17
  • Services provided by an OS. Error detection and response Hardware errors: memory error or device failure Software errors: arithmetic errors, access forbidden memory locations Accounting collect statistics (billing) monitor performance Operating Systems 17
  • Slide 18
  • Types of User Interfaces Command Line Interface(CLI) Operating Systems 18
  • Slide 19
  • Types of User Interfaces Graphical User Interface(GUI) Operating Systems 19
  • Slide 20
  • OS and Processors Operating systems are software Operating systems are designed and developed for a specific CPU family. Macintosh OS: Motorola 680xx, PowerPC Gx, Intel DOS: Intel CPUs Windows 9x and XP: Intel 80386, 80486, and Pentium CPUs Linux: Intel CPUs MS NT & 2000: Intel CPUs Operating Systems 20 Can any OS run on any processor?
  • Slide 21
  • Compatibility of Software Question Will software developed for one operating system work on another? For example will MS Word for Macintosh run on a PC with Windows XP? Operating Systems 21
  • Slide 22
  • Compatibility of Software Question Will software developed for one operating system work on another? Answer No (unless there is special emulation software or hardware). The software is typically developed separately for each operating system. Operating Systems 22
  • Slide 23
  • Evolution of Operating systems Serial Processing (1940 mid 1950s) Single user system. Programmer/User acts as the operator and interacted with the hardware. No operating system. Machines run from a console with display lights, toggle switches. Paper Tapes or Punched cards for the program and I/O. Setup included loading the compiler, source program, saving compiled program, and loading and linking Operating Systems 23 Disadvantages : Scheduling: Hardcopy sigh-up sheet for reserving time User could reserve for 45 mins and finish in 30 mins => wastage of time User may not be able to finish in scheduled time
  • Slide 24
  • Simple batch system Simple Batch Processing Systems Use of high-level languages Jobs are batched together by the language. Input/output is through punch cards and magnetic tapes. Software called the Monitor was introduced to sequence the jobs. Hardware support for the monitor model Memory protection: some memory areas are accessible only to the monitor Privileged mode instructions: only accessible to the monitor Interrupts (early machines did not have this) Operating Systems 24
  • Slide 25
  • Simple batch processing system The user submits a job (written on cards or tape) to a computer operator. The computer operator place a batch of several jobs on an input device. A special program called the monitor, manages the execution of each program in the batch. Monitor is always in main memory. Monitor reads and loaded programs sequentially and then (the utility programs when needed) passed the control to the loaded program. When a job terminates the control returns back to the monitor program. Alternate execution between user program and the monitor program. instructions for the monitor were given by using a special purpose language called Job Control Language (JCL) Operating Systems 25
  • Slide 26
  • Simple batch system .. A user program executes in user mode, in which certain areas of memory were protected from the users use, and user program is not allowed to execute certain instructions. The monitor executes in a system mode, or a kernel mode and it can execute privileged instructions and can access protected memory segments. Machine time alternates between monitor and the user programs. Operating Systems 26
  • Slide 27
  • Simple batch system .. Disadvantages A portion of the memory has to be allocated for the monitor A small portion of the machine time is consumed by the monitor. Advantage of batch systems. Reduce setup time by batching similar jobs. Operating Systems 27
  • Slide 28
  • Card Deck of a job Operating Systems 28
  • Slide 29
  • Simple batch system : Problems During I/O operations CPU is not used. Operating Systems 29
  • Slide 30
  • Simple batch system : I/O I/O devices (Card Readers, Printers) slow when compared to CPU. Solution: Offline Operation (Satellite Computers) Speed up computation by loading jobs into memory from tapes while card reading and line printing is done off-line using smaller machines. Operating Systems 30
  • Slide 31
  • Multiprogramming Running multiple programs at the same time Requires sharing the CPU among multiple processes Transfer of control is called a context switch Operating Systems 31 FirefoxWordjavacFirefoxWord
  • Slide 32
  • Multiprogramming Why multiprogramming? Single user cannot keep CPU and I/O devices busy at all times. Multiprogramming organizes jobs (code and data) so CPU always has one to execute. A subset of total jobs in system is kept in memory. One job selected and CPU is give for that job. When it has to wait, OS switches to another job. Operating Systems 32
  • Slide 33
  • Multiprogramming Operating Systems 33
  • Slide 34
  • Time Sharing Systems Processors time is shared among multiple users Multiple users simultaneously access the system through terminals. Operating Systems 34
  • Slide 35
  • Multiprogramming Vs Time Sharing Systems Multiprogramming maximizes CPU utilization Time-sharing minimizes user response time Operating Systems 35
  • Slide 36
  • Loading the Operating System OS is also a software like any other, but has to be loaded and run by the OS itself. The process of initializing the computer and loading the OS is known as bootstrapping or booting the system. The bootstrapping program normally exist in non- volatile memory and is executed automatically when the machine is turned on. The operating system software (kernel) copied into RAM, usually from the hard disk, during the boot-up. Once loaded the OS wait for an event to occur (eg: user typing a command) and process the event. OS is an event driven software. Operating Systems 36
  • Slide 37
  • Loading the Operating System The kernel remains in RAM while the computer is on and is in charge of the overall operation of the computer system. The kernel contains the internal programs for the most often used operations like file management, memory management, security. Operating Systems 37
  • Slide 38
  • Gaining Control The OS gets the control of the CPU when either an external event or an internal event occurs. External Events Character typed at the console Completion of an I/O operation Timer quantum allowed for a process expires. Internal Events Division by zero, System call issued by a program Page Fault Unauthorized memory access Operating Systems 38
  • Slide 39
  • Interrupts External events get the attention of the CPU through Interrupts. For example when a disk driver has finished transferring the requested data, it generates an interrupt to the OS to inform the OS that the task is over. Interrupts occur asynchronously to the ongoing activity of the processor. Thus the times at which interrupts occur are unpredictable. Operating Systems 39
  • Slide 40
  • Interrupt Handlers Interrupt Handlers : Code that get executed when an interrupt occurs. Associated with each type of interrupt there is a specific program to handle that type of interrupts Interrupt handler (Interrupt service routine) Operating Systems 40
  • Slide 41
  • Getting the services of OS How do the user programs get the service of OS? User programs access the functionality of the OS through system calls privileged operations. Example : open(), close(), fork(),. The execution of system call change the execution mode of the CPU to supervisor mode. Operating Systems 41
  • Slide 42
  • Processes Process is a fundamental concepts in modern operating systems. It was first introduced by the designers of Multics operating systems in the 1960s. The programs that reside in main memory are absolutely different from their counter-parts the program files on hard disks or any other secondary storage devices. Operating Systems 42
  • Slide 43
  • Process and a program A process is a program in execution An instance of a program running on a computer. The entity that can be assigned to and executed on a processor A program is a static set of instructions Operating Systems 43
  • Slide 44
  • Process and a program A process exists in a limited span of time. Two or more processes could be executing the same program, each using their own data and resources. A program is a static entity made up of instructions. A program exists in the secondary storage till it is deleted. A program does not perform the action by itself. Operating Systems 44
  • Slide 45
  • Process creation and termination When a new process is created, the operating system builds the date structures that are used to manage the process and allocates space in main memory to the process. A process may terminates in a number of ways. After completion of the instructions. User terminates (kills) the process explicitly. For example clicking on the cross button in the windows applications. A process may terminate due to abnormal condition. When a process finishes, the operating system will free the memory space it occupies and remove the data structures it allocated to manage the process. Operating Systems 45
  • Slide 46
  • Processes in a typical Linux system Operating Systems 46
  • Slide 47
  • Uniprocessor Scheduling Type of processes I/O bound processes Processor bound processes Operating Systems 47
  • Slide 48
  • Uniprocessor Scheduling Types of Scheduling Long-term scheduling(Job scheduling) : It determines which programs are admitted to the system for processing. Job scheduler selects processes from the queue and loads them into memory for execution. Process loads into the memory for CPU scheduling. Medium-term scheduling : Medium term scheduling is in charge of swapping processes between the main memory and the secondary storage. Short-term scheduling (low-level scheduling) : Determines which ready process will be assigned the CPU when it next becomes available. Operating Systems 48
  • Slide 49
  • Scheduling Policies Non-preemptive Once a process is in the running state, it will continue until it terminates or blocks itself for I/O. Preemptive Currently running process may be interrupted and moved to the Ready state by the OS. Allows for better service since any one process cannot monopolize the processor for very long Operating Systems 49
  • Slide 50
  • Processor Scheduling Assigning the processor to the processes. Turnaround time : Time required for a particular process to complete, from submission time to completion. Response time : The time taken in an interactive program from the issuance of a command to the commence of a response to that command. Throughput : Number of processes completed per unit time. May range from 10 / second to 1 / hour depending on the specific processes. Waiting time : How much time a process spends in the ready queue waiting its turn to get on the CPU. Operating Systems 50
  • Slide 51
  • Long-term scheduling(Job scheduling) Determines which processes are admitted to the system for processing Controls the degree of multiprogramming If more processes are admitted better CPU usage less likely that all processes will be blocked The long term scheduler may attempt to keep a mix of processor-bound and I/O-bound processes Operating Systems 51
  • Slide 52
  • Medium-Term Scheduling Swapping decisions based on the need to manage multiprogramming Done by memory management software Operating Systems 52
  • Slide 53
  • Logical view of swapping Operating Systems 53
  • Slide 54
  • Short-Term Scheduling Determines which process is going to execute next (also called CPU scheduling) The short term scheduler is known as the dispatcher Dispatching the CPU to the process Operating Systems 54
  • Slide 55
  • Schedulers - Comparison Long Term SchedulerShort Term SchedulerMedium Term Scheduler Job SchedulerCPU schedulerProcesses swapping scheduler Selects processes from a pool and loads them into the memory for execution Selects those processes which are ready to execute for dispatching Swapped out/Re- introduces the processes into memory and execution can be continued. Controls the degree of multiprogramming Provides lesser control over the degree of multiprogramming Controls the degree of multiprogramming Speed is lesser than short term scheduler Speed is fastest among other two Speed is in between (short and long term schedulers) Operating Systems 55
  • Slide 56
  • Queuing Diagram for Scheduling Operating Systems 56
  • Slide 57
  • Seven state process transition Diagram Operating Systems 57 Typically, new processes are not in the main memory.
  • Slide 58
  • Seven state process transition Diagram Operating Systems 58 Long Term Scheduler Short Term Scheduler Medium Term Scheduler
  • Slide 59
  • Process Control Block (PCB) All of the information needed to keep track of a process when switching states is kept in a data package called a process control block. The process control block typically contains: An ID number that identifies the process Pointers to the locations in the program and its data where processing last occurred Register contents States of various flags and switches A list of files opened by the process The priority of the process The status of all I/O devices needed by the process Operating Systems 59
  • Slide 60
  • Context Switching A context switch is the mechanism to store and restore the state or context of a CPU in Process Control block so that a process execution can be resumed from the same point at a later time. Using this technique a context switcher enables multiple processes to share a single CPU. Context switching is an essential part of a multitasking operating system features. When the scheduler switches the CPU from executing one process to execute another, the context switcher saves the content of all processor registers for the process being removed from the CPU, in its process control block. Context switch time is pure overhead. Context switching can significantly affect performance as modern computers have a lot of general and status registers to be saved. Operating Systems 60
  • Slide 61
  • Context Switching Operating Systems 61
  • Slide 62
  • Short-term scheduling algorithms First-come-first served Round Robin Shortest Process next Operating Systems 62
  • Slide 63
  • Objectives of Short-Term Scheduling User-oriented Response Time: Elapsed time from the submission of a request to the beginning of response Turnaround Time: Elapsed time from the submission of a process to its completion System-oriented processor utilization fairness throughput: number of process completed per unit time Operating Systems 63
  • Slide 64
  • First-come-first served scheduling Each process joins the end of the Ready queue. When the current process ceases to execute, the process waited the longest time in the Ready queue is assigned the CPU. Operating Systems 64
  • Slide 65
  • Example - FCFS Operating Systems 65 ProcessArrival Time Service Time Finish time Turnaround time A0333 B2697 C44139 D651812 E822012 Average Turnaround time = (3 + 7+ 9+ 12 + 12)/5 = 8.60
  • Slide 66
  • Shortest Job First (Shortest Process Next) Nonpreemptive policy Process with shortest expected processing time is selected next Short process jumps ahead of longer processes Operating Systems 66
  • Slide 67
  • Shortest Job First (Shortest Process Next) Operating Systems 67 ProcessArrival Time Service Time Finish time Turnaround time A0333 B2697 C441511 D652014 E82113 Average Turnaround time = (3 + 7+ 11+ 14 + 3)/5 = 7.60
  • Slide 68
  • FCFS - Issues Operating Systems 68 A short process may have to wait a very long time before it can execute Favors CPU-bound processes I/O processes have to wait until CPU- bound process completes
  • Slide 69
  • Round Robin Scheduling Clock interrupt is generated at periodic intervals. When an interrupt occurs, the currently running process is placed in the ready queue (preempted) Next process in the ready queue is assigned the CPU. Known as time slicing Operating Systems 69
  • Slide 70
  • Queuing Diagram Operating Systems 70
  • Slide 71
  • Round Robin Scheduling Scheduling Policy Preemption, Time quantum for each process = 1 Operating Systems 71 ProcessArrival Time Service Time Finish time Turnaround time A0344 B261816 C441713 D652014 E82157 0510 1520 Average Turnaround time = (4 + 16+ 13+ 14 + 7)/5 = 10.80
  • Slide 72
  • Round Robin Scheduling Scheduling Policy Preemption, Time quantum for each process = 4 Operating Systems 72 ProcessArrival Time Service Time Finish time Turnaround time A0333 B261715 C44117 D652014 E821911 Average Turnaround time = ( 3+ 15+ 7+ 14 + 11)/5 = 10.00 Gantt Chart ?
  • Slide 73
  • Priority Scheduling Scheduler will always choose a process of higher priority over one of lower priority Use multiple ready queues to represent multiple levels of priority Lower-priority may suffer starvation Allow a process to change its priority based on its age or execution history Operating Systems 73
  • Slide 74
  • Priority Queuing Operating Systems 74 Can be either preemptive or non-preemptive
  • Slide 75
  • Threads A thread is the smallest schedulable unit in a system that can be managed independently by an operating system. A thread can also be viewed as an execution streams within a single process. Generally a thread contained inside a process. It is possible to have processes with one threads or processes with multiple threads. All threads of a process share common code, data, and other resources, including CPU registers. Allows multiple tasks to be performed simultaneously in a single address space. Context switching generates less overhead. Operating Systems 75
  • Slide 76
  • Threads .. Threads are very useful whenever a process has multiple tasks to perform independently of the others. For example in a word processor, a background thread may check spelling of a document while a foreground thread processes user keystrokes, while another thread may automatically backs up the edited section periodically. Operating Systems 76
  • Slide 77
  • Von Neumann Architecture Hardware components The hardware for a Von Neumann machine consists of three principle components; processor, memory, and I/O facilities. Operating Systems 77 Both programs and data are stored in the memory