CS372: Introduction to Operating Systems

CS372: Introduction to Operating Systems
Fall 2000

Admin Info | Reading | Grading | Schedule | Sermons | Project

The crosscutting theme in this course is providing abstractions above imperfect hardware to make it usable by programmers and users. At the end of the course, students should understand a set of abstractions (concurrent programming, virtual addressing, memory protection, caching, transactions, ...) that are useful in many large-scale software systems not just OS kernels. More important than memorizing specific abstractions used in operating systems of the past, students should understand these abstractions well enough to synthesize their own abstractions when faced with new problems.

Another important goal of the course is for students to understand the computers they use and on which they build their applications. A student graduating with a CS degree should believe "there is no magic": they should be able to describe the chain of events that occurs when they hit a key and cause a letter to appear on the screen from the register level (or logical gate level or transistor level) to the system architecture level to the operating system level to the application level. This is philosophically important, but it is also of practical interest to developers who need to figure out how to make a system do what they want it to do.



Announcements:
 

Old Announcements


Administrative Information

Instructors: Mike Dahlin (dahlin@cs.utexas.edu)
471-9549
Lorenzo Alvisi (lorenzo@cs.utexas.edu)
471-9792
Office Hr/#: TTh 4:00 - 5:00 PM, ACES 6.248 TTh 4:00 - 5:00 PM, ACES 6.244
Class Info: 51293   TTh 5:00 - 6:30, TAY 2.106 51287   TTh 2:00 - 3:30, TAY 2.106
TAs: Fengteng Tu (ftu@cs.utexas.edu)
Office TBA
Stefano Masiui (stefano@cs.utexas.edu)
Office hrs: Wed, Fri 10:00-11:00AM
Location: PAI 5.40B   Phone: 232-7872
Newsgroup: utexas.class.cs372
Home page: http://www.cs.utexas.edu/users/dahlin/Classes/UGOS/index.html
This handout and all other information for the course will be available at this address.
College of Natural Sciences policies


Readings


Admin Info | Reading | Grading | Schedule | Sermons | Project

Grading and Course Mechanics

It is important for you to realize what grades in this class reflect and what they don't reflect. All we can grade you on is how well you demonstrate that you know the material this semester. We can't grade you on how much of a success you'll be after graduation, how smart/creative/persistent/self-motivated you are, or even how well you'll be able to apply the material in the future. And after all, it is what you do in the future, not what you do this semester, that's really important.

That said, grades will be determined as follows:

The course will be graded on a curve, with the score-to-letter-grade mapping determined by the instructor based on factors such as the difficulty of an assignment and the types of errors people are making, etc. During the semester, I will give rough estimates of where grade cut-offs lie, but these will be deliberately somewhat vague; if knowing where a cut-off is within a few points will affect how you study, you're worrying too much about grades and not enough about the material (Plus, it's a really bad idea to guage your effort by what you think you need to make to get a particular letter grade). I want everyone in the class to do well, and if everyone masters the material and gets good marks, I will happily abandon the curve and give "extra" A's and B's. In particular, I guarantee that anyone who gets a grade of 90% or more of the total points will get an A, anyone with 80% or more will get at least a B, and anyone with 70% or more of the points will get at least a C.

I grade on a curve rather than an absolute scale because it protects students from stressing out if I happen to give an overly hard midterm or final. The downside of grading on a curve is that it tends to lead students to think they are competing against each other. In practice, this is mistaken in a class this large. The largest impact any individual student's performance is likely to have on your grade is less than 0.1% -- in other words, well into the noise.

Also, for this type of project students often stress about whether they will be penalized because their project may not be as elaborate as that of some of the other groups in the class. Again, this is a myth. The project is hard enough without looking over your shoulder at other students. By and large, most students do quite well on the project -- the consequence is that the project has less effect than you might think on the curve. A warning, however: if you punt the project, you will fail the course.

In some courses, the TAs and instructor have to spend a lot of time dealing with regrading appeals, time that would be better spent helping students learn the material. Absolutely come to us if we make an arithmetic error, but realize that a few points here and there are extremely unlikely to make any difference in your final grade. If you believe that we assigned too little credit for your work, you may submit your work for a regrade under the following restrictions. (1) All regrade requests must be submitted with a clear, written statement that explains why you believe the original grade was incorrect. (2) All requests for regrades must be submitted within 1 calendar week of when the graded work is returned. (3) We will regrade the entire exam, problem set, or project assignment, and if we were overly generous we will deduct points. Thus, you grade can go up or down on a regrade.

