CSC 306 – Introduction to Operating Systems (3 credits – 3 contact

Jan 13, 2014 - Computer Systems Architecture (CSC 391): overview of advanced ... Molay, B. (2002) Understanding Unix/Linux Programming: A Guide to ...
188KB taille 1 téléchargements 32 vues
THE CATHOLIC UNIVERSITY OF AMERICA CSC 306 – Introduction to Operating Systems (3 credits – 3 contact hours) Course Description: Intended for computer science students and others who want an in-depth introduction to the fundamental principles, components, and design of modern operating systems, with a focus on the UNIX platform. Topics include: the evolution and major types of O/S, system calls, processes and threads, concurrency and deadlocks, virtual and real memory management, CPU scheduling, input/output and disk management, file system, performance issues, and possible case studies. Prerequisites: • Computer Organization and Architecture (CSC 390): introduction to digital logic design including combinational and sequential circuits; synthesis of memory and computation operations; illustrations of the organization of major hardware components of a digital computer OR • Computer Systems Architecture (CSC 391): overview of advanced architectures, microprocessor structure, I/O subsystems, multiprocessor architecture, intra-system communication, buses, caches, memory hierarchies, addressing modes, microprogramming, parallelism, and pipelining. Textbooks: • Stallings, W. (2011) Operating Systems: Internals and Design Principles (7th Edition), Prentice Hall (ISBN: 978-0132309981) • Molay, B. (2002) Understanding Unix/Linux Programming: A Guide to Theory and Practice, Prentice Hall (ISBN: 978-0130083968) Topics Covered: 1. Introduction to O/S o Role of an O/S o O/S History and Features o Types of O/S o Major O/S Components o System Calls o O/S Software Architecture o Examples of O/S 2. Processes o Description and Control o Threads o Concurrency o Deadlocks & Starvation

3. Memory Management o Partitioning o Paging o Segmentation o Virtual Memory o Page Replacement

5. Input/Output o I/O Devices o I/O Software o Disk Scheduling o Disk Caching o Examples of I/O

4. CPU Scheduling o Scheduling Algorithms o Performance Evaluation o Multiprocessor Schedulg o Thread Scheduling o Real-Time Scheduling o Ex. of CPU Scheduling

6. File System o File Description o File Directories o File Storage Implementation o Ex. of File Systems

Contributions to the Professional Component: No code developer, software engineer, or scientific programmer can be ignorant of the operating system that controls their computer and underlies all the applications running on it. The engineering science component of this course is addressed in the theoretical aspects of algorithmic policy simulation, performance analysis, and deadlock detection. The engineering design component is covered through the implementation of various components of a modern operating system. Students study and evaluate designs as well as design and implement their own solutions to operating system problems.

Relationship of the course to Program Objectives: This course supports several computer science educational objectives: 1. It provides students with the fundamentals of computer concepts, which is important for many successful professional career and/or graduate studies 2. It requires students to apply creative and critical reasoning to solve challenging problems 3. It provides students with knowledge and skill grounded in computer science to solve practical computational and software design problems Expected Learning Outcomes: Upon completion of the course, students should: • • • • •

CO-1: Understand the core concepts of computer operating systems CO-2: Be reasonably proficient at manipulating those concepts through systems programming CO-3: Be able to formulate and implement computer algorithms related to operating system design mechanisms CO-4: Be able to evaluate the outcome of those algorithms as they are implemented CO-5: Be able to understand the software design of an operating system

Course Outcome/ABET Outcome Matrix: The Matrix below shows how this course contributes covers the 11 ABET Outcomes.

CO-1 CO-2 CO-3 CO-4 CO-5

ABET 01 X X X

ABET ABET ABET ABET ABET ABET ABET 02 03 04 05 06 07 08 X X X X X X X X

ABET 09 X X X X

ABET 10 X X X

ABET 11 X X X

Outcome Assessment: The course employs the following mechanisms to assess the above learning outcomes: 1. Homework is assigned and graded weekly or biweekly to assess the level of student understanding of topics covered during the week. The learning outcomes are also exhibited through the results of the several exams given during the semester and the final examination. 2. The instructor frequently asks students if they understand the lectures. Process of Improvement: The instructor continuously tries to improve the course as described as follows: 1. The instructor frequently evaluates the student performance on homework and exams, and reviews the suggestions made by students during the semester. Then the instructor takes proper steps (such as different approaches to difficult material) to correct problems. 2. The instructor is available after class, during office hours, by appointment, and by email for any additional discussion. 3. The Chair provides assessment of the course reviews to all instructors, and one-on-one meetings are scheduled as deemed necessary. Course Supervisor: Dr. René Doursat Date of Last Revision: January 13, 2014