CMPSCI 377: Operating Systems (Fall 2002)

December 24: The grade summary has been posted. Please send mail if you have any questions.

December 17: A few notes on Real-Time scheduling

The problem of real time scheduling is essentially the same as the standard OS scheduling problem that we studied early in the semester: you have a set of processes that all need to do work using CPU and you must somehow decide which one will get the CPU at each time interval. The difference with the real time domain is that we typically think in terms of processes that need to be able to do a little bit of work at regular intervals (Huan refers to these as "task instances") and that this work must be completed by a certain deadline. So - on page 18 of the real time slides, each process is described as needing to execute at regular intervals (the period), and as having a worst case execution time (WCET). In specifying things this way, we are implicitly assuming that the deadline for one "instance" happens just before the next instance can begin executing. So - for a specific process (or task) we split time into intervals of 1/period and require that an instance must be executed within each of these intervals (specifically, the instance must start and end its execution within each interval).

The numbers in the tables shown on pages 19 and 20 represent the completion time of each task instance for the given scheduling algorithm. The easiest way to work out these numbers is to draw out a schedule as we did earlier in the semester with the standard scheduling algorithms.

Page 18 shows the results of scheduling under the Rate Monotonic algorithm which says that we give the process with the highest execution rate the priority (so it may preempt other processes). So - in this example, task 1 is going to get the CPU for 1 unit of time at regular, 5-unit intervals (so it will complete at time 1, 6, 11, etc). When task 1 is not executing, the other two tasks will have an opportunity. Of these two, task 2 has the priority since it executes at a period of 45 (as opposed to 90). In the beginning, task 2 will execute whenever task 1 is not. So - in this case, task 2 (the first instance!) will execute during times: units 2,3,4,5, 7,8,9,10, 12,13,14,15, 17,18,19,20, and 22,23,24,25. Only when this task 2 instance is done will task 3 be given the opportunity at the CPU. This, of course, will start over at time 45 when the 2nd instance of task 2 is available to start.

The two algorithms that we are interested in give priority to processes in different ways:

RMA says: give the process with the highest frequency (lowest period) priority.

EDF says: give the process with the next deadline priority.

December 16: A small update to the exam 3 description on the exams page.

December 15: The exams page for more details on the final exam.

December 13: Due to various circumstances, I've decided to reduce the late penalty for a Saturday turn-in to 3% of your lab grade (from 10%). Additional days will continue to accumulate at 10%. The absolute last day to hand-in will be Tuesday (with a penalty of 33% of your lab grade). Also - if you are handing in late, please update your hand-in directory on a daily basis so that our robot picks up your latest copy, as it may be better grade-wise to hand-in an incomplete version of your lab earlier. However - we will only grade one of these copies and you must tell us which one to grade (if we do not hear anything, we will grade the first version that you hand in). December 5: Homework 6 deadline has been changed to December 11th.

December 3: The new Grades are now available. Also - check out the grade histogram to see where you stand.

November 26: Regarding our discussion in class on the modified 2nd-chance algorithm. The reference bit is set to 0 as in the original algorithm on every cycle of the search. So - by the third pass of the search, all states will be set to (0,0).

November 21: Demos for lab 3 are due by Wednesday the 27th. Your scheduled opportunities to demo (in the EdLab) are: Friday the 22nd, 11-1 (myself), Monday the 25th, 12:30-1:30 (myself), 3-5 (Qi), Tuesday the 26th, 10-12 (myself), and Wednesday the 27th, 3-5 (Huan). If you cannot make these times, then you need to make an appointment with one of us.

November 20: Lab 4 is out.

November 19: The deadline for HW 5 has been extended to Tuesday the 26th @23:30. The last (real) question is not hard - don't fret over it.

November 17: A small change has been made to question 5.6 of HW 5. You may answer either version of the question in what you hand in (but it will be better practice to answer the new version).

November 13: The lab 3 deadline has been changed to Friday, November 22nd @ 23:30.

