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