WED MAR 23
• lecture 20: memory manager data structs
txt
MON MAR 21
• lecture 19: intro to memory management
txt
• read pages 189202 of Tanenbaun
• assignment 6: memory allocation pdf
proj6_data txt
memmgr.c c
• buddy system html
due Fri Apr 1
• assignment 4 cutoff is Fri Mar 25.
FRI MAR 11
• lecture 18: squeak's etoys
txt
• assignment 5: squeak html
due Fri Mar 25
• missing pages 164165 from handoutpdf
Discussion Board The class will use the ikonboard system for web-based
threaded discussions of lectures, assignments, and other
course-related material. All students are expected to create an
account for themselves on the discussion board, and use it when
appropriate. Before sending me an email, please consider
posting your question to the discussion board. Private/personal
matters (e.g., academic standing in the class) should be addressed to me.
Look for the link to the course board at the top of any course web
page, in the pink resources menu.
Text
Modern Operating Systems (2nd Edition),
(C) 2001 by Andrew S. Tanenbaum,
ISBN 0130313580,
Prentice-Hall.
Tanenbaum's text is easy to read and has good technical content.
Tanenbaum is a well-known textbook author (he also has texts on
architecture and networks) and is a researcher in
distributed operating systems.
Tanenbaum is an American who lives in
the Netherlands; he created the non-partisan Electoral Vote web site which closely tracked
polling leading up to the 2004 US Presidential election.
Course Description
From the UML CS brochure:
An introduction to major operating systems and their
components. Topics include processes, concurrency and synchronization,
deadlock, processor allocation, memory management, I/O devices and
file management, and distributed processing. Techniques in operating
system design, implementation, and evaluation.
Course Approach
There are a number of different ways an O.S. course can be organized.
Students can:
Study topics in OS design in a theoretical way.
Write code to illustrate/demonstrate these topics.
Implement an operating system.
Write code that exercises the OS of a known/working operating
system (in other words, learn standard OS APIs)
We will do all of the above. Ideally, I would like for to write
code and build a real operating system, but this is a lot of work and
it's hard to debug an OS while you're building it.
So instead, we will work with an OS simulator called OSP
An Environment for Operating System Projects. This is a
body of code written in ANSI-C that simulates an operating system,
with modules for tasks like CPU scheduling, memory allocation, file
management, stream and socket communication, and device I/O. In a
typical OSP project, you get the job of implementing one of these
modules, given a specified external API for the module.
The OSP system is inspired by the Unix OS design, but is a
simplified version of it. It's also valuable to learn some practical
system programming, so we will have assignments that involve writing
code using Unix system APIs.
Finally, while Unix (and Windows NT/XP, which isn't all that
different) is an industry-standard OS, it's not the only way one can
imagine building an operating system. So we'll explore some alternate
operating systems, which while having limited commercial success, are
still quite interesting.
Grading
Grades will be assigned based on the following proportions:
programming assignments, 30%
homework can only help you. you still have to do the homeworks (2
may be forgiven, after that, each one drops you a half-letter grade.)
basically, homeworks can be worth a whole letter grade increase in
your grade.
* so if you have a "B" avg on the exams, but high quality (A level)
homework, then you would receive an A as your final grade.
* example: "B" on HW plus "C" on exams --> BC grade.
* example "A" on HW plus "C" on exams --> B.
* example "C" on HW (but you did them) plus "B" on exams --> B.
will apply the percentage system if it will help you.
you can't bring your grade down (except if you miss 3 or more
homeworks).
mid-term exam, 30%
final exam, 30%
in-class participation, 10%
Late Policy
For each class day an assignment or project is late, 10% of
the total points will be deducted from the points received. This will
continue for five class days, after which the assignment or project
may be submitted at any time up to and including the last day of
scheduled class and will receive a maximum of half the total credit.
Homework will be accepted late up until the last day scheduled class
meeting day.
Copying
Short form: I encourage you to study groups and work with each other,
but all prepared work you turn in must be your own. Do NOT copy
code, solutions, or other text from your study partners or anyone
else.
Long form: In professional as well as academic life outside the
classroom, people seldom work completely on their own. They typically
work in teams and help each other extensively. I have no objection to
you getting help from me or your fellow students. I encourage you to
do so. However,
prepared work in this course is to be each students own.
Students should therefore be familiar with the Universitys
definitions and policies on academic dishonesty, found in the
University course catalog. [above adapted from Prof. Jesse
Heines copying policy]
The contributions of others to your thinking must be acknowledged
in all work you turn in. As UML Prof. Sarah Kuhn says, Using
works of others, or drawing extensively on their ideas, without
clearly stating that they are not your work (by using quotation marks,
and references to the cited work) is plagiarism, a very serious
academic offense. [Prof. Sarah Kuhn, syllabus for 65.790,
from Prof. Marian Williams 91.531 course syllabus.]
Also: With each
assignment, you must mention people whom you worked with, who you have
helped, or who have helped you.
Honors Program
Students enrolled in the honors program will be expected to do an
exemplary job with all coursework. Additionally, a term paper or term
project will be required. Please schedule a meeting with Prof. Martin
to plan the project by March 15.
Last modified:
Wednesday, 02-Mar-2005 10:41:29 EST
by