Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS 153 Design of Operating Systems Spring 2015 Lecture 1: Course Introduction Instructor: Zhiyun Qian Slides modified from Harsha Madhyvasta and Nael Abu-Ghazaleh.

Similar presentations


Presentation on theme: "CS 153 Design of Operating Systems Spring 2015 Lecture 1: Course Introduction Instructor: Zhiyun Qian Slides modified from Harsha Madhyvasta and Nael Abu-Ghazaleh."— Presentation transcript:

1 CS 153 Design of Operating Systems Spring 2015 Lecture 1: Course Introduction Instructor: Zhiyun Qian Slides modified from Harsha Madhyvasta and Nael Abu-Ghazaleh

2 2 Class Overview l Monitor class webpage for information u http://www.cs.ucr.edu/~zhiyunq/cs153/ http://www.cs.ucr.edu/~zhiyunq/cs153/ u Will send out link to webpage l Lecture slides, homeworks, and projects will be posted on class webpage l Assignment turn-in through iLearn u Digital only, no paper copy (experiment) l Announcements through iLearn and posted on class webpage l Piazza for discussion forums; emails to be sent out soon

3 3 Textbooks l Anderson and Dahlin, Operating Systems: Principles and Practice (required) l Andrew S. Tanenbaum, Modern Operating Systems (recommended) l Silberschatz, Galvin, and Gagne, Operating System Concepts, John Wiley and Sons, 8th Edition (recommended)

4 4 Class Overview l Grading breakdown u 3 projects (15% each) u 3 homeworks (5% each) u Mid-term (15%) u Final (25%) u Extra credit (4%) l Collaboration policy u Feel free to discuss with other students in class u But, every student should write solutions to homeworks independently and every project group should write code independently

5 5 Projects l Project framework this time: Pintos u Projects are in C u Very good debugging support u Test cases come with the default code base u Used in OS class at several other universities l You have first two weeks of the quarter to get familiar u Make sure to attend the first lab u Go over the Pintos documentation (on the course web page)

6 Projects are HARD! l Probably the hardest class you will take at UCR in terms of development effort l Working on the projects will take most of your time in this class l Biggest reason the projects are hard: legacy code u You have to understand existing code before you can add more code u Preparation for main challenge you will face at any real job 6

7 Project recommendations l Do not start working on projects at last minute! u You are graded for how well your code works, not for how many hours you have put in or how many lines of code you wrote u Debugging is integral process of development l Make good use of help available u Post questions on piazza u Take advantage of TA office hours u Labs 7

8 Project logistics l Three projects to be done in groups of two u When you have chosen groups, send your group info to the TA for your lab »Joshua Frear u Send email if unable to find partner and we’ll form groups u Option to switch partners after project one l For every project, design document due a week before the project is due (5 points out of 15 points for project) u Walkthrough questions u Incentive to think through early what you need to do 8

9 9 Homeworks and Exams l Three homeworks u Can expect similar questions in the exams l Midterm (early May.) u In class l Final u Covers second half of class + selected material from first part »I will be explicit about the material covered l No makeup exams u Unless dire circumstances

10 10

11 Submission Policies l Homeworks due on ilearn before class on day of submission l Code and design documents for projects due before class on day of submission l Late policy (also on course webpage): u 4 slack days across all three projects »Will use the ilearn submission timestamp to determine the days u 10% penalty for every late day beyond that 11

12 Recipe for success in CS153 l Start early on projects l Attend labs and office hours u Take advantage of available help l Make sure to attend lectures u Going over slides is not the same l Read textbook material before class l Ask questions when something is unclear u 4% participation and extra credit – may bump up your grade if on borderline. Face recognition 12

13 13 Objectives of this class l In this course, we will study problems and solutions that go into design of an OS to address these issues u Focus on concepts rather than particular OS u Specific OS for examples l Develop an understanding of how OS and hardware impacts application performance and reliability l Examples: u What causes your code to crash when you access NULL? u What happens behind a printf()? u Why can multi-threaded code be slower than single-threaded code?

14 Questions for today l Why do we need operating systems course? l Why do we need operating systems? l What does an operating system need to do? 14