Late policy. No extensions will be given for completing the homeworks or the programming projects, except that students will be allowed 4 flexible slip days for the projects and one slip day for homeworks during the semester. A student may divide his or her slip days across projects in any way he or she wishes to extend deadlines for the projects (or a homework.) To help the TA track your slip-day status, the top of your project README file (or your homework) should include the line:

Slip days will be tracked at the granularity of a day; if an assignment is 1 minute late, it is one day late. If two project partners have different numbers of slip days remaining on their accounts, the slip days account for the team is the min of the partners' slip day balances. Only one day of slip can be used for homeworks, which means that once you use it on a homework, you will have to abide by the deadlines of future homeworks. Project slip days may not be used for homeworks and vice versa. Exemptions of the above rules will be allowed in two cases:
  • 1.Illness, which has to be documented by a doctor and approved by the university.
  • 2.Death in the immediate family.

  • No extensions will be given for any other reason, including participation in the Annual Elbonian Cultural Festival, death of a former president, or a potluck lunch for the local chapter of a political party (yes, we have received such requests in the past).

    Cooperation and cheating. We encourage you to discuss the problem sets and programming assignments with your colleagues. We welcome discussions of possible interpretations of questions, solution approaches, and relevant technical details. You are also welcome to use existing public libraries in your programming assignments (such as public classes for queues, trees, etc.) You may also look at operating systems code for public domain software such as Linux. Such activities qualify under approved collaboration practices and you are welcome to take advantage of them.

    Note that cooperation is not the same thing as cheating. It is OK to ask someone about the concepts needed to do homework or project assignments. However, copying other people's code or solution sets is strictly prohibited. The homework, project assignments, and exams must be the work of students turning them in. Students who violate University rules on scholastic dishonesty are subject to disciplinary penalties, including the possibility of failure in the course and/or dismissal from the University. Because such dishonesty harms the individual, all students, and the integrity of the University, policies on scholastic dishonesty will be strictly enforced.

    A simple proceedure to keep yourself on the right side of the line is that after a student (or the TA!) helps you with an assignment, go watch Gilligan's Island for a half hour, then go back to working on the assignment. If you can't remember what the person said after a half hour, you didn't really understand it.

    Acts that exceed the bounds defined by the approved collaboration practices will be considered cheating. Such acts include:

    We urge everyone in the class to take appropriate measures for protecting one's work. You should protect your files, homework solution sheets, etc. as deemed reasonable.

    Midterms. There will be two midterms given jointly across Alvisi's, Dahlin's, and Elnozahy's sections at the dates and times listed below. If you have a conflict with either midterm, let the instructor know during the first week of class and we will schedule a makeup for a time before the exam is given to the rest of the class. Both exams will be closed book and will cover material from lecture, readings, homeworks, and the project. In particular, you are likely to do poorly on the exams and in the course if you sleaze out of the project by making your project partner do all the work.

    Project. Perhaps the most valuable part of this class will be the programming assignments. You will construct a simulator of a portion of an OS, practice good concurrent programming techniques, and construct two major pieces of an OS. The first two projects will be done individually; the others will be done in groups of two. Forming the partnership is your responsibility. We prefer not to be involved in match making, although we will try to help the handful of you who cannot find a partner. Problems that arise during the partnership are also your responsibility, but we will try to mediate in grave situations. You may elect to work by yourself, but we strongly recommend against doing so because of the amount of work involved. You will not get an extension because you have elected to work by yourself.

    We will use flexible slip dates for the project. Further details about the project will be covered in later handouts.

    Problem sets. We will assign three written problem sets. The problem sets are designed to focus on the types of questions students typically have difficulty with on exams. The idea is to give you the opportunity to think more deeply about the concepts presented in the course. Unlike the project, the problem sets are to be done individually. The due dates for the problem sets will be announced during the semester. Problem sets may not be turned in late. Problem sets must be type set. Handwritten problem sets will not be graded.

    Self-quiz. We will regularly post self-quizzes for you to test your knowledge of the material. The solutions will also be posed. The intent is for you to use these as self exams to assess your understanding of the course material and evaluate your performance, all without affecting your grade. Of course, the lack of an actual grade or a deadline for taking these quizzes may be an invitation for procrastination or even ignoring this process altogether. But we trust that you will find this a very useful aspect of the class and we strongly urge you to take advantage of it. To make effective use of this feature, you will find it best if you would take the quiz as soon as it is posted on the web so that you know where you stand. Delaying the quizzes with the intent of accumulating them and solving them at once before the exams is not an effective strategy.


    Admin Info | Reading | Grading | Schedule | Sermons | Project

    (Approximate) Schedule

    Please note: all dates are approximate and subject to change as the semester progresses.
     
    Wk# Date  Topic Reading Lecture Due 
    1 Aug 31 Introduction
    OS Structure
    Text 1-3  1. Intro and History pdf
    2 Sep 5

    Sep 7

    Concurrency:
    CPU Scheduling

    Threads: Creating and
    Dispatching

    Text 4-5;
    21.1, 21.4,
    22.2, 22.3,
    22.5, 23.2
    2. What's OS, OS Architectures, Hardware support Slides, (ppt), Mike's notes

    3. CPU Scheduling Slides, (ppt), Mike's notes

    Quiz1 soln
    3 Sep 12

    Sep 14

    4. Process Management
        Slides, (ppt), Mike's notes,

    5. Independent v.
        cooperating threads
        Slides, (ppt), Mike's notes

    Quiz2 soln

    Proj1 (Sep 15)

    4 Sep 19

    Sep 21

    Synchronization:
    Semaphores, monitors,
    and send/receive
    Text 6  6. Threads and Multithreading Slides, (ppt), Mike's notes,

    7. Hardware
        Synchronization Slides, (ppt), Mike's notes

    Quiz3 soln
    5 Sep 26

    Sep 28

    Programming with threads: style guidelines 8. Semaphores Mike's notes,

    9. Monitors Slides, (ppt), Mike's notes ,

    HW1(Sep 25)

    Quiz4 soln

    6 Oct 3

    Oct 5

    Deadlock Text 7
    The case
    against threads
    10. Synchronization
          Wrap Up Slides, (ppt), Mike's notes,

    11. Deadlock Slides, (ppt), Mike's notes,

    Quiz5 soln

    7 Oct 10

    Oct 12

    Memory management Text 8 12. Protection Slides, (ppt), Mike's notes,

    13. Dynamic Partitions/Paging
          Slides, (ppt), Mike's Notes,

    Proj2 (Oct 9)

    Quiz6 soln

    HW2(Oct 13)

    8 Oct 16

    Oct 17
    Oct 19

    Midterm 14. Caching and TLBs
          Slides (1), Slides (2), (ppt), Mike's notes,
    Midterm 10/16
    7-10 PM
    WCH 1.120

    9 Oct 24

    Oct 26

    Text 9 15. Replacement, thrashing
          and VM ps, pdf

    16. VM, thrashing and
          replacement policies
          ps, pdf

    Quiz7
    10 Oct 31

    Nov 2

    File Systems Text 11-12 17. Replacement and Cache
          State ps, pdf

    18. Cache, I/O introduction
          ps, pdf

    11 Nov 7

    Nov 9

    Text 10, 11, 13

    21.7, 22.7, 23.5

    19. File systems:
          data layout, naming
          ps, pdf

    20. File systems: naming
          Mike's notes,

    Quiz8
    12 Nov 14

    Nov 16

    Transactions,
    Reliability,
    Communication Protocols
    Text 15 21. File Sytem Naming
          Mike's notes,

    22. Transactions
          Slides , (ppt), Mike's notes,

    Proj3 (Due Nov 29, 5pm)

    Quiz9

    13 Nov 21

    Nov 23
    off

    Distributed Systems Text 16

    23.6

    23. Networks and
          Distributed Systems
          ps, pdf

    24. RPC ps, pdf

    HW3 (Nov 20)
    Quiz10

    Nov 23:
    Thanksgiving

    14 Nov 28

    Nov 30

    Text 17

    Optional:
    Text 18

    25. Distributed systems;
          atomic commit
          Slides , Mike's notes,
    Quiz11
    15 Dec 5
    Dec 7

    Dec 7

    Security
     

    Midterm

    Text 19, 20 26. Security ps. pdf

    27. Security and Protection;
          Summary ps, pdf

    Proj4 (Dec 6)
    HW4 (Dec 4)

    Midterm 12/7
    7-10 PM
    WCH 1.120



    Sermons

    (Cribbed from Tom Anderson)


    Project Information


    Admin Info | Reading | Grading | Schedule | Sermons | Project