CS644 SYLLABUS, Spring Term 2010
Instructor: Prof. Betty O'Neil, Dept. of CS, UMass/Boston, eoneil@cs.umb.edu
Office: Science 3-169, 617-287-6455
Office Hours: TuTh 4:00-5:30
Class Hours: TuTh 2:00-3:15 PM in W-2-123
Class Web page: www.cs.umb.edu/cs644 (to which this syllabus is linked), available as /data/htdocs/cs644 from the filesystem.
Prerequisites: C/UNIX development experience, CS641 or two grad
courses with programming content (compilers, database systems, software
engineering, etc.), or an undergrad course in OS; also preferably a computer
architecture course.
This course will cover the structure and
dynamics of modern operating systems—these date from approximately 1970 on. To
show what in fact is generally accepted as current OS architecture, we will
take three systems as case studies: Xinu, a small pedagogical OS from Perdue,
Linux, and, to a smaller extent, Windows 2000/XP/.... We will be using book
written by a Linux developer that covers Linux version 2.6, the current version
of Linux.
1. Operating Systems from the Outside: Usage
and features of the three cases and general classification criteria of
operating systems. Digging down through the software layers to the kernel.
Using semaphores and messages for user-level programs. Comer Chap 1,
Love, Chap. 1
2. Hardware: PC running in 32-bit protected
mode, known as the “x86” platform for Linux. Handouts, web docs, parts of Love,
Chap. 5, 9
Operating systems turn actual hardware into a
virtual machine, so 1. and 2. are the two endpoints.
|
Comer Chapters: Xinu |
Love Chapters: Linux |
3. System Call Mechanism |
Just a function call |
4 |
4. Processes, Scheduling |
3-5 |
2, 3 |
5. Kernel Synchronization |
6, 7 |
7, 8 |
6. Memory Management |
8 |
10, 13 |
7. Interrupts |
9, 10 |
5, 6, 9 |
8. I/O Systems |
11, 12 |
12 |
9. Networking |
14-16 |
|
10. Disk, File Systems |
17, 18 |
11 |
The two books cover almost the same set of
topics, but in different orders. The order in Comer’s book is more true to
the actual layering of functionality, so we will follow its lead. You can think
of topic 3 as an extension of topic 1, closing in on the kernel. Then topic 4
builds on the hardware just a little to provide processes and threads. Topic 5 also builds on the hardware, plus the
processes, to provide useful synchronization primitives between processes.
Topic 6 builds on the hardware, plus the processes and synchronization
primitives, to provide memory services. Although interrupts have been lurking
in the background all along, the details of writing interrupt code, topic 6,
depend on the previously covered kernel topics. Once interrupts are fully
understood, input/output devices can be covered.
A major goal of this course is to cover
kernel programming in real practice: concepts of process context, process
switching, treatment of local, process-local and global variables under
multitasking and multiprocessing, race conditions. There will be several
programming projects using Xinu on the PC, using C developed on UNIX.
Required Texts:
Class email:
Please read your email here at least several times a week to keep posted on
class announcements, corrections, etc., or set up a .forward file to redirect
email to your off-campus mailbox. Send email to eoneil@cs.umb.edu for help, questions, etc.
Or we could set up a Google group.
Setup: Get a UNIX account for cs644, add "module load ulab" to your
.cshrc. This defines the environment variable "xinu" as well as
adding to your path the cross-compilation tools we’ll need for PC development
on UNIX. Then find the xinu-related lines in ~eoneil/.cshrc and paste them into
your own .cshrc. This will set up environment variables that provide some handy
symbols for useful places:
$xuex |
Xinu examples directory, get first Makefile from here |
$xuinc |
Xinu include directory |
$xuker |
Xinu kernel sources |
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/student_services/student_rights/code_conduct.html.