Você está na página 1de 7

CS 149 Green Sheet

(revised 6/9/2011) Terry Allen

Section 01

Web Site
The web site for this course is http://www.cs.sjsu.edu/~allen/Summer_2011/cs149. (It is case-sensitive.) Far all practical purposes, this site is permanently under construction, but you will find there written assignments, a copy of this green sheet, and other information which I may occasionally and at odd times believe you will find useful. As is prudent with any website, do not assume it will be up and running 24/7. Download copies for yourself of all files you find useful.

Work to be accomplished
There will be out-of-class programming assignments, including readings and independent study. You can expect a programming assignment at most weekly.

Textbooks:
The required textbook is Operating Systems: Internals and Design Concepts (5th ed., 2005), by William Stallings. ISBN 0-13-147954-7 You should be able to find copies of this text online at Amazon, or at www.abebooks.com. The two below are suggested, not required, and their coverage is almost identical. If you want to buy one of these, choose the one you can get the best deal on. I have not noticed a huge difference between the various editions, and earlier editions tend to be much cheaper: Operating System Concepts (8th ed., 2009), by Abraham Silberschatz, et al. ISBN 978-0470-12872-5 Operating Systems: Design and Implementation (3rd ed., 2001), by Andrew Tanenbaum, et al. ISBN 0-13-638677-6

Prerequisites
Satisfactory completion of both CS147 (or equivalent) and CS146 (or equivalent).

Office Hours
My office is in DH282. The phone number in the office is 924-5116. There is voicemail on that line, but email will provoke faster response (I dont have to be in the office to answer email). My email address is terry_allen@hotmail.com. Try to send your email from a SJSU address: this should get you past the spam blocker and produce more timely replies. Also, put CS149 (or something recognizably similar) in the subject line. Using email would also allow you to send examples of non-working code, but sending an entire program will probably just cause me to invite you to see me during office hours. If your email application (such as Outlook) allows you to request a receipt from whomever you send email to, use that feature when you submit homework. Because I accept late homework, I wont necessarily panic (or whatever the professorial equivalent of panic might be) if I dont receive a particular homework assignment from you. But if you dont get a receipt back from me within a day or so, you should probably start investigating. Theres not much I can do at the end of the term if you thought you turned in some homework back in June, but I never received it. At the very least, check your Sent Messages buffer to make sure you included any attachments. If you want to email me a question, please put question in the subject line (along with the course number). Questions go to the front of the email queue. Office hours are: Tuesdays, Wednesdays, Thursdays, 7:00 1:10 10:00 7:00 1:10 a.m. p.m. a.m. a.m. p.m. to 8:50 a.m. to 2:00 p.m. to 11:00 a.m. to 8:50 a.m. to 2:00 p.m.

Notice that I have adjusted them slightly from what we worked out in class in order to allow for transit time (mine) from Duncan to MacQuarrie. One-on-one meetings (see below) and other less formal meetings outside of official office hours are encouraged, but of course need to be set up in advance.

Consequences and definitions of cheating:


Cheating on exams or copying homework from others will result in an F in the class. You will not be allowed to drop the course, and the incident will be reported to the University administration. All work in this course is individual. No two programs will be exactly alike even if they have the same purpose. I expect you to be proud of the work you do in this course, and to be able to explain to me your reasoning behind the programming strategies you used to carry out the assignments. It will be very difficult to accomplish this if its not your own work.

Homework submissions
You will write programs in C, using a text editor such as vi (or vim) or xemacs, and you will submit these programs in text file format. You may use any development environment on any machine to test your code, but I will be compiling your submissions with gcc in a Cygwin environment. If the Cygwin-resident version of the gcc compiler complains about your code, it will be as though you submitted nothing, so it would be prudent in almost all cases to make your development environment match mine (even though I will be the first to admit it is not the best available). I have a special email account for homework submissions that is different from my regular email: cs149assignment@gmail.com. One reason for this is that my regular email sees a lot more traffic (sometimes more than a hundred messages a day), and I dont want to risk having your homework assignments get lost in the shuffle. When you send in homework assignments, send only the source files unless specifically asked to send in something else. Attached zip files or executables will cause your email to be flagged as potentially malicious and may get it quarantined.

Homework submissions: due dates and times


You will have a minimum of one week to complete a homework assignment. I will try to assign programming homework on Thurssday, and I will expect emailed submissions to be timestamped before the start of class on the following Thursday. I will try not to assign programming homework on Tuesday, although I may assign reading or nonprogramming assignments (e.g. problem sets). The reason for this is the office hour schedule: the office hour schedule is heavily back-loaded to get you started on any assignments, but leaves you on your own while you try to finish up an assignment for Thursday.

I suspect you will have to make a serious and timely effort on all programming assignments in order to do well in the course. If you cannot complete an assignment by the time due, you should submit what you have been able to do by the due date (assuming it compiles and links correctly, even if it does not function as desired). I will expect to see any students who are obliged to submit non-working code (i.e., not performing to spec) at some point during my office hours. Corrected code should be submitted as soon as possible after the deadline, even though it will be past the deadline. Failing to meet a deadline does not get you off the hook for the assignment. Unlike many instructors, I do give partial credit for late submissions. At the end of the day (or semester), though, you might not consider this to have been a kindness on my part: having to deliver a large number of programming assignments in the waning days of the semester simply in order to pass the course is not the sort of experience I want you to have in this course.

