* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Course Introduction
Plan 9 from Bell Labs wikipedia , lookup
Process management (computing) wikipedia , lookup
Copland (operating system) wikipedia , lookup
Mobile operating system wikipedia , lookup
Spring (operating system) wikipedia , lookup
Burroughs MCP wikipedia , lookup
Security-focused operating system wikipedia , lookup
Distributed operating system wikipedia , lookup
CS431 Introduction to Operating Systems Modern Operating Systems By Andrew Tanenbaum The Linux Programming Interface By Kerrisk CS431 Introduction to Operating Systems Course Objectives • To study and apply concepts relating to operating systems, such as concurrency and control of asynchronous processes, deadlocks, memory management, processor and disk scheduling, parallel processing, and file system organization CS431 - cotter 2 Course Outcomes • Demonstrate an understanding of: – the differences between processes and threads. – the different process or thread synchronization methods and the tradeoffs between them. – the different memory management techniques used in Operating Systems. – the different I/O management techniques used in Operating Systems. – the tradeoffs in design and implementation concepts used in the development of Operating Systems CS431 - cotter 3 Course Syllabus Course Meeting Time Tuesday and Thursday 2:00 to 3:15 pm Location Bloch 014 Instructor: Bob Cotter e-mail [email protected] Web page: http://sce.umkc.edu/~cotterr Office Hours: Tuesday and Thursday 4:00 to 5:00 pm Location FH450P or by appointment Prerequisites: CS291, CS352 cs431-cotter 4 Course Syllabus Text Book Modern Operating Systems – 3rd Edition Andrew Tanenbaum, Prentice Hall, 2008 The Linux Programming Interface A Linux and UNIX System Programming Handbook Kerrisk - No Starch Press, 2010 Running Linux – 5th Edition Dalheimer & Welsh, O’Reilly Published 2006 cs431-cotter 5 Course Syllabus Grade Scale: Grading Policy: Homework 35% Midterm #1 20% Midterm #2 20% Final Exam 25% CS431 - cotter 100 - 93 A 93 – 90 89 – 87 86 - 83 82 – 80 79 – 77 76 - 73 72 – 70 69 – 67 66 - 63 62 – 60 AB+ B BC+ C CD+ D D- 59 - 0 F 6 Course Schedule (tentative) Introduction - Ch 1 – 1 week Linux Intro – Ch 10 – 1 week Processes - Ch 2 – 1 week Scheduling - Ch 2, 10 – 1 week Process Sync - Ch 2, 10 – 1-2 weeks Deadlocks - Ch 6 – 1 week Memory Mgmt - Ch 3 – 1 week CS431 - cotter Virtual Memory - Ch 3 – ½ week File System – Ch 4 – 1 week I/O Systems - Ch 5 – 1 week Multi-Processor Sys – Ch 8 – 1 week Security - Ch 9 – 1 week Linux Review – Ch 10 – 1 week Exams (2) – 1 week 7 What is an Operating System? • A program that acts as an intermediary between a user of a computer and the computer hardware • Goals: – Execute programs – Make the Computer System Convenient • Use the system efficiently CS431 - cotter 8 What Is An Operating System A modern computer consists of: • • • • • One or more processors Main memory Disks Printers Various input/output devices Managing all these components requires a layer of software – the operating system CS431 - cotter Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 9 Abstract View of System Components User 1 task 1 User 2 User 3 task 2 task 3 System and Applications Programs User n task n Operating System Computer Hardware CS431 - cotter 10 Definitions of Operating System • Resource Manager – Allow multiple programs to run – Manage and protect memory, I/O, etc. • Control Program • Kernel CS431 - cotter 11 History of Operating Systems Generations: • • • • (1945–55) Vacuum Tubes (1955–65) Transistors and Batch Systems (1965–1980) ICs and Multiprogramming (1980–Present) Personal Computers CS431 - cotter Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 12 Simple Batch Systems • • • • First form of “shared” computing Few, large machines Specialized operator Secure CS431 - cotter 13 Batch System Process • • • • User != operator Programs submitted on cards Similar jobs “batched” Automatic job sequencing CS431 - cotter 14 Batch Job Sequence Requirements (Problem - no overlap in I/O & CPU) CS431 - cotter 15 Off-Line Operation • Advantages: CPU not bound by card reader • Could use multiple card readers, line printers Card Reader Satellite processor Printer Main Computer CS431 - cotter 16 Spooling • • • • Use disk to store input and output Simultaneous Peripheral Operation on-line Significantly improves efficiency Creates a job pool (I/O vs CPU) CS431 - cotter 17 Spooling • Introduces Job Scheduling • Objective is to further improve efficiency Reader CS431 - cotter CPU Printer 18 Multiprogramming Batched Systems Operating System Job 1 Job 2 Job 3 Job 4 CS431 - cotter 19 Multiprogramming Requirements • • • • I/O routine managed by system Memory Management CPU Scheduling Allocation of peripheral devices CS431 - cotter 20 Time-sharing Systems • Next logical extension • User jobs managed by Job Scheduler • User connected as a system peripheral device • User gets access to file system for data and code CS431 - cotter 21 Personal Computer Systems • • • • • Extends processing to the user Dedicated computer systems Complete set of I/O devices Improves convenience & responsiveness Security??? CS431 - cotter 22 PC Components CS431 - cotter 23 Parallel Systems • Multi-processor systems • CPUs share resources • Increases throughput (more CPU power vs. I/O) • Improves Reliability… • Symmetric vs. Asymmetric multiprocessing CS431 - cotter 24 Distributed Systems • Communication between multiple processors • Processors are loosely coupled • Advantages – Resource Sharing – Computation Speedup (load sharing) – Reliability – Communication CS431 - cotter 25 Real-Time Systems • • • • • Used to manage dedicated applications Process Controls Telecommunications Operating constraints well defined & fixed Hard vs. Soft real-time systems CS431 - cotter 26 The Operating System Zoo • • • • • • • • • Mainframe operating systems Server operating systems Multiprocessor operating systems Personal computer operating systems Handheld operating systems Embedded operating systems Sensor node operating systems Real-time operating systems Smart card operating systems CS431 - cotter 27 Summary • Operating Systems evolved to: – Make computers easier to use – Improve the utilization of computing resources • Design and function of OS has evolved as the cost of resources goes down • OS is generally the most complex “program” running in a computing system. CS431 - cotter 28 Questions • What is spooling? What problem was it designed to address? • What are examples of computing systems that don’t need all of the components shown on slide 23? What are other common major elements that aren’t shown on this slide? • What is the major difference between a hard real-time system and a soft real-time system? What is an example of each? cs431-cotter 29