Cleveland State University Department of Electrical and Computer Engineering

advertisement
Cleveland State University
Department of Electrical and Computer Engineering
CIS 345: Operating System Principles
Catalog Description:
CIS 345 Operating System Principles (4-0-4)
Pre-requisite: CIS 340
In this course, we study the basic concepts of computer systems, which are
common in most modern computers. In particular, the class focuses on
processes (management, scheduling, sychronization), memory
management, I/O management and file systems. The successful students
are able to understand and use the above basic concepts to implement the
system programming assignments via C/C++ programs.
Textbook:
1. Modern Operating Systems, 4/E Andrew S. Tanenbaum Publisher:
Prentice Hall. ISBN: 0-13-359162-X
2. LINUX for Programmers and Users Graham Glass and King Ables
Publisher: Prentice hall. ISBN: 0-13-185748-7
Coordinator:
Dr. Haodong Wang
Phone: 216-687-4730
Email: hwang@cis.csuohio.edu
Expected Outcomes:
At the end of this course, a student will be able:
1. Have acquired good programming skills, and understand good
programming practices;
2. Have sound understanding of the principle of an operating system;
3. Have basic concepts used in operating system, including process,
synchronization, memory management, and etc.;
4. Be able to writing system level programs using system calls;
5. Be able to solve practical problems using multi-thread programming.
Fulfillment of CS Program Objectives, Outcomes and Characteristics:
Objectives:
1. Graduates will apply the concepts of the discipline including analysis, design,
and implementation of information and computing systems.
2. Graduates of will be employed in the computing profession, and will be
engaged in life-long learning, understanding, and applying new ideas and
technologies as the field evolves.
3. Graduates will be informed and involved members of their communities, and
responsible engineering and computing professionals.
Outcomes:
1) An ability to apply knowledge of computing and mathematics appropriate to
the program’s student outcomes and to the discipline
2) An ability to analyze a problem, and identify and define the computing
requirements appropriate to its solution
3) An ability to function effectively on teams to accomplish a common goal
6) An ability to apply mathematical foundations, algorithmic principles, and
computer science theory in the modeling and design of computer-based
systems in a way that demonstrates comprehension of the tradeoffs involved in
design choices.
7) An ability to apply design and development principles in the construction of
software systems of varying complexity.
Characteristics:
(b) An ability to analyze a problem, and identify and define the computing
requirements appropriate to its solution
(c) An ability to design, implement, and evaluate a computer-based system,
process, component, or program to meet desired needs
(d) An ability to function effectively on teams to accomplish a common goal
(e) An understanding of professional, ethical, legal, security and social issues
and responsibilities
(i) An ability to use current techniques, skills, and tools necessary for
computing practice.
(k) An ability to apply design and development principles in the construction of
software systems of varying complexity.
Contribution of Course to Meeting the Professional Component:
Math & Basic Science: 1 credit;
Engineering Topics: 2 credits;
General Education: 0 credit
Prerequisites by Topic:
System Programming
Topics:
1. Class introduction, OS Basics and OS History
3
2. OS & Architecture, Linux and Shells
3
3. System programming, Process and Thread
4
4. CPU Scheduling, Event-driven Programming
3
5. Synchronization I, II, III
5
6. Deadlocks
5
7. Memory Management
3
8. Paging, Page Replacement Algorithms
5
9. Memory Management Design Issues
2
10. File System: Files Directories
2
11. File System Design and Management, File System Design
Issue and Examples
12. Case Study: Android. Tanenbaum
4
13. Final exam
3
3
Total
Computer Usage:
Linux
45
Download