2nd Term 2017 Faculty of Computing and Information Technology Computer Science Department
CPCS-361 Operating System Syllabus
The objective of this course is to provide a general overview of operating systems concepts and recent methodologies and techniques used in the field and their trades-offs, with various examples from the contemporary used systems. Topics include the basic structure of an operating system, its interaction with the hardware, software, and users, and the services it provides. The course illustrates different algorithms and techniques used in controlling, managing, and allocating various computer resources, such as CPU, memory, storage and I/O devices. It demonstrates the tuning of the operating system for maximizing the utilization and increasing the performance of the computer system.
Teacher Information
Dr. Dalal Zahran Room: S 116
E-mail: [email protected]
Office hours: Sun & Tues (9-11) – Monday (11-12)
Class Schedule
Sunday, Tuesday & Thursday from 8-9 Lab: I. Naga (Monday 8 – 9.5)
Textbook
Abraham Silberschatz, Greg Gagne, Peter B. Galvin, "Operating System Concepts", Wiley; 7
th edition
Student Assessment
Assessment Date Time Grade %
(BB) Grade % (ODUS)
Quiz 1 7 March
5 5
Exam 1 26 March
15 15
Quiz 2 Sun 7 May
5 5
Exam 2 Sun 21 May
15 15
Final Exam Assigned by College
30 30
Lab Check Lab Instructor
20 20
Project 18 May -
10 10
Topics Coverage Durations
Weeks Topic Chapter
1 Introduction 1.1, 1.2, 1.3, 1.4, 1.5, 1.8
1 Operating System Structures 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.9, 2.10
1 Processes 3.1, 3.2, 3.3, 3.4
1 Threads 4.1, 4.2
1 CPU Scheduling 5.1, 5.2, 5.3, 5.7
1 Process Synchronization 6.1, 6.2, 6.3, 6.4, 6.5, 6.6
1 Deadlocks 7.1, 7.2, 7.3, 7.4
1 Main Memory 8.1, 8.2, 8.3, 8.4, 8.6
1 Virtual Memory 9.1, 9.2, 9.4, 9.5, 9.6
1 File-System Interface 10.1, 10.2, 10.3, 10.4, 10.6 2 Mass-Storage Structure 12.1, 12.2, 12.4, 12.5, 12.6
Course Learning Outcomes (CLO)
By completion of the course the students should be able to:
1. Define operating system and list its basic components.
2. Describe computer system structure and interaction with the operating system.
3. Explain various operating system related concepts such as interrupts, storage structure, multiprogramming, multitasking, and multiprocessing.
4. Describe the services provided by operating system
5. Explain operating system structures, design and implementation trade-offs
6. *Explain the process concept and describe various features of processes: scheduling, creation, termination, and communication
7. Identify the notion of a thread and discuss issues related to multithreaded programming 8. *Explain CPU scheduling and discuss its criteria and analyze various CPU-scheduling
algorithms
9. *Explain the critical-section problem and synchronization and demonstrate its software and hardware solutions
10. Explain deadlocks and the methods and algorithms of handling deadlocks
11. *Explain various ways of memory organization and analyze memory-management techniques and their features and limitations
12. *Explain the benefits of virtual memory system and explain its algorithms
13. Explain the file concept and the function of file systems, file operations, directory structures, and protection
14. Explain the physical structure of mass-storage devices, analyze mass-storage management algorithms and services provided to mass storage
15. Explain the structure of an operating system’s I/O subsystem, principles of I/O hardware, and provide performance aspects of I/O hardware and software.