CS 444 Syllabus, Fall 2013
Instructor: Betty O’Neil, eoneil@cs.umb.edu
Office: S/3/169, 617-287-6455
Office Hours: MW 3:15-4:45
Class Web page: www.cs.umb.edu/cs444
(to which this syllabus is linked)
Prerequisites: CS341 (C, some x86 assembler, hardware programming,
interrupts) and CS310 (serious programming, hash tables, maps, graphs)
Text: Andrew Tanenbaum, Modern Operating Systems, 3rd edition, 2008, ISBN-10: 0-13-600663-9.
You should also have Kernighan and Ritchie, The C Programming Language, ISBN
0-13-110362-8.
Topics: We will follow Tanenbaum’s order, except that we will
study part of Chapter 5 early because it has useful hardware coverage.
Also, the case studies of Linux (Chap 10) and Windows (Chap 11) will be covered
along with the relevant general discussion in the earlier chapters. Android Linux will also be covered as time
permits.
- What an operating
system is: interface from user level to kernel via system calls, hardware
interface underlying kernel, review of interrupts. In particular, PC
in 32-bit protected mode (lab’s SAPCs), UNIX/Linux system calls, Windows
system calls. Tanenbaum Chap 1, 5.1-5.3, 10.1-10.3, 11.1-11.2.
- Processes and
Threads: process and thread states, system calls for creation, etc. IPC
(interprocess communication) and synchronization. Scheduling.
Tanenbaum Chap 2, 10.3.3, 11.4.
- Memory
Management. Methods for simple systems, then advancing to modern
paging systems, e.g. UNIX/Linux and Windows. Tanenbaum Chap 3, 10.4,
11.5
- File Systems. Types of
files, directory systems, allocation, etc. Tanenbaum, Chap 4, 10.6, 11.8
- I/O Systems—UNIX/Linux, Windows
device management. Tanenbaum Chap. 5, 10.5, 11.7
- Deadlocks
and their detection, avoidance, etc., Tanenbaum Chap. 6
- Intro to multiprocessor
operating systems. Tanenbaum Chap. 8
Class email: Please read your email here at least several
times a week to keep posted on class announcements, corrections, problems with
collecting your work, etc. Most students set up a .forward file in their
login directory to redirect local email to their main mailbox. Send email to eoneil@cs.umb.edu for help, questions,
etc. We will have a Google group for
discussion of projects, etc.
Assignments:
Assignments will be done from the ulab UNIX machine and downloaded to the
SAPC’s. There is no in-lab work—that is, all your work can be done
remotely. Over the course of the semester we will be constructing a small
operating system.
Note security restrictions on access to our systems, described in How
to access ulab.cs.umb.edu from offsite and transfer files, linked
from the class web page.
You will need to
obtain an account on the ulab machine. To get one run apply
now, and ask for a CS444 account. Make sure that put ‘load
module ulab’ in your .cshrc, before the line with "exit". This
will set up your environment so that you can compile programs that will run on
the SAPC’s. Recall that you can only use mtip from ulab (blade57
at present.). I assume you know how to use mtip, Tutor and gdb
as well as of course C and (simple) make. As a
refresher, here are a few links that may be useful. Start with http://www.cs.umb.edu/ulab. There
you will find pointers to information on mtip, the SAPC’s, gdb,
and more. In particular, note SAPC Programming
Environment, Notes
on using C to access hardware registers.
For those of
you who are a little rusty on other relevant CS341 material there are a number
of useful links from Prof. Bob Wilson’s CS341 page. See coding standards for basic rules for decently
written C programs.
I have a strict
policy on plagarism. You must read the ethics
document (also printed below) before starting to work on the first assignment.
Also read the University student conduct document linked at the end of this
page. Exams will cover programming and operational details of projects.
Late days on programming assignments: Each student has 5 late days for
use over the programming assignments. Any number of days can be used on
each assignment, totaling no more than 5 over the term. Write a note in
your README file saying you are using 2 late days, or whatever, so I’ll know
when everyone’s done.
Grading: simple point system
Midterm:
100 points, Final: 150 points, Assignments: various, about 150 points total
ACCOMMODATIONS:
Section 504 of the Americans with Disabilities Act of 1990 offers guidelines
for curriculum modifications and adaptations for students with documented
disabilities. If applicable, students may obtain adaptation recommendations
from the Ross Center for Disability Services, M-1-401, (617-287-7430). The
student must present these recommendations and discuss them with each professor
within a reasonable period, preferably by the end of Drop/Add period.
STUDENT CONDUCT:
Students are required to adhere to the University Policy on Academic Standards
and Cheating, to the University Statement on Plagiarism and the Documentation
of Written Work, and to the Code of Student Conduct as delineated in the
catalog of Undergraduate Programs, pp. 44-45, and 48-52. The Code is available
online at: http://www.umb.edu/life_on_campus/policies/code/
Honesty.html:
1. README file for homework assignments. If
others (students, faculty, family members, Web search, etc.) assist you, you
should include with the assignment a statement giving them appropriate credit,
both in README and close to the affected code. If, on the other hand, you
did the assignment with no assistance (with lines of code), you should say so
explicitly (for example: "I did this assignment entirely on my own.")
This should go in your README file. In other words, the README should
explain the authorship situation.
2. Discussion of homework
assignments. Within reasonable limits I do not object, if you discuss
assignments with others, verbally or via email. Email to me or the Google
group is encouraged. You should NOT however be looking at other people's
code or old class solutions, or showing others your code or other detailed
work.
3. You are expected to make
reasonable efforts to ensure the security of your work. For instance, do not
leave hardcopy lying around the lab. If your work is copied by another, the
assumption is that you are cheating.
4. Do your
work under your provided cs444 directory. It will be set up with
appropriate protections--they should not be changed. Other students will not be
able to see your homework files, but the grader and instructor can, for grading
purposes.