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:

  1. Douglas Comer, "Operating Systems Design, the Xinu Approach", Prentice Hall. 1984 (be sure to get the original version, ISBN 0-13-637539-1)
  2. Robert Love, “Linux Kernel Development”, second edition. Novell Press, 2005, ISBN 0-672-32720-1

 

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.