15 15 Why an OS class? l Why are we making you sit here today, having to suffer through a course in operating systems? u After all, most of you will not become OS developers l Understand what you use u Understanding how an OS works helps you develop apps u System functionality, debugging, performance, security, etc. l Pervasive abstractions u Concurrency: Threads and synchronization are common modern programming abstractions (Java,.NET, etc.) l Complex software systems u Many of you will go on to work on large software projects u OSes serve as examples of an evolution of complex systems

16 Questions for today l Why do we need operating systems course? l Why do we need operating systems? l What does an operating system need to do? 16

17 l What if applications ran directly on hardware? l Problems: u Portability u Resource sharing Why have an OS? 17 Applications Hardware

18 l The operating system is the software layer between user applications and the hardware l The OS is “all the code that you didn’t have to write” to implement your application 18 What is an OS? Operating System Hardware Applications

19 Questions for today l Why do we need operating systems course? l Why do we need operating systems? l What does an operating system need to do? 19

20 Roles an OS plays 20

21 21 More technically : OS and Hardware l The OS virtualizes/controls/mediates access to hardware resources u Computation (CPUs) u Volatile storage (memory) and persistent storage (disk, etc.) u Communication (network, modem, etc.) u Input/output devices (keyboard, display, printer, camera, etc.) l The OS defines a set of logical resources (objects) and a set of well-defined operations on those objects (interfaces) u Physical resources (CPU and memory) u Logical resources (files, programs, names) u Sounds like OO…

22 22 The OS and Applications l The OS defines a logical, well-defined environment… u Virtual machine (each program thinks it owns the computer) l …for users and programs to safely coexist, cooperate, share resources l Benefits to applications u Simpler (no tweaking device registers) u Device independent (all network cards look the same) u Portable (across Windows95/98/ME/NT/2000/XP/Vista/…)

23 23 Fundamental OS Issues l The fundamental issues/questions in this course are: u Structure: how is an operating system organized? u Sharing: how are resources shared among users? u Naming: how are resources named (by users and programs)? u Protection: how are users/programs protected from each other? u Security: how can information access/flow be restricted? u Communication: how to exchange data? u Reliability and fault tolerance: how to mask failures? u Extensibility: how to add new features?

24 Other Questions to Ponder l What is part of an OS? What is not? u Is the windowing system part of an OS? Java? l Popular OSes today are Windows, Linux, and OS X u How different/similar do you think these OSes are? l Somewhat surprisingly, OSes change all of the time u Consider the series of releases of Windows, Linux, OS X… u What are the drivers of OS change? u What are the most compelling issues facing OSes today? 24

25 Pondering Cont’d l How many lines of code in an OS? u Vista (2006): 50M (XP + 10M) »What is largest kernel component? u OS X (2006): 86M u Debian 3.1 (2006): 213M l What does this mean (for you)? u OSes are useful for learning about software complexity u OS kernel is only one component, however »Linux 3.6: 15M »KDE (X11): 4M »Browser : 2M+ u OS is just one example of many complex software systems »If you become a developer, you will face complexity 25

26 26 How Not To Pass CS 153 l Do not come to lecture u It’s nice out, the slides are online, and the material is in the book anyway u Lecture material is the basis for exams and directly relates to the projects l Do not ask questions in lecture, office hours, or email u It’s scary, I don’t want to embarrass myself u Asking questions is the best way to clarify lecture material at the time it is being presented u Office hours and email will help with projects

27 27 How Not To Pass (2) l Wait until the last couple of days to start a project u We’ll have to do the crunch anyways, why do it early? u The projects cannot be done in the last few days u Repeat: The projects cannot be done in the last few days u Each quarter groups learn that starting early meant finishing all of the projects on time…and some do not

28 28 Wrap-up Preliminaries l Surefire steps to do poorly in CS 153 u DON’T come to lecture u DON’T ask questions in class when unclear u DON’T start projects well in advance u DON’T come to office hours l Any questions about the class structure, contents, etc.?

29 For next class… l Browse the course web (especially Pintos docs) http://www.cs.ucr.edu/~zhiyunq/cs153 l Read chapters 1 and 2 in textbook l Start … u … tinkering with Pintos u … finding a partner for project group 29

30 30 Blank


Download ppt "CS 153 Design of Operating Systems Spring 2015 Lecture 1: Course Introduction Instructor: Zhiyun Qian Slides modified from Harsha Madhyvasta and Nael Abu-Ghazaleh."

Similar presentations


Ads by Google