Download presentation
Presentation is loading. Please wait.
Published byElla Morris Modified over 9 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.