Welcome to MPCS52030
360 likes | 379 Vues
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.
Welcome to MPCS52030
E N D
Presentation Transcript
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 …?