Académique Documents
Professionnel Documents
Culture Documents
Operating System
A program that controls the execution of application programs An interface between applications and hardware A program that acts as an intermediary between a user of a computer and the computer hardware.
Convenience
Makes the computer more convenient to use
Efficiency
Allows computer system resources to be used in an efficient manner
Ability to evolve
Permit effective development, testing, and introduction of new system functions without interfering with service
7A-8
Uses a mouse to control objects Uses a desktop metaphor Shortcuts open programs or documents Open documents have additional objects Task switching Dialog boxes allow directed input
User types commands at a prompt User must remember all commands Included in all GUIs
Running Programs
Many different applications supported System call
Provides consistent access to OS features
Managing Hardware
Programs need to access hardware Interrupts
CPU is stopped Hardware device is accessed
Single Tasking
Operating System cannot be able to take control back from the running process/task/application In case if a process call an I/O Instruction then Processor must wait for I/O instruction to complete before preceding
Multitasking
Operating System can take control back from the running process and can give it to other. When one job needs to wait for I/O, the processor can switch to the other job
Process
A process is a name given to a program instance that has been loaded into memory and managed by the operating system As process executes over time it can be doing either of the activities or is in following states
Scheduling
What exactly is Scheduling? In computer science, scheduling is the method by which threads, processes or data flows are given access to system resources (e.g. processor time, communications bandwidth). This is usually done to load balance a system effectively or achieve a target quality of service.
Why do we need Scheduling? The basic reason behind the implementation of Scheduling Algorithms is that the modern computersystems of today rely on multi-tasking and multiplexing.
Goals of CPU Scheduling A good scheduling algorithm is designed to have the following features: Utilization/Efficiency: Keep the CPU busy 100% of the time with useful work. Throughput: Maximize the number of jobs processed per hour. Turnaround time: From the time of submission to the time of completion, minimize the time batch users must wait for output. Waiting time: Sum of times spent in ready queue, minimize this.
Response Time: Time from submission till the first response is produced, minimize response time for interactive users.
Fairness: Make sure each process gets a fair share of the CPU.