Syllabus CSCI 405 Operating Systems Fall 2018 1.0 General Information Class Time: Monday/Wednesday/Friday 11:00 AM - 11:50 AM Class Location: 317 Thompson Instructor: Dr. Deepti Joshi; Office: 224 Thompson; Email: djoshi@citadel.edu Instructor Office Hours: MWF, 1:00 PM 2:30 PM 2.0 Course Objectives This course aims to o Present the essential services provided by an operating systems o Discuss various ways of structuring an operating system and explain how operating systems are installed and customized and how they boot o Describe various features of processes, including scheduling, creation and termination and explore inter-process communications using shared memory and message passing o Discuss API for Pthreads, explore strategies for thread management, and examine issues related to multithreaded programming. o Explain race conditions and critical section problem and how it can be solved with semaphores, and discuss three classical process synchronization problems. o Describe various CPU scheduling algorithms and discuss evaluation criteria. o Discuss formal definition of deadlocks and present different methods for deadlock prevention and avoidance. o Explore various techniques of memory allocation and discuss memory protection mechanisms provided by an OS o Explain the concepts of demand paging, page replacement algorithms, allocation of frames and explore how kernel memory is managed o Describe the physical structure of secondary storage devices, evaluate disk scheduling algorithms, and discuss OS services for mass storage, including RAID. o Explain functions and interfaces of file systems, discuss file access methods, describe directory structure and explore file system protection. o Describe implementation of file system and directory structure and explain block allocation algorithms o Explore structure of I/O subsystem and discuss principles and complexities of I/O hardware o Discuss goals and principles of protection in a modern OS, explain protection domain combined with access control list / matrix for protection, and examine capability based protection o Discuss security threats and attacks in an OS, explain encryption, authentication, discuss defense mechanisms and hardening of an OS. o Explore history and benefits of virtual machine, discuss various virtual machine technologies.
o o Explain high level overview of distributed system and networks and protocols that are used in distributed system. Explain timing requirements of real time OS, discuss different characteristics and security issues of real time OS. 3.0 Course Outcomes Upon successful completion of this course, a student will be able to o Be able to identify the major concepts in modern operating systems and the basic security issues in OS design and implementation (how the first principles of security apply to operating systems). o Have an understanding of operating systems theory and implementation. o Understand OS internals to the level that they can design and implement significant architectural changes to an existing OS. o Be able to differentiate between privileged and non-privileged states o Be able to demonstrate an understanding of the concepts of process control and scheduling algorithms o Be able to explain the concepts of mutual exclusion, deadlock, memory management, virtual memory, file management, and distributed processing o Be able to analyze the mechanisms used to support protection and security of resource o Be able to describe the specific services associated with networking and distributed operating systems. 4.0 Course Material or Textbook: Operating Systems Concepts, Silberschatz, Galvin & Gagne, John Wiley & Sons, 10 th Edition Operating System Concepts 10e EPUB Student Package ISBN: 978-1-119-12748-2 5.0 Required Work Projects You will be expected to code in the C Programming language. Each project should be completed before the due date. For every 24 hours late, you will be deducted 10% of the grade of the project. Any project that is more than 5 days late will not be evaluated. A project that does not meet the specifications will receive an automatic deduction 50% of the grade. The Linux virtual machine (macs.citadel.edu) can be used for the programming projects. Optionally, download one on your own machines. If you have a Mac, you do not need a Linus Virtual Machine to code in C. Quizzes There will be a quiz at the end of each chapter.
Midterm Examinations There will be two Midterm Exams during the semester. Missing an examination without a previously approved excuse will result in a grade of zero for that examination. Makeup examinations are never available. Final Examination The Final Examination is comprehensive. No Final Examination can be given early, except as required by The Citadel Policy. 6.0 Course Policies Class Attendance and Discussion: It is advised that students attend all lectures. Everyone in the class is expected to participate in the class discussion. E-mail: Any announcement will be sent through email. Class emails are sent to your official email address (assigned by The Citadel). You are responsible for making sure that you are receiving class e-mails. It is your responsibility to have your official email account working properly and forwarding to the location where you read emails. Webpage: CitLearn will be used as the course webpage where lecture notes, assignments and grades will be posted. Grading: There are four components to the course grade. They are weighted as follows. Component Percent Midterm 25 Final 25 Projects 30 Quizzes 20 The grading scale will be no higher than the following. It may be lower at the discretion of the instructor. Grade Percentage A 90+ B 80-89 C 70-79 D 60-69 F Otherwise
Grading Policies If you have a question about the grading of a project or a quiz, please see the instructor during his office hours. All disagreements about the grading of projects or quizzes must be brought to the attention of the instructor within one week of when the item was returned. If there is a dispute about the grading of an examination problem, you may stay after the class the day the exams are returned to discuss it with the instructor. If you cannot stay at this time, return the paper to the instructor at the end of class and visit with the instructor during his office hours. ONCE AN EXAM HAS BEEN REMOVED FROM THE CLASSROOM AFTER IT HAS BEEN RETURNED, THE GRADE IS FINAL AND WILL NOT BE CHANGED, EVEN IF IT IS FOUND TO BE IN ERROR.
Tentative Schedule Monday Wednesday Friday Aug 20 First Day of Class Chapter 1 Introduction Chapter 1 Introduction Aug 27 Chapter 2 OS Structures Chapter 2 OS Structures Chapter 2 OS Structures Sep 3 Chapter 3 Processes Chapter 3 Processes Chapter 3 Processes Sep 10 Chapter 4 Threads and Chapter 4 Threads and Chapter 4 Threads and Sep 17 Sep 24 Review / Project Test 1 Oct 1 Chapter 6 Chapter 6 Synchronization Chapter 6 Synchronization Tools Tools Synchronization Tools Oct 8 Chapter 8 Deadlocks Chapter 8 Deadlocks Chapter 8 Deadlocks Oct 15 Chapter 9 Main No Class Leadership Day Chapter 9 Main Oct 22 Chapter 9 Main Chapter 10 Virtual Chapter 10 Virtual Oct 29 Chapter 10 Virtual Chapter 10 Virtual Chapter 11 Mass Storage Structure Nov 5 Chapter 11 Mass Storage Structure Chapter 12 I/O Systems Chapter 12 I/O Systems Nov 12 Chapter 12 I/O Systems Test 2 Project Nov 19 THANKSGIVING BREAK Nov 26 Chapter 13 File System Chapter 13 File System Chapter 13 File System Dec 3 Review Last Day of Class/ Review