CMSC 412 Operating Systems (Spring 99)
http://www.cs.umd.edu/~shankar/412-S99
Last updated
Thursday May 25, 10:42am 1999
Please check (reload) this page at least twice a week.
Overview -Exams
- Lecture Notes - Projects
-
Grades
News
-
Because the project directly accesses hardware, it requires Windows 95
or earlier (DOS, Windows 3.1, etc) operating system. See http://www.inform.umd.edu/CompRes/Docs/.where2go/os.html
for list of wam labs by operating system; unfortunately the list is outdated.
The AITS lab in AVW 1151 has two non-networked PCs that run Windows 95.
-
cmsc412.zip and cmsc412-bc45.zip will not be put on the web.
-
You can get the assembler (tasm.zip) if you need it.
-
Project web page for
the latest on the projects.
-
Schedule for projects and exams fixed.
-
Lecture notes Note 1 (revised), Note
2 (revised), Note 3 (revised).
-
Lecture notes Note 4, Note
5, Note 6.
-
Reminder: Exam 1 on March 11.
-
Covers chapters 1, 2, 3, 4, 12, lecture notes 1-7, and however much of
6 we do in class.
-
Sample exams and solutions are listed below. I strongly suggest you do
these under real-life conditions; i.e., do the exam in 75 uninterrupted
minutes (closed book, closed notes), and only after that look at the solution
and see what score you got. (Of course, ignore problems not covered by
this exam.)
-
Exam
1 and solution from my fall 94 class.
-
Exam 1
and solution
from my fall 98 class.
-
Additional sample exams available at Dr.
Hollingsworth's CMSC 412 spring 98 home page .
-
Note 7.
-
Exam
1, exam 1solution, grades
-
Note
8, Note 9.
-
Note 10,
Note 11,
Note 12,
Note 13,
Note 14,
Note 15.
-
Suggested problems from the text and their solutions.
-
Note 16.
-
Note 7 should be accessible now.
-
Reminder: Exam 2 on April 22.
-
Exam 2,
exam 2 solution,
grades
-
If you have zero in project 4, turn in your project 5
even if it does not work or is incomplete.
Otherwise I will assume that you have not made
a "good faith attempt to complete all programming projects",
and you may fail the course regardless of your exam performance.
-
Final exam is in class, Thursday May 20, 10:30am-12:30pm.
-
Covers chapters 1 to 13, notes 1-16,
and the material covered in class except
for the distributed shared memory stuff.
-
Final Grades
Overview
This course is a hands-on introduction to operating systems, including
topics in: multiprogramming, communication and synchronization, memory
management, IO subsystems, and resource scheduling polices. The objective
is an in-depth understanding of how an operating system manages resources
in a computer and provides programmers with a machine and device independent
interface.
The class component emphasizes concepts, with some examples from contemporary
OS's including UNIX and Windows. The laboratory component consists of constructing
a small kernel, including functions for device IO, multi-tasking, and memory
management. This is a difficult course because of concurrency concepts
and because the projects are done on "bare" hardware.
Required Course Text: Operating System Concepts 5th
Edition, Siberschatz and Galvin, Addison-Wesley 1998
Topics covered (in approximately this order)
Introduction to Operating Systems (1 week)
Concurrent Processes (2 weeks)
Kernel implementation techniques (1 week)
CPU scheduling (1 week)
Memory Management (2 weeks)
File and I/O Systems (2 weeks)
Security and Protection (1 week)
Networking and Distributed Systems (2 weeks)
Objects and Naming (1 week)
Window and Display Services (1 week)
Exam Schedule and Course Weightages
The weightages are approximate and may change by upto 5%. I reserve the
right to fail, regardless of overall numeric score, students who do not
submit a good faith attempt to complete all programming assignments.
Projects
-
The due dates are as given below, and not what shows up on the project
pages.
-
Late Policy:
No credit will be given for late projects.
-
Project
#0 (Due Monday Feb 8, lab session)
-
Project
#1 (Due Monday Feb 15, lab session)
-
Project
#2 (Due Monday March 8, lab session)
-
Project
#3 (Due Monday April 5, lab session)
-
Project
#4 (Due Monday April 26, lab session)
-
Project
#5 (Due Thursday May 13, TA office hours 2-4pm)
Lecture Notes
-
Note 1: Some Basic Concepts about Processes
-
Note 2: Toy OS
-
Note 3: Toy OS with Asynchronous IO
-
Note 4: Basic Concepts about Concurrent Processes
-
Note 5: N-Process Mutual Exclusion Problem
-
Note 6: Peterson's Solution for 2-Process Mutual
Exclusion
-
Note 7: Bakery Algorithm
-
Note 8: Low-level ready-modify-write atomicty
-
Note 9: Semaphores
-
Note 10: Binary Semaphores
-
Note 11: No Busy Waiting
-
Note 12: Bounded-buffer Producer-Consumer Problem
-
Note 13: Readers-Writers Problem
-
Note 14: Dining Philosophers Problem
-
Note 15: East-West Bridge Problem
-
Suggested problems from text (not to be handed in) and solutions.
-
Chapter 5: 3, 4, 7, 8.
-
Chapter 7: 5, 8, 9, 13
-
Chapter 8: 8, 9, 10, 16
-
Chapter 9: 4, 5, 8, 10, 11, 16
-
Chapter 10: 11
-
Chapter 11: 1, 6
-
Chapter 13: 1, 2, 11, 12
-
Solutions to homework problems.
-
Note 16: Introduction to Queueing
Additional material
-
Dr. Hollingsworth's
CMSC 412 spring 98 home page has lecture slides that you may find useful.
-
Complete code of some real Unix-like operating
systems can be found in
-
Operating Systems: Design and Implementation, edition 1 or 2. By A.S. Tanenbaum.
Prentice Hall, 1997, ISBN 0-13-638677-6.
-
Linux (www.linuxhq.com) and Free-BSD sources are available on the net.
-
Interfacing Borland C++ and Turbo Assembler
is described in Chapter 18 of Borland Turbo Assembler User Guide. You can
borrow a copy from me.
This page and all problem sets, lecture notes, and exams linked to
it are copyrighted. Use of these pages for the class CMSC412 at the
University of Maryland is permitted. Any other use requires permission
of the author (Udaya Shankar, shankar@cs.umd.edu).