360 likes | 370 Views
Get an overview of MPCS52030 and the history of operating systems. Learn about the projects and assessments, and explore topics like CPU, memory, and device virtualization.
E N D
Welcome to MPCS52030 April 3rd, 2019 Shan Lu http://people.cs.uchicago.edu/~shanlu/teaching/52030_sp19/html/
Outline • An overview of MPCS52030 • Who I am • What this class is about • Some administrative stuff • What is an operating system? • History of OS • Project 1 (due 3 weeks from now)
Who am I • Shan Lu • Ry 257-A, shanlu@uc....edu • East China Illinois WisconsinChicago • Research • Software reliability & efficiency; parallel & distributed systems • Teaching • I enjoy discussion • We will use chalk board instead of slides
TA • Yuxi Chen (chenyuxi@uc...) • Office hours • ??? @ CSIL-?? • Kelvin Ho (kelvinho@uc …) • Office hours • ??? @ CSIL-?
Schedule Questions • Office hours • Make-up lectures • April 24th (maybe) • May 15th • May 29th (maybe)
CS 52030 talks about … • How operating systems work • How computer systems work • How to build a big software • C programming
Work to do • Lectures • 3 programming projects (in C not Java) 40% • No late submission • Weekly Quiz 30% • Final exam 30%
1: Textbook for lectures • On-line book by Prof. Arpaci-Dusseaus • C
What you need to do 2: Quizzes • 15~30 minutes • In the middle of every lecture • Start from next week (April 10th) • Close-book, close-note • Cover lectures and project content • 30% of your total grade
What you need to do 3: Projects • Course projects • 3 projects • Done in 2-people groups • You have to use C, not Java • You will hand in your source code and Makefile • Grading is based on our test cases • Test cases available a couple of days before deadline • No late submission • 40% of your final grade
What you need to do 4: Final Exam • 30% of your total grade • During the exam week • Cover material from class and the projects
Resources • Linux machines @ CSIL 3 & 4 • TA office hours • Piazza!!
Outline • An overview of CS537 • Who I am • What this class is about • Some administrative stuff • What is an operating system? • History of OS • Project 1
What are operating systems? Software OS hardware CPU devices memory
What are operating systems? • ``Code” that • Sits between hardware and software • Sits between different users • Sits between different programs virtual resource Software OS Protection Management Easy-to-use virtualization hardware CPU devices physical resource memory
CPU virtualization • CPU: execute one instruction at a time* • CPU virtualization • Each program has one virtual CPU • Advantage: run multiple programs at the same time • OS module: CPU scheduling • APIs
Memory virtualization • Memory: addressdata • Memory virtualization • Each program has its own private memory ( address space) • Advantage: protection and portability • OS module: memory management (& protection) • APIs • mmap, mprotect, mlock, munlock, brk, …
Device virtualization • I/O devices: disks, mice • Disk virtualization • Access through file systems • Easy to program and manage; more reliable, … • OS modules: file systems, device drivers, … • APIs • open, close, read, write
A brief overview of our schedule • 1.5 weeks CPU virtualization • 2.5 weeks Memory virtualization • 2 week Thread and synchronization • 3 weeks I/O, Disk, file systems • 1 week Virtual machines Performance, Protection, Reliability, Extensibility
1940’s—1950’s (no OS) • 1st period (1940’s—1950’s) • Machine is very expensive • Most things are manual • Software • No high-level PL initially • Library, compiler, later on • No OS • Long software setup time • Problems • Inefficient use of hardware (bad throughput and utilization)
1950’s: Batching • A deck of card/paper-tape at a time Q: what does OS do?
1950’s: Batching • A deck of card/paper-tape at a time Q: what does OS do? • OS is a loader • Handles interrupt, no scheduling • Problems • User must wait until batch is done for results • Machine idle when job is reading from cards and writing to printers
1960’s—1970’sMultiprogrammed Batch Systems • When a job waits for disk I/O, switches to another job • OS Functionality • Job scheduling policies • Memory management and protection • Virtual memory • THE [1968] 5-job at a time, s/w VM • DOS/360 [1966 IBM] 3-job at a time, no VM • Hardware support: asynchronous I/O devices • Problems: • Machine not interactive
Time-sharing systems • Jobs are quickly switched to give appearance of dedicated machines • Improve user’s response time • OS Functionality • More complex job scheduling, concurrency control and synchronization • CTSS [1962], Multics [1965~], Unix [1969] • 1960s Hardware • Expensive mainframes, but inexpensive keyboards and monitors • Enables text editors and interactive debuggers • Advantage • Users easily submit jobs and get immediate feedback
1980’sInexpensive Personal Computers • 1980s Hardware • Entire machine is inexpensive • One dedicated machine per user • OS Functionality • Single user, single address-space • Remove time-sharing of jobs, protection, and virtual memory • PC-DOS, MS-DOS • Advantages • Simplicity • Disadvantages • No time-sharing or protection between jobs
Inexpensive, Powerful Computers • 1990s+ Hardware • PCs with increasing computation and storage • Users connected to the web • Goal of OS • Allow single user to run several applications simultaneously • Provide security from malicious attacks • Efficiently support web servers • OS Functionality • Add back time-sharing, protection, and virtual memory
Current OS research • OS changes due to both hardware and users • Current hardware trends • Multiprocessors • Networked systems • Virtual machines • Mobile devices • Complexity 1993 Windows NT 3.1 6M 1994 Windows NT 3.5 10M 1996 Windows NT 4.0 16M 2000 Windows 2000 29M 2002 Windows XP 40M 2007 Windows Vista ~50M • Reliability & Security
Project 1 http://people.cs.uchicago.edu/~shanlu/teaching/52030_sp19/html/projects/p1.html
Things to pay attention to • pointers • Array vs. pointer • man • gdb • gcc • valgrind
Spooling • Hardware • Mechanical I/O devices much slower than CPU • Read 17 cards/sec vs. execute 1000s instructions/sec • Goal • Improve performance by overlapping I/O with CPU execution • Spooling: Simultaneous Peripheral Operations On-Line • Read card punches to disk • Compute (while reading and writing to disk) • Write output from disk to printer • OS Functionality • Buffering and interrupt handling • Problem • Machine idle when job waits for I/O to/from disk (why?)
1950’s Batching • 2nd period (1950’s) • Batching system • A deck of card/paper-tape at a time Q: what does OS do? • OS is a loader • Handles interrupt, no scheduling • Magnetic tape (replaces paper tape) • Use separate machine to turn paper-tape to magnetic tape • Problems • User must wait until batch is done for results • Machine idle when job is reading from cards and writing to printers
1940’s—1950’s • 1st period (1940’s—1950’s) • Machine is very expensive • Most things are manual • Software • No high-level language Q: no OS. Why …?