67c9fdd71656ff72eea415848c72bc85.ppt
- Количество слайдов: 40
Lecture Notes Operating Systems Dr. Ming Zhang Tel: +1 (757) 594 7065 Fax: +1 (757) 594 7919 Office: Gosnold Hall 223 Email: mzhang@pcs. cnu. edu URL: http: //www. pcs. cnu. edu/~mzhang http: //www. Dr. Ming. Zhang. com http: //j 2 ee. pcs. cnu. edu/moodle Operating Systems Subject Introduction Dr. Ming Zhang
Contents of Operation Systems (1) * * * * Operation System Processes Concurrency& UNIX Concurrency Mechanisms Memory - Memory Management - Virtual Memory Scheduling - Uniprocessor Scheduling - Multiprocessor Scheduling Input/Output and Files Distributed Systems (CPSC 450) Security(CPSC 450) Network Programming Overview Dr. Ming Zhang
Contents of Operation Systems (2) * Processes • • • Process Description Process Environment Process Control Threads SMP (symmetric Multiprocessing) Microkernel Operating Systems Subject Introduction Dr. Ming Zhang
Contents of Operation Systems (3) * Concurrency • • Mutual Exclusion Synchronization Dead Lock Starvation Operating Systems Subject Introduction Dr. Ming Zhang
Contents of Operation Systems (4) * Memory Management Ø buddy System Ø Paging * Scheduling (Uniprocessor Scheduling) Ø First-Come-First-Served (FCFS) Ø Round-Robin (RR): q=1; q=4 Ø Shortest Process Next (SPN) Ø Shortest Remaining Time (SRT) Ø Highest Response Ratio Next (HRRN) Ø Feedback q=1; q=2 i * Input/Output and Files Ø Disk Scheduling Ø Fire Organization Network Programming Overview Dr. Ming Zhang
Prescribed Text William Stalling Operating Systems - Internal and Design Principles 2005, Fifth Edition Prentice Hall INSB: 0 - 13 - 147954 Winner of the 1998 text award for the best computer science and engineering textbook Operating Systems Subject Introduction Dr. Ming Zhang
Exercises/Homework Exercise/Homework Operating Systems Subject Introduction Dr. Ming Zhang
Tests * Test 1: * Test 2: * Test 3: Operating Systems Subject Introduction Dr. Ming Zhang
Project: Construction of a Larger System Programming: 2, 000 -3, 000 Lines Project Report: 3, 000 words Oral Presentation: 5 minutes person Operating Systems Subject Introduction Dr. Ming Zhang
Final Examination * Time 2. 5 hours Operating Systems Subject Introduction Dr. Ming Zhang
Operating Systems History z z z z z Operating systems Subroutine Batch monitor Buffering and interrupt Multiprogramming Interactive timesharing Preemptive scheduling Distributed operating systems Network and Computer Security
Operating System z A program that controls the execution of application programs z An interface between the user and hardware z Masks the details of the hardware
What is an operating system? z Hard to define precisely because operating systems arose historically as people needed to solve problems associated with using computers. z In the beginning: Expensive Hardware, Cheap People Goal: maximize hardware, utilization. z Now: Cheap Hardware, Expensive People Goal: make it easy for people to use computer
Layers and Views of a Computer System End User Programmer Application Programs Utilities Operating-System Computer Hardware Operating. System Designer
Problem: code to manipulate external I/O devices Solution: z Build a subroutine library (device drivers) to manage the interaction with the I/O devices. z The library is loaded into the top of memory and stays there. z This is the first example of something that would grow into an operating system. z Because the machine is so expensive, it is important to keep it busy.
Services Provided by the Operating System z Program creation y editors and debuggers z z Program execution Access to I/O devices Controlled access to files System access
Services Provided by the Operating System z Error detection and response y internal and external hardware errors x memory error x device failure y software errors x arithmetic overflow x access forbidden memory locations y operating system cannot grant request of application
Services Provided by the Operating System z Accounting y collect statistics y monitor performance y used for billing users
Operating System z It is actually a program z Directs the processor in the use of system resources z Directs the processor when executing other programs z Processor stops executing the operating system in order to execute other programs
Operating System as a Resource Manager Computer System Memory I/O Controller Operating System Software I/O Controller . . . Programs and Data I/O Controller Processor . . . Processor O/S Programs Data
Problem: computer idles while programmer sets things up Solution: z Build a batch monitor. z Store jobs on a disk (spooling), have computer read them in one at a time and execute them. z Big change in computer usage: y debugging now done offline from print outs and memory dumps. y No more instant feedback.
Monitors z Software that controls the running programs z Batch operating system z Jobs are batched together z Resident monitor is in main memory and available for execution z Monitor utilities are loaded when needed
Memory Layout For a Resident Monitor Interrupt Processing Device Drivers Job Sequencing Control Language Interpreter User Program Area Monitor Boundary
Problem: At any given time, job is actively using either the CPU or an I/O device, and the rest of the machine is idle and therefore unutilized Solution: z Allow the job to overlap computation and I/O. Buffering and interrupt handling added to subroutine library.
Hardware Features z Memory protection y do not allow the memory area containing the monitor to be altered z Timer y prevents a job from monopolizing the system y an interrupt occurs when time expires
Hardware Features z Privileged instructions y executed only by the monitor y an interrupt occurs if a program tries these instructions z Interrupts y provides flexibility for controlling user programs
Problem: one job can't keep both CPU and I/O devices busy. Get poor utilization either of CPU or I/O devices. Solution: z multiprogramming - several jobs share system. Dynamically switch from one job to another when the running job does I/O.
Multiprogramming or Multitasking Allows the processor to execute another program while one program must wait for an I/O device. Run Wait Time Run A Run B Time Wait Run A Run B Wait
Example JOB 1 JOB 2 JOB 3 Type of job Heavy compute Heavy I/O Duration 5 min. 10 min. Memory required 50 K 100 K 80 K Need disk? No No Yes Need terminal No Yes No Need printer? No No Yes
Effects of Multiprogramming Uniprogramming Multiprogramming Processor use 17% 33% Memory use 30% 67% Disk use 33% 67% Printer use 33% 67% Throughput rate 6 jobs/hr 12 jobs/hr Mean response time 18 min. 10 min.
Big issue: protection z Don't want one job to affect the results of another. z Memory protection and relocation added to hardware, OS must manage new hardware functionality. z OS starts to become a significant software system. z OS also starts to take up significant resources on its own.
Phase shift: Computers become much cheaper. People costs become significant. z Issue: It becomes important to make computers easier to use and to improve the productivity of the people.
Problem: having to wait for batch output. So, it is important to run interactively. But computers are still so expensive that you can't buy one for every person. Solution: z interactive timesharing.
Time Sharing z Using multiprogramming to handle multiple interactive jobs z Processor’s time is shared among multiple users z Multiple users simultaneously access the system through terminals
Problem: Old batch schedulers were designed to run a job for as long as it was utilizing the CPU effectively. But now, people need reasonable response time from the computer. Solution: z Preemptive scheduling.
Scheduling and Resource Management z Fairness y give equal and fair access to all processes z Differential responsiveness y discriminate between different classes of jobs z Efficiency y maximize throughput, minimize response time, and accommodate as many uses as possible
Phase shift: Computers become even cheaper. It becomes practical to give one computer to each user. Issue: z OS resource consumption becomes a big issue
Problem: People need to share data and information with other people Solution: z Networking, distributed operating systems and modern operating systems
Problem: Networking becomes very important, and as sharing becomes an important part of the experience z Issue: z Network security z Computer security
The major problem facing computer science today is how to build large, reliable software systems. z Operating systems are one of very few examples of existing large software systems. z By studying operating systems, we may learn lessons applicable to the construction of larger systems.