CPS 346 - John Loomis

advertisement
CPS 346 Operating Systems I
Required course
Course Description (2009 Bulletin)
Semaphores, conditions, monitors, and kernels. Concurrent programming, interrupts,
memory, and process management. Design and implementation of multithreaded and
distributed system components using concurrent languages. (3 Sem. hrs.)
Prerequisite: ECE 314 and CPS 350
Class Schedule: Fall: three 50-minute periods, Spring: two 75-minute periods per week.
Textbook
Required: [OSCJ] A. Silberschatz, P.B. Galvin, & G. Gagne (2007). Operating System
Concepts with Java (7th ed.). John Wiley and Sons, Inc. ISBN: 978-0-471-76907-1.
Recommended: [CPL] B.W. Kernighan & D.M. Ritchie (1988). The C Programming
Language (2nd ed.). Upper Saddle River, NJ: Prentice Hall. ISBN: 0-13-110362-8.
[JPL] K. Arnold, J. Gosling, & D. Holmes (2005). The Java Programming Language (4th
ed.). Reading, MA: Addison Wesley. ISBN: 0321349806.
[UPE] B.W. Kernighan & R. Pike (1984). The UNIX Programming Environment (2nd
ed.). Upper Saddle River, NJ: Prentice Hall. ISBN: 0-13-937681-X.
[USP] K.A. Robbins & S. Robbins (2003). UNIX Systems Programming: Concurrency,
Communication, and Threads (2nd ed.). Upper Saddle River, NJ: Prentice Hall.
Class Website
(Fall 2009): http://academic.udayton.edu/SaverioPerugini/courses/Fall2009/cps346/
Engineering Tools
UNIX account (Linux or BSD) with all associated development tools and utilities.
Goals
Establish an understanding of operating system internals such as process creation and
management, scheduling, and memory management. Establish an understanding of
concurrent programming and synchronization. Introduce the fundamentals of distributed
systems and computer security.
Topics
1. Introduction to operating systems & the UNIX & C programming environment
2. Processes & threads ([OSCJ] Ch 3-4)
3. Scheduling ([OSCJ] Ch 5)
4. Synchronization ([OSCJ] Ch 6)
5.
6.
7.
8.
9.
Deadlock ([OSCJ] Ch 7)
Memory Management ([OSCJ] Ch 8)
Virtual Memory ([OSCJ] Ch 9)
Computer security ([OSCJ] Ch 14-15) as time permits
Distributed systems ([OSCJ] Ch 16) as time permits
Assessment
Homework (19%), Projects (30%), Exams (30%), Final (21%)
Relevant ABET Program Outcomes
a ability to apply knowledge of mathematics, science and engineering.
b ability to design and conduct experiments, as well as to analyze and interpret data.
ability to design a system, component, or process to meet desired needs.
c
ability to identify, formulate, and solve engineering problems.
e
k able to use the techniques, skills, and modern engineering tools
Course Learning Outcomes
1. Understand operating system internals such as process creation and management,
process scheduling, and memory management (a, e, k).
2. Have a proficiency in UNIX and C as an operating systems programming
language/environment (a, c, e, k).
3. Know UNIX internals, included how to use the UNIX kernel system call interface
within C programs (a, b, c, e, k)
4. Be able to develop (deadlock-free, starvation-free) concurrent programs and multithreaded applications as well as synchronize the control therein (a, e).
Prepared by: Saverio Perugini, Ph.D., (CPS)
Date: 14 December 2009
Download