mcs720.jpg (8446 bytes)

Instructor

Brian Mitchell
Drexel: (215)895-2668
e-mail: bmitchel@mcs.drexel.edu
Class Web Page: http://www.mcs.drexel.edu/~bmitchel/course/mcs720/mcs720.html

Important Notices

See current class notices for MCS720 - Operating Systems

View the Current Presentation Schedule

 

Course Description

In this course we will investigate the classical internal algorithms and structures of operating systems: CPU scheduling, memory management, and device management. Considers the unifying concept of the operating system as a collection of cooperating sequential processes. Topics include: file-systems, virtual memory, disk request scheduling, concurrent processes, deadlocks, security and integrity.

We will use the Java programming language to investigate important Operating Systems algorithms and concepts. Java is an ideal language for Operating Systems studies because of its availability on multiple platforms, its cost (a free Java environment can be obtained here), and its support for concurrent programming.  I will conduct a Java tutorial in this class so that you will be able to successfully implement the programming assignments. 

Intended Audience

This course is intended primarily for graduate students in Software Engineering and Computer Science. Graduate students in other programs may take this course if they see me in advance about their qualifications.  Before taking this course, students should have some operating systems background (perhaps a previously taken undergraduate class) and be proficient in an object-oriented programming language such as Java or C++. Students lacking such a background should consider taking the Unix Programming Environment course before taking MCS720.

Research

This course will include coverage of research papers relevant to Operating Systems and Concurrent Programming.  Students will be expected to read the selected papers and participate in class discussions.  

Class Meeting Times

MCS720 will meet from 6:00 - 8:50 PM on Tuesday evenings. Office hours are by appointment or immediately before class. 

Schedule

Topic Description
1 Introduction  [4-slides per page version](Chapters 1,2,3)

Additional Reading:

Inside the Windows 2000 Kernel
Architecture of the Linux Kernel

2 Processes & Threads [4-slides per page version] (Chapters 4,5)

Additional Reading:

  1. Scheduling Threads for Low Space Requirement and Good Locality
  2. User-Level Scheduling with Kernel Threads
  3. Scheduler Activations: Effective Kernel Support for the User-Level Management of Parallelism
3 Java Programming Tutorial
4 Process Synchronization   [4-slides per page version](Chapter 7)
5 CPU Scheduling [4-slides per page version](Chapter 6)
6 Memory Management and Virtual Memory  [4-slides per page version](Chapters 9,10)
7 Deadlock  [4-slides per page version]
8 File and I/O Systems
9 Directory Services
10 Security and Protection
11 Operating System Case Studies
12 Special Purpose Operating Systems (Embedded, JavaOS, WebOS)
13 Guest Speaker:  Linux on the Mainframe 
(the date for this session, along with a copy of notes, will be posted soon...)

You may use the above links to obtain an on-line copy of the lecture notes.  Selected lecture notes are provided in Adobe Acrobat format.  Adobe Acrobat Reader is a free viewer for Adobe PDF files. A copy can be downloaded from here:

getacro.gif (712 bytes)

Project & Assignments

There will be two major deliverables in this course:

  1. Selection and presentation of a research paper related to a specified operating system topic.   
    ===> READ ABOUT THIS ASSIGNMENT
  2. A term programming project
    ===> READ ABOUT THE TERM PROJECT

Homework's will involve reading the scheduled papers and being prepared to participate in discussions about the research papers.

Here are some helpful links that may be of use to you for this course.

Textbooks

The course textbook is:

Additional materials from the class will be derived from:

Grading

Programming Project:  60%
Research Paper Presentation 20%
Final Exam 20%

* The date of the midterm will be announced in class at least 2 weeks prior to the date of the exam

Policies

Every effort should be made to attend the scheduled exams, however, there are times when this may not be possible due to sickness or business travel.  In the event that you can not attend the final, please let me know in advance so that I can make arrangements for you to take the test early.  If you are unable to provide sufficient notice, then the makeup exam will take the form of an oral exam or a take-home test.


Return to my home page