1 / 36

Welcome to MPCS52030

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.

darrylb
Download Presentation

Welcome to MPCS52030

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Welcome to MPCS52030 April 3rd, 2019 Shan Lu http://people.cs.uchicago.edu/~shanlu/teaching/52030_sp19/html/

  2. 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)

  3. Who am I • Shan Lu • Ry 257-A, shanlu@uc....edu • East China  Illinois  WisconsinChicago • Research • Software reliability & efficiency; parallel & distributed systems • Teaching • I enjoy discussion • We will use chalk board instead of slides

  4. TA • Yuxi Chen (chenyuxi@uc...) • Office hours • ??? @ CSIL-?? • Kelvin Ho (kelvinho@uc …) • Office hours • ??? @ CSIL-?

  5. Schedule Questions • Office hours • Make-up lectures • April 24th (maybe) • May 15th • May 29th (maybe)

  6. CS 52030 talks about … • How operating systems work • How computer systems work • How to build a big software • C programming

  7. Work to do • Lectures • 3 programming projects (in C not Java) 40% • No late submission • Weekly Quiz 30% • Final exam 30%

  8. 1: Textbook for lectures • On-line book by Prof. Arpaci-Dusseaus • C

  9. 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

  10. 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

  11. What you need to do 4: Final Exam • 30% of your total grade • During the exam week • Cover material from class and the projects

  12. Resources • Linux machines @ CSIL 3 & 4 • TA office hours • Piazza!!

  13. 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

  14. What are operating systems? Software OS hardware CPU devices memory

  15. 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

  16. 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

  17. Memory virtualization • Memory: addressdata • 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, …

  18. 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

  19. 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

  20. A brief history of OSes

  21. 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)

  22. 1950’s: Batching • A deck of card/paper-tape at a time Q: what does OS do?

  23. 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

  24. UNIVAC

  25. 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

  26. 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

  27. 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

  28. 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

  29. 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

  30. Project 1 http://people.cs.uchicago.edu/~shanlu/teaching/52030_sp19/html/projects/p1.html

  31. Things to pay attention to • pointers • Array vs. pointer • man • gdb • gcc • valgrind

  32. Backup

  33. 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?)

  34. 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

  35. 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 …?

More Related