William Paterson University of New Jersey
Department of Computer Science
College of Science and Health
Course Outline
1. TITLE OF COURSE AND COURSE NUMBER: Operating Systems, CS 345 Credits:3
2. DESCRIPTION OF THE COURSE: A course in operating systems with a system software perspective. Topics include: Computer system overview; history, evolution, and philosophies; tasking and processes; process coordination and synchronization; scheduling and dispatch; physical and virtual memory organization; device management; file systems and naming; security and protection; communications and networking; distributed operating systems; and real-time concerns.
3. COURSE PREREQUISITES: CS 280 and CS 342 with grades of C- or better
4. COURSE OBJECTIVES:
To provide an insight into operating system development, including historical information about the development of architectural support and the economic and technical forces that drive operating system development.
To introduce the fundamental concepts of modern operating systems.
To provide familiarity with an operating system by hands-on examination of significant pieces of such a system.
5. STUDENT LEARNING OUTCOMES:
Upon completion of the course, students will be able to:
a) Describe the history of the development of operating systems.
b) Analyze the designing issues for an operating system.
c) Describe the management of resources within an operating system and the issues raised by shared resources.
d) Recognize different mechanisms used for interprocess communications.
e) Identify the policies involved in process scheduling and virtual memory.
f) Identify the algorithms used for process scheduling, memory management, deadlock detection and prevention, and disk arm scheduling.
g) Explain the concept of a process, process state, and context switching.
h) Explain the design of a file system.
Through the term paper, the class reinforces the student learning outcomes of the university:
a) Effectively express themselves in written and
oral form.
Measure: exams.
b) Demonstrate ability to think critically. Measure: exams, surveys, and projects.
c) Locate and use information from the internet. Measure: projects.
d) Demonstrate ability to integrate knowledge and ideas in a coherent and meaningful manner. Measure: exams, surveys, and projects.
6. TOPICAL OUTLINE OF THE COURSE CONTENT:
Topic 1: Computer System Overview
a) Basic elements (processors, main memory, I/O systems and
system interconnection);
b) processor registers;
c) instruction execution;
d) interrupts;
e) DMA
f) memory hierarchy.
Topic 2: History; operating system concepts; operating system structures.
Topic 3: Tasks and processes
a) the process model
b) process implementations and process control blocks
c) dispatching and context switches
d) role of interrupts
e) threads.
Topic 4: Process Coordination and Synchronization
a) concurrent execution
b) sharing access
c) race conditions and critical sections
d) particular models and mechanisms for synchronization (e.g., busy waiting, spin locks, Dekker's algorithm, semaphores, mutex locks, regions, monitors, message passing)
e) deadlocks (causes, conditions, detection, avoidance and prevention)
Topic 5: Scheduling and Dispatch
a) preemptive and non-preemptive scheduling strategies
b) analysis of strategies
c) three levels of scheduler (short-term, medium-term, long-term)
Topic 6: Physical and Virtual Memory Management
a) memory management without swapping or paging
b) overlays
c) swapping and partitions
d) pages and segments
e) fetch, placement and replacement policies
f) thrashing and working sets.
Topic 7: I/O and Device Management
a) I/O hardware
b) I/O software
c) I/O buffering;
d) disk I/O
e) clocks
f) terminals.
Topic 8: File Systems and Naming
a) file layout
b) directories
c) naming
d) searching,
e) access and backups
f) basic file organizations
g) blocking and buffering
h) sequential files
i) nonsequential files.
Topic 9: Other optional topics including
a) security and protection
b) communication and networking
c) distributed systems
d) real-time systems
Topic 10: Case Study: UNIX plus other select systems
a) design principles
b) file system
c) process management
d) memory management
7. GUIDELINES/SUGGESTIONS FOR TEACHING METHODS AND STUDENT LEARNING ACTIVITIES:
a) Classroom lectures and discussions.
b) Homework assignments and projects.
c) Lab sessions as required to cover Unix.
8. GUIDELINES/SUGGESTIONS FOR METHODS OF STUDENT ASSESSMENT (STUDENT LEARNING OUTCOMES):
a) Periodic examinations and final examination.
b) Homework problems and programming assignments:
Students will implement or simulate various operating system concepts.
They will also complete projects on a particular operating system, in
order to gain hands-on experience with that system.
9. SUGGESTED READINGS, TEXTS, OBJECTS OF STUDY:
Tanenbaum, Andrew S., 2001, Modern Operating Systems, 2nd edition, Prentice Hall
Glass, Graham, and Ables, King, 2003, UNIX: For Programmers and Users, 3rd edition,
Prentice Hall
10. BIBLIOGRAPHY OF SUPPORTIVE TEXTS AND OTHER MATERIALS:
Silberschatz, A., and Galvin. P., 2004, Operating System Concepts, 7th edition.,
Addison-Wesley.
Stallings, William, 2005, Operating Systems, 5th edition, Prentice Hall.
Galli, Doreen, 2000, Distributed Operating Systems, Concepts and Practice, Prentice Hall
Tanenbaum, Andrew S. and Woodhull, Albert S., 2006, Operating Systems: Design and Implementation, 3rd edition, Prentice Hall
Robbins, Arnold, 1999, Unix in a Nutshell, A Desktop Quick Reference for System V Release 4 and Solaris 7, 3rd edition, O'Reilly
11. PREPARER'S NAME AND DATE:
12. ORIGINAL DEPARTMENTAL APPROVAL DATE: Spring 1996
13. REVISERS' NAME AND DATE: Prof. G. Ndjatou and J. Najarian, March 2005
14. DEPARTMENTAL REVISION APPROVAL DATE: Spring, 2005