Operating Systems and Parallel Algorithms
CSC 213
Grinnell College
Fall 2010F
Lecture: MWF 8:00 - 8:50, SCI 3819
Labs: M 1:15 - 2:05 (02), T 11:00 - 11:50 (01), SCI 3818
Instructor:
Janet
Davis (contacting
me)
Announcements
- October 22: The schedule for after fall
break is updated, and I am making the following policy
changes in response to your feedback. I'll briefly talk about the
reasons for these changes in class on Monday.
- The
last two labs have been long for
some---longer than I intended. I will try to make labs shorter and to
provide extra credit opportunities for those who work quickly. To
better monitor the labs, I will
award 1 point of extra credit to the first group from each lab section
to email me and let me know that they have either finished the
lab or spent a total of four hours (please also let me know how far you've gotten).
- I will post a few suggested
problems for each reading. You can do these
before class, after class, or as preparation for exams, as you prefer.
I encourage you to use office hours to discuss suggested problems.
- Discussion questions are now due at 7:30 p.m.
- I
will no longer moderate the discussion question forum, and I will not
usually respond to questions before class. You may earn 1 point of
extra credit by finding answers to others' questions about matters of
fact (e.g., "Which algorithm is used by modern operating systems?").
You may also earn 1/2 point of extra credit by answering your own
question after class. You must cite the source(s) of your information,
though these citations
may be informal (e.g., a URL or a page number in the textbook).
- Suggestions for making the most of your discussion questions:
- If you want me to lecture, ask me to explain a particular concept or algorithm that you didn't understand.
- If you are having a hard time figuring out what is important to know from the reading, ask.
- If you want us to work through an example problem in class, ask to go over one of the suggested problems.
- I
especially welcome the kinds of questions that lend themselves to
discussion---such as questions about motivations, assumptions, and
relationships.
- If you truly do not have a question, state the most important thing you learned or answer somebody else's question instead.
- October 11: Exams are graded and you may
pick them up from my office. I added 5 points to each student's score
(the equivalent of one short answer question) as a "correction" for the
difficulty of the exam. Once you see how you did on your exam, you have
a choice:
- You may immediately take a sample solution.
- For
those who want a second chance to demonstrate their learning of the
material, you may instead arrange with me for a written or oral redo.
Written redos are open-book. In oral redos, you will visit my office
and I will ask you questions about the material you missed points on,
to better establish what you know and what you still need to learn.You
may earn up to the number of points written on your exam, computed by
(100-score)/2.
October 8: Lab 7 is posted for Monday and Tuesday. In honor
of the upcoming fall break, you may choose your own lab
groups. Lab 6 extended until after fall break. - October 2: Lab partner assignments for lab 6 are posted.
- October 1: The schedule is now updated to reflect the change in the exam I emailed about.
- August 23: Welcome back! Your first assignment is due
Monday, August 30.
About this
course
Welcome to the fall 2010 session of CSC 213, Operating Systems
and
Parallel Algorithms. This course is an introduction to the use,
structure, and design of operating systems.
We will also study strategies for designing parallel algorithms,
which exploit the computational resources of multiple CPUs to solve
problems faster.
By the end of this course, you should be able to
- discuss the overall purpose and structure of operating
systems;
- understand and use operating system abstractions such
as threads,
processes, POSIX synchronization primitives, virtual memory,
files, and sockets;
- understand how operating systems manage input/output
devices and other resources;
- consider performance and design tradeoffs;
- analyze a problem and design a solution that exploits
parallelism, without race conditions or deadlock;
- more fluently read and write code in the C programming
language;
- learn about current practice in the design and implementation of operating systems;
- follow news and current research related to computer systems.
I
studied operating systems in both college and graduate school---but
there is still plenty for me to learn. I see my role in this
course as not "expert" but "senior learner." I hope to guide you
through learning from the textbook, the lab exercises, current news and
research, and each other.
Is this course for me?
YES!
Seriously, you will find this course invaluable if you
plan to
go
on to work or advanced study in computer science, if you want to build
high
performance computing applications someday, or if you just have a
burning
curiousity about how your computer can walk and chew gum at the same
time (metaphorically speaking, of course). Plus, programming
with
concurrency is challenging---it will stretch your mind.
I assume you passed CSC 161 with a grade of C or better and
are able to program in C. CSC 213 fulfills the
Computer Systems requirement for CS majors and is recommended for all
CS majors.
Janet
Davis (davisjan@cs.grinnell.edu)
Created August 23, 2010
Last revised October 22, 2010