Grading system
Homework counts for thirty percent of the final grade, with class participation counting twenty percent and the two midterm exams counting twenty percent (10 percent each). The final will be thirty percent of the final grade.

Midterm exams
There will be two midterm exams, tentatively scheduled for the week immediately before the halfway point in the term, and two weeks before the end of the term. Make-up midterms will be close to impossible for the second midterm, because of its lateness in the term, and will be highly unlikely for the first midterm. I will try to make sure plenty of advance notice is given in class about the midterms. If you know in advance that you will be out of town for a particular length of time, I would of course expect you would make arrangements to take care of any assignments and such, but naturally you cant do that for exams. So let me know with as much advance notice as you can manage, and I will move the exam dates around accordingly.

Final exam
There will be a final exam. Also, there will be a final programming project, due on the last day of class. This will be assigned about two weeks in advance of its due date. If not complete by the last day of class, the same rules apply as for all other homework: any late assignments must be handed in by the end of finals week (not by the Make-up Day) in order to receive even partial credit. While the programming project counts as homework, it will count for ten percent of your final grade (one-third of the total homework score). In effect, it carries equal weight to one midterm.

1:1s
Every student should (it is not mandatory), have at least one one-on-one meeting with me. Each of you will arrange a time with me (outside of office hours, of course) reserve a conference room for that time (MH229 and MH211 are available for student-faculty conferences, but not exclusively for this course), and prepare an agenda for the meeting covering, for example, plans for future study, or concerns about your own performance. I dont recommend using the 1:1 for a discussion of the most recent homework assignment (thats what office hours are for), but if you reserve a time (remember that its optional in the first place for this class) and suddenly you discover you are truly strapped for anything to talk about, it is acceptable to devote some time to this topic. The meeting can be rescheduled if necessary, but I must have advance notice if the meeting needs to be rescheduled, and remember that available time will become limited as the end of the term approaches. This meeting is not a requirement for completion of the course, even though I recommend it. However, like all interactions in this class, it does count toward class participation. An hour should be allowed when scheduling the meeting, although thirty minutes may suffice. Naturally, you may schedule as many meetings as you desire.

FAQs
Q: I was sick and couldnt work on the programming assignment. Can I turn it in late without penalty? A: Only if you have contacted me before the due date and made specific arrangements. In such cases it is always good to turn in what you have done by the due date. Q: I was swamped that week with other classes. Can I turn it in late? A: You have to turn it in, so if its late, you will have to turn it in late. Turning in an assignment late will reduce your maximum possible score for the assignment, but in no case will the score be reduced by more than 50% due to lateness. (Not turning in an assignment at all still results in a zero score, however.) Also, advance notice works wonders. Often, when youre swamped with work from other classes, you still know the extra work is coming due well in advance. In such cases your best strategy is to contact me and see if any specific alternate arrangements can be made.

Course objectives as specified by the Department


The general aim of the course is to examine and discuss the algorithms in use today in the carrying out of the essential functions of an operating system. This will include memory management, task scheduling, I/O processing and file management. Specific Objectives would be as follows:

Introduce to students the role of an operating system, and where it fits in to the task of software development. Discuss the needs, strategies and possible trade-offs of various techniques for memory management. Illuminate how the CPU itself is managed as one of the critical resources of the computer system. Discuss possible problems, including deadlock issues (and their resolution), and inter-process communication issues such as race conditions.

Note: in this course we will go through the steps needed to implement an operating system. There may not be time to cover all aspects of operating system development in detail, but I will try to be thorough about the portions we do cover. One of the goals of this class is to improve on the operating systems out there today, which may limit our discussion of portions of present-day operating systems which we consider adequate (or better than adequate).

Student Learning Outcomes


Upon successful completion of the course, students should: Understand the role of an operating system in process scheduling and I/O and file management. Understand the key concepts behind the various memory management functions in use in an operating system, and how they operate effectively. Understand the various CPU scheduling schemes in common use, and their tradeoffs. Understand the various schemes in use to prevent or avoid resource deadlock issues. Understand software race conditions and how they can be avoided or managed.

Dept. of Computer Science Additional Green Sheet Information Required by the University
Academic Integrity:
Your own commitment to learning, as evidenced by your enrollment at SJSU, and the Universitys Academic Integrity Policy require you to be honest in all your academic course work. Faculty members are required to report all infractions to the Office of Student Conduct and Ethical Development. The policy on academic integrity may be found at http://sa.sjsu.edu/judicial_affairs/.

Further information:
If you need course adaptations because of a disability, or if you need special arrangements in case the building must be evacuated, please make an appointment with me as soon as possible , or see me during office hours. Presidential Directive 97-03 requires that students with disabilities requesting accommodations register with the SJSU Disability Resource Center to establish a record of their disability. Please familiarize yourself with SJSU policies and procedures at: http://info.sjsu.edu/static/soc-fall/soc-fall.html, and http://info.sjsu.edu/static/catalog/policies.html, particularly the add/drop policy. It is your responsibility to know and observe these policies. However if there is something about a policy that you dont understand, please ask!

Você também pode gostar