| CSC 280
Operating System Principles |
3 cr. |
This course presents the evolution of computer operating systems, operating
system functionalities, and current design and implementation techniques.
Relationships between the operating system, computer architecture, and the user
community are discussed. Three lecture hours per week.
Prerequisite: CSC 260.
Goals:
The aims of this course are:
- CG1: to present a descriptive overview of modern operating systems, their
purposes and design principles;
- CG2: to discuss the most important ingredients, techniques, and algorithms
used in their construction.
Objectives:
Upon completion of this course, the student will have demonstrated
the ability to:
- CO1: summarize the development of operating systems from single-user and batch
processing mainframes to modern multitasking systems;
- CO2: describe the mechanisms of interrupts and Direct Memory Access;
- CO3: describe how a process or task is represented in a modern computer system;
- CO4: differentiate between the concepts of process and thread and describe the
behavior of a multithreaded system;
- CO5: describe the system components, actions, and algorithms involved in
scheduling and managing concurrent processes;
- CO6: describe the concept of deadlock and the common techniques for recognizing,
predicting, avoiding, and recovering from it;
- CO7: describe the common techniques and problems involved in memory management,
including paging and virtual memory;
- CO8: describe the common techniques and problems involved in management of disk storage;
- CO9: describe the common techniques and problems involved in file management.
Topics:
- introduction:
- What is an operating system?
- functions and goals of an operating system
- principal components
- review of relevant topics in computer hardware, architecture and organization
- evolution of operating systems
- resident monitors (single-user systems)
- multiprogramming
- time-sharing
- networks and distributed processing
- multiprocessing
- operating system structures
- system services, system calls
- interrupts and interrupt handling
- kernel of an operating system
- layered structure
- virtual machines
- evaluation of system performance
- protection and security mechanisms
- process management
- the process concept
- representation of processes
- concurrent processes
- CPU scheduling and scheduling algorithms
- multiprocessor scheduling
- process coordination
- classical synchronization problems
- Critical Section Problem, Bounded Buffer Problem,
Readers & Writers Problem, etc.
- synchronization mechanisms
- hardware
- semaphores
- language constructs
- interprocess communication, message systems
- deadlocks
- characterization, detection, prevention, avoidance, recovery
- storage management
- memory management
- swapping
- paging
- segmentation
- virtual memory
- demand paging
- page replacement algorithms
- frame allocation algorithms
- thrashing
- secondary storage management
- disk structure
- allocation methods
- scheduling algorithms
- file management
- file systems
- access methods
- file protection
- distributed systems
- network topologies and types
- coordination and deadlock in distributed systems
- distributed file systems
The focus of the course is on a general discussion of the nature and functionality
of operating systems. There is no extended treatment of specific case studies,
although examples drawn from specific systems are used to illustrate major concepts.
Assignments: Weekly reading assignments in the text and in other
books and journals provide the background for lecture topics. It is assumed
that the reading has been done before the class discussion of the associated material.
Approximately eight written assignments with specific deadlines cover such topics as
development, analysis, and comparison of scheduling and allocation algorithms,
synchronization of concurrent processes, resource allocation graphs, problems in
paging and virtual memory systems, disk scheduling, etc.
Depending on the availability of appropriate hardware and software, some of the
written assignments may be replaced by short programming assignments on the same topics.
Examinations: A mid-term examination and a comprehensive written final
examination are given, as well as a number of short quizzes on specific topics
announced in advance.
The course grade is determined using the following approximate
weights: written assignments - 30%; short quizzes - 20%; midterm examination - 20%;
final examination - 30%;
Bibliography:
- Davis, William S.; Rajkumar, T. J. Operating Systems: A Systematic View.
Fifth Edition. Addison Wesley, 2001.
- Deitel, H. M.; Deitel, P. J.; Choffnes, D. R. Operating Systems.
Third Edition. Pearson Prentice Hall, 2004.
- Nutt, Gary J. Operating Systems: A Modern Perspective. Third Edition.
Addison Wesley, 2004.
- Stallings, William. Operating Systems: Internals and
Design Principles. Fifth Edition. Prentice-Hall, 2005.
- Silberschatz, Abraham; Galvin, Peter B.; Gagne, Greg. Operating System Concepts.
Seventh Edition. John Wiley & Sons, 2005.
- Tannenbaum, Andrew S. Modern Operating Systems. Second Edition.
Prentice Hall, 2001.
- Tannenbaum, Andrew S.; Woodhull, Albert S. Operating Systems.
Design and Implementation. Third Edition.
Pearson Prentice-Hall, 2006.
Salem State Home •
Computer Science Home •
Faculty •
Computer Studies Major •
Flow Sheet
Computer Studies Minor •
Courses •
Course Sequence Diagram •
Computer Laboratories
|