OPERATING SYSTEMS - COMP. 304 (1) 2013 SPRING Class Meeting Location ENG Z27 Class Meeting Times TH B2,TU B2 Instructor Office Hours Office Location Office Phone Email Web Address ÖZNUR ÖZKASAP Tue, Thu 15:30-16:30 (or by appointment) ENG 144 1584 email@example.com Number of Credits ECTS Credits Prerequisites Language 3 6 (COMP. 132 and COMP. 303) or consent of the instructor English Assistant TA/RA/Lab Assistant Name Email ADILET KACHKEEV SELİN YILMAZ SENA EFSUN CEBECİ firstname.lastname@example.org SEYILMAZ@KU.EDU.TR email@example.com Office Hours Office Location Course Description Introduction to operating systems concepts, process management, memory management, virtual memory, input-output and device management, file management and file systems, job scheduling, deadlocks, interrupt structures, case studies of operating systems. Course Objectives An operating system is an essential part of any computer system. The purpose of this course is providing a clear understanding of the concepts that underlie operating systems. Fundamental concepts and algorithms that will be covered are based on those used in existing commercial operating systems. The aim is to present these topics in a general setting that is not tied to one particular operating system. Throughout the course, practical aspects that pertain to the most popular operating systems such as Unix/Linux and Windows, and some instructional operating systems will be studied as well. Learning Outcomes Students who complete this course successfully are expected to: - gain extensive knowledge on principles and modules of operating systems - understand key mechanisms in design of operating systems modules - understand process management, concurrent processes and threads, memory management, virtual memory concepts, deadlocks - compare performance of processor scheduling algorithms - produce algorithmic solutions to process synchronization problems - use modern operating system calls such as Linux process and synchronization libraries - practice with operating system concepts such as process management, synchronization, networked processes and file systems Teaching Methods The course duration is 14 weeks and each week there will be two 75 minute lectures. There will be projects and homeworks related to concepts covered in class. Besides, there will be a midterm and a final exam. During class/PS hours, quizzes may be given, in order to help students better understand the material and follow the course attentively. All lecture slides and supplementary material for assignments and projects will be made available on the course web site. Course Contents Session Starting Number Date Topics 04/02/2013 Introduction, operating systems concepts and strategies, multiprogramming, overview: operating system structures Process Management: process concept, concurrent programming and Unix processes, operations on 11/02/2013 processes, process scheduling 18/02/2013 Process Management: cooperating processes, producer-consumer shared-memory solution 25/02/2013 CPU Scheduling: concepts, criteria, CPU scheduling algorithms, algorithm evaluation and performance Process Synchronization: race conditions, critical section problem, solutions, semaphores, busy waiting vs 06/03/2013 blocking, deadlock and starvation 13/03/2013 Process Synchronization: classical problems, monitors, condition variables, synchronization examples 18/03/2013 Thread Management: threads, multithreading models, POSIX Threads API, case studies of operating systems 25/03/2013 Deadlocks: system model, characterization, deadlock prevention, deadlock avoidance, deadlock detection and recovery 01/04/2013 Memory Management: contiguous memory allocation, internal and external fragmentation 15/04/2013 Memory Management: paging, page table structure, segmentation, operating system examples 22/04/2013 Virtual Memory: demand paging, page fault, page replacement algorithms, allocation of frames 29/04/2013 Virtual Memory: thrashing, working set model, other considerations, operating system examples 06/05/2013 Distributed Systems and Networking: network operating systems, client/server model, multithreaded server models, Unix system calls for client/server communication 13/05/2013 I/O Systems: mass storage structure, disk scheduling, file system, protection and security, case studies 2 2 2 3 2 2 2 2 2 2 2 2 2 2 Assessment Methods Type Description Final Grade, % Project Homework Midterm Test Final Exam Individual/Group Participation, attendance and quizzes Analysis 25 15 25 30 Total 100 5 Workload Breakdown Type Lecture Tutorial Assignment Exam Independent Study Other Project Description Problem sessions Hours 37 9 20 5 37 Exam study and quizzes Total 30 39 177 Sources Reference Materials Operating Systems: Internals and Design Principles, 6th edition, William Stallings; Prentice Hall, ISBN-10: 0136006329, 2009. Operating Systems, 3rd edition, Gary Nutt; Pearson/Addison Wesley, ISBN 0-201-77344-9, 2004. Modern Operating Systems, 3rd edition, Andrew S. Tanenbaum; Prentice Hall, ISBN-10: 0-13-600663-9, 2008. Required TextBooks Operating Systems Concepts, 8th edition, Abraham Silberschatz, Peter Baer Galvin, Greg Gagne; Wiley, ISBN 0-470-12872-0, 2010. Other N/A Academic Dishonesty The students taking this course are expected to submit their own work in all homeworks, projects and exams. Academic dishonesty includes using other people's words or ideas without acknowledgement, cheating on exams, projects, and homeworks. In case any of the academic dishonesties are disclosed, disciplinary action and/or reduction of the final letter grade will follow.