CIS-410: Operating Systems Spring 2008 Organizational Details Class Meeting: 7:00-9:45pm, Monday, Room 252N Instructor: Dr. Igor Aizenberg Office: Aikin Building, 192 Phone (903 223 3183) e-mail: igor.aizenberg@tamut.edu Office hours: Tuesday, Thursday, Friday 12-30 – 2-00 pm Text Book A. Silberschatz, P. B. Galvin and G. Gagne "Operating System Concepts" 7th Edn., John Wiley & Sons,2005, ISBN 0-471-69466-5 Control Exams (open book, open notes): Midterm 1: Midterm 2: Final Exam: Homework March 3, 2007 April 14, 2007 May 12, 2007 Grading Grading Method Homework and preparation: Midterm Exam 1: Midterm Exam 2: Final Exam: Grading Scale: 90%+ A 80%+ B 70%+ C 60%+ D less than 60% F 10% 25% 30% 35% Chapter 1: Introduction What we will study? What Operating Systems Do Computer-System Organization Computer-System Architecture Operating-System Structure Operating-System Operations Process Management Memory Management Storage Management Protection and Security Modern Operating Systems: Windows XP and Linux Operating System Concepts – 7th Edition, Jan 12, 2005 1.7 Silberschatz, Galvin and Gagne ©2005 Objectives To provide a grand tour of the major operating systems components To provide coverage of basic computer system organization To learn basic ideas behind the modern operating systems. To learn basic issues in operating system design and implementation. To allow you to use an operating system to control your computer. To give you the ability to quickly learn new operating systems. Operating System Concepts – 7th Edition, Jan 12, 2005 1.8 Silberschatz, Galvin and Gagne ©2005 What is an Operating System? An Operating System is a program that acts as an intermediary between a user of a computer and the computer hardware. 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. Operating System Concepts – 7th Edition, Jan 12, 2005 1.9 Silberschatz, Galvin and Gagne ©2005 Computer System Structure Computer system can be divided into four components Hardware – provides basic computing resources Operating system Controls and coordinates use of hardware among various applications and users Application programs – define the ways in which the system resources are used to solve the computing problems of the users CPU, memory, I/O devices Word processors, compilers, web browsers, database systems, video games Users People, machines, other computers Operating System Concepts – 7th Edition, Jan 12, 2005 1.10 Silberschatz, Galvin and Gagne ©2005 Four Components of a Computer System Operating System Concepts – 7th Edition, Jan 12, 2005 1.11 Silberschatz, Galvin and Gagne ©2005 Operating System Definition OS is a resource allocator Manages all resources Decides between conflicting requests for efficient and fair resource use OS is a control program Controls execution of programs to prevent errors and improper use of the computer Operating System Concepts – 7th Edition, Jan 12, 2005 1.12 Silberschatz, Galvin and Gagne ©2005 Operating System Definition (Cont.) No universally accepted definition “Everything a vendor ships when you order an operating system” is good approximation But varies wildly “The one program running at all times on the computer” is the kernel. Everything else is either a • system program (ships with the operating system) or • an application program Operating System Concepts – 7th Edition, Jan 12, 2005 1.13 Silberschatz, Galvin and Gagne ©2005 Computer Startup bootstrap program is loaded at power-up or reboot Typically stored in ROM or EPROM, generally known as firmware Initializates all aspects of system Loads operating system kernel and starts execution Operating System Concepts – 7th Edition, Jan 12, 2005 1.14 Silberschatz, Galvin and Gagne ©2005 Historical Overview Electronic Computers •“The 1st Generation”: vacuum tube technology (1945-1955) A few milliseconds per arithmetic operation •“The 2nd Generation”: transistor technology (1955-1965) High-level languages, compilers, separate I/O processors •“The 3rd Generation”: integrated-circuit technology (1965-1975) Operating systems, Microprogramming, multiprogramming, pipelining, cache memories •“The 4th Generation”: VLSI (Very Large Scale Integration) (1975- present) Microprocessors, virtual memories, concurrency, networks, high resolution graphics •Beyond the 4th Generation: artificial intelligence, massively parallel machines, extensively distributed systems Operating System Concepts – 7th Edition, Jan 12, 2005 1.15 Silberschatz, Galvin and Gagne ©2005 1st and 3rd Generations of Computers 1st Generation Computer, 1954 Operating System Concepts – 7th Edition, Jan 12, 2005 3rd Generation Computer IBM-360, 1966 1.16 Silberschatz, Galvin and Gagne ©2005 History of Operating Systems: Phases Phase 1: Hardware is expensive, humans are cheap (1945-1965) User at console: single-user systems Batching systems Multi-programming systems Phase 2: Hardware is cheap, humans are expensive (1965-1981) Time sharing: Users use cheap terminals and share servers Phase 3: Hardware is very cheap, humans are very expensive (1981-1990th) Personal computing: One system per user Distributed computing: lots of systems per user Phase 4: Ubiquitous computing (1990th and beyond) Computers everywhere: Cell phone, mp3 player, DVD player, etc. Operating System Concepts – 7th Edition, Jan 12, 2005 1.17 Silberschatz, Galvin and Gagne ©2005 History of Operating Systems: Phases Phase 1: Hardware is expensive, humans are cheap User at console: single-user systems Batching systems Multi-programming systems Phase 2: Hardware is cheap, humans are expensive Time sharing: Users use cheap terminals and share servers Phase 3: Hardware is very cheap, humans are very expensive Personal computing: One system per user Distributed computing: lots of systems per user Phase 4: Richer services Real-time operating systems Operating System Concepts – 7th Edition, Jan 12, 2005 1.18 Silberschatz, Galvin and Gagne ©2005 A Brief History of Operating Systems Hand programmed machines (‘45-‘55) Single user systems OS = loader + libraries of common subroutines Problem: low utilization of expensive components Execution time = % utilization Execution time + Card reader time Operating System Concepts – 7th Edition, Jan 12, 2005 1.19 Silberschatz, Galvin and Gagne ©2005 Batch/Off-line processing (‘55-‘65) Batching v. sequential execution of jobs Card Reader: CPU: Read Job 1 Job 2 CPU: Job 2 Execute Job 1 Print Job 1 Printer: Card Reader: Job 3 Read Batch 1 Batch 2 Operating System Concepts – 7th Edition, Jan 12, 2005 Job 2 Job 3 Batch 3 Execute Batch 1 Printer: Job 3 Batch 2 Print Batch 1 1.20 Batch 3 Batch 2 Batch 3 Silberschatz, Galvin and Gagne ©2005 Batch processing (‘55-‘65) Operating system = loader + sequencer + output processor User Data User Program Tape “System Software” Tape Operating System Card Reader Compute Tape Tape Output Input Operating System Concepts – 7th Edition, Jan 12, 2005 Printer 1.21 Silberschatz, Galvin and Gagne ©2005 Multiprogramming (‘65-‘80) Keep several jobs in memory and multiplex CPU between jobs ... User Program n program P begin : Read(var) : end P Simple, “synchronous” input: What to do while we wait for the I/O device? User Program 2 User Program 1 “System Software” Operating System Operating System Concepts – 7th Edition, Jan 12, 2005 system call Read() begin StartIO(input device) WaitIO(interrupt) EndIO(input device) : end Read 1.22 Silberschatz, Galvin and Gagne ©2005 Multiprogramming (‘65-‘80) Keep several jobs in memory and multiplex CPU between jobs Program 1 I/O Device main{ User Program n ... OS k: read() read{ startIO() waitIO() User Program 2 User Program 1 “System Software” endio() k+1: interrupt } Operating System } Operating System Concepts – 7th Edition, Jan 12, 2005 1.23 Silberschatz, Galvin and Gagne ©2005 Multiprogramming (‘65-‘80) Keep several jobs in memory and multiplex CPU between jobs Program 1 ... Program 2 I/O Device main{ User Program n k: read() read{ startIO() schedule() } User Program 2 User Program 1 “System Software” OS endio{ main{ interrupt schedule() } k+1: Operating System } Operating System Concepts – 7th Edition, Jan 12, 2005 1.24 Silberschatz, Galvin and Gagne ©2005 History of Operating Systems: Phases Phase 1: Hardware is expensive, humans are cheap User at console: single-user systems Batching systems Multi-programming systems Phase 2: Hardware is cheap, humans are expensive Time sharing: Users use cheap terminals and share servers Phase 3: Hardware is very cheap, humans are very expensive Personal computing: One system per user Distributed computing: lots of systems per user Phase 4: Richer services Real-time operating systems Operating System Concepts – 7th Edition, Jan 12, 2005 1.25 Silberschatz, Galvin and Gagne ©2005 Timesharing (‘70- ) A timer interrupt is used to multiplex CPU among jobs Program 1 OS Program 2 main{ ... User Program n k: timer interrupt schedule{ main{ } User Program 2 User Program 1 schedule{ “System Software” k+1: Operating System Operating System Concepts – 7th Edition, Jan 12, 2005 timer interrupt } timer interrupt 1.26 schedule{ Silberschatz, Galvin and Gagne ©2005 History of Operating Systems: Phases Phase 1: Hardware is expensive, humans are cheap User at console: single-user systems Batching systems Multi-programming systems Phase 2: Hardware is cheap, humans are expensive Time sharing: Users use cheap terminals and share servers Phase 3: Hardware is very cheap, humans are very expensive Personal computing: One system per user Distributed computing: lots of systems per user Phase 4: Richer services Real-time operating systems Operating System Concepts – 7th Edition, Jan 12, 2005 1.27 Silberschatz, Galvin and Gagne ©2005 Operating Systems for PCs Personal computing systems Single user Utilization is no longer a concern Emphasis is on user interface and API Many services & features not present Evolution Initially: OS as a simple service provider (simple libraries) Now: Multi-application systems with support for coordination and communication Growing security issues (e.g., online commerce, medical records) Operating System Concepts – 7th Edition, Jan 12, 2005 1.28 Silberschatz, Galvin and Gagne ©2005 Distributed Operating Systems Typically support distributed services Possibly employ multiple processors Sharing of data and coordination across multiple systems Loosely coupled v. tightly coupled systems High availability & reliability requirements User Program User Program OS process management OS process management memory management file system name services mail services CPU CPU CPU OS NetworkLAN/WAN Operating System Concepts – 7th Edition, Jan 12, 2005 1.29 Silberschatz, Galvin and Gagne ©2005 History of Operating Systems: Phases Phase 1: Hardware is expensive, humans are cheap User at console: single-user systems Batching systems Multi-programming systems Phase 2: Hardware is cheap, humans are expensive Time sharing: Users use cheap terminals and share servers Phase 3: Hardware is very cheap, humans are very expensive Personal computing: One system per user Distributed computing: lots of systems per user Phase 4: Connecting people and their machines Intellectual property issues Information organization Operating System Concepts – 7th Edition, Jan 12, 2005 1.30 Silberschatz, Galvin and Gagne ©2005