November 10: The official version of homework 5 is now on line. Note that the due time is 23:30.

November 5: The grade information is now on line.

November 5: If there is anyone still looking for a partner for lab 3, please send email ASAP.

October 31: There are now some more RMI hints available.

October 30: The first cut at the demo poker client/server programs is ready. Download the poker.tar file and follow the instructions in the README file.

October 30: I've been convinced that games with only 4 players should be allowed.

October 28: The draft of your user guide must be turned in on time (October 30th) in order to receive the documentation component of your lab grade.

October 24: Homework 4 is now available.

October 23: Display still flashing? Check out this double buffering example.

October 23: The final exam will be December 18, 10:30-12:30 in Goessmann 20.

October 22: We've made our implementation available for everyone to play with: see ~fagg/cs377/cs377/hw/lab2/README

October 22: We talked in class today about the confusion between the row/col and the X/Y coordinate systems. The robot and goal positions are specified in row/column format. In the code that we have supplied, the implicit assumption that we made is that X==row and Y==col. Yes, it is confusing. Rather than make changes to the base code at this late hour (as I suggested that I might do in class), I think it is best that we do not do this at the risk of introducing other bugs. Please adjust your code accordingly. Sorry for the confusion.

October 22: minor changes have been made to map7.txt, map8.txt, and map9.txt. There are no longer two goals located at 17,3.

October 22: Dr. Fagg will be spending office hours in the Ed-Lab.

October 20: Lab 3 is officially out.

October 17: Having trouble with your lab 2 display flashing? See the Java AWT documentation on double buffering.

October 17: Exam mean: 60; median: 62. For more details, see the histogram and the grade cumulative grade graphs. If you have questions about the grading, see Huan for part 1, Qi for part 2, and myself for parts 3 & 4.

October 10: Homework 3 is now available.

October 8 (00:05): I have been unable to copy the following files. Please contact the instructor if you are on the list.

Sept 30: The first midterm is coming: more details available at Exam Central

Sept 29: Lab 2 is at long last ready. Note the change in due date to October 23.

Sept 27: The solutions to Quiz 1 (postscript and pdf) and to Homework 1 are now available.

Sept 26: The due date for homework 2 has been moved UP to Monday, October 7. This will give us a better opportunity to discuss the solutions before the exam on October 9th.

Sept 26: Handing in more than one java source file is fine. Just make sure that it is clear how we should compile things.

Sept 26: If you are experiencing warnings along these lines:

Warning: Cannot convert string "Escape,_Key_Cancel" to type VirtualBinding
Warning: Cannot convert string "Home,_Key_Begin" to type VirtualBinding
Warning: Cannot convert string "F1,_Key_Help" to type VirtualBinding
Warning: Cannot convert string "ShiftF10,_Key_Menu" to type VirtualBinding
Warning: Cannot convert string "F10,Shift_Key_Menu" to type VirtualBinding
Warning: Cannot convert string "KP_Enter,_Key_Execute" to type VirtualBinding
Warning: Cannot convert string "AltReturn,Alt_Key_KP_Enter" to type VirtualBinding

you have nothing to worry about - it is related to the translation of the keyboard map. Your program will work fine otherwise.

Sept 26: Qi Li has changed her office hours to Monday 3-5 (in LGRT 220). This will take effect next week (so she will still hold office hours on the 27th at the old place/time: F 10-12).

Sept 25: Huan Li has changed her office hours to Wed 3-5 (in LGRT 220).

Sept 24: The checkhw script can be found in ~fagg/bin/

Sept 20: The TA office has moved to LGRT 220 (no longer will they be held in CS 311)

Sept 13: Homework 1 is ready

Sept 12: Competition for making changes to the linux kernel: IBM Linux Challenge

Sept 2: No discussion on Wednesday, Sept 4th. The first class will be Thursday, Sept 5th.

This page is online at
Copyright 2002, Andrew H. Fagg
Last modified: Tue Dec 17 17:38:36 2002