State University of New York at Oswego

  1. COURSE NUMBER AND CREDIT

    CSC 443 - 3 Semester Hours

  2. COURSE TITLE

    Operating Systems

  3. COURSE DESCRIPTION

    An analysis of the concepts and functions of operating systems. The course will include a survey of operating systems now in existence as well as methodologies for the selection, evaluation, adaptation, and implementation of an operating system.

    Software Engineering Curriculum Justification: This course provides in-depth content-oriented coverage of platform-level software design, evolution, monitoring, and project management.

  4. PREREQUISITES

    CSC 222, CSC 241 and at least one upper-level programming course.

  5. COURSE JUSTIFICATION

    An understanding of operating system concepts and functions is basic to the creation and installation of software components. An introductory course is a necessary element of any degree program with a focus in software engineering.

  6. COURSE OBJECTIVES

    Upon successful completion of this course, students will be able to:

    1. Understand some of the protocols and mechanisms of operating system design.
    2. Understand the requirements necessary for the interoperability of software and hardware subsystems.
    3. Understand the problems imposed by these requirements.
    4. Weigh the relative merits of existing and theoretical solutions to these problems.
    5. Implement and/or simulate basic components of an operating system.
    6. Apply programming and analytic techniques from core computer science and math courses in developing operating system components.

  7. COURSE OUTLINE

    1. Introductory Concepts
      1. Hardware
        1. CPU
        2. Memory
        3. Storage
      2. Software
        1. System
        2. Application
        3. Utility
      3. Components
        1. Hardware
        2. Software
    2. Process Management
      1. Processes
      2. Threads
      3. Scheduling
      4. Synchronization
    3. Storage
      1. Memory Management
      2. File Systems
      3. I/O
    4. Distributed Systems
      1. Networks
      2. Communication
      3. Coordination
    5. Security
      1. Access Rights
      2. Authentication
      3. Encryption
    6. Contemporary Operating System Examples

  8. METHODS OF INSTRUCTION

    1. Lectures.
    2. Discussion.
    3. Student presentations.

  9. COURSE REQUIREMENTS

    1. Presentations.
    2. Participation.
    3. Programming projects, including those requiring a mapping of theory into design, implementation, and evaluation.

  10. MEANS OF EVALUATION

    1. Programming projects.
    2. Papers.
    3. Course participation and presentations.
    4. Examinations.

  11. RESOURCES

    Only readily available computer and software systems will be needed.

  12. BIBLIOGRAPHY

    D. Comer. Operating System Design: The Xinu Approach. Prentice-Hall, Englewood Cliffs, NJ, 1984.

    D. Comer. Internetworking with TCP/7P, Volume I, Second Edition. Prentice-Hall, Englewood Cliffs, NJ, 1991.

    D. Comer and D. L. Stevens. Internetworking with TCP17P, Volume II. Prentice-Hall, Englewood Cliffs, NJ, 1991.

    H. M. Deitel. An Introduction to Operating Systems, Second Edition. Addison-Wesley, Reading, MA, 1990.

    R. C. Holt. Concurrent Euclid, the UNIX System, and Tunis . Addison-Wesley, Reading, MA, 1983.

    B. W. Kernighan and R. Pike. The UNIX Programming Environment . Prentice-Hall, Englewood Cliffs, NJ, 1984.

    B. W. Kernighan and D. M. Ritchie. The C Programming Language, Second Edition. Prentice-Hall, Englewood Cliffs, NJ, 1988.

    D. E. Knuth. The Art of Computer Programming, Volume 1: Fundamental Algorithms, Second Edition. Addison-Wesley, Reading, MA, 1973.

    S. Kleiman, D. Shah, and B. Smaalders. Programming with Threads. Sunsoft Press, Upper Saddle River, NJ, 1996.

    D. Lea. Concurrent Programming in Java. Addison-Wesley, Reading, MA, 1997.

    A. J. Menezes, P. C. van Oorschot, and S. A. Vanstone. Handbook of Applied Cryptography. CRC Press, 1997.

    S. Mullender (Editor). Distributed Systems, Second Edition. ACM Press, New York, NY, 1993.

    J. Richter. Advanced Windows, Third Edition. Microsoft Press, Redmond, WA, 1997.

    W. Stallings. Operating Systems , Fourth Edition. Prentice-Hall, Upper Saddle River, NJ, 2000.

    W.R. Stevens. Unix Network Programming: Interprocess Communications, Volume 2 , Second Edition. Prentice-Hall, Upper Saddle River, NJ, 1998.

    W.R. Stevens. Unix Network Programming: Networking APIs: Sockets and XTI, Volume 1 , Second Edition. Prentice-Hall, Upper Saddle River, NJ, 1997.

    A. Tanenbaum. Computer Networks, Third Edition. Prentice-Hall, Upper Saddle River, NJ, 1996.

    A. S. Tanenbaum and M. van Steen. Distributed Systems. Prentice-Hall, Upper Saddle River, NJ, 2002.

    A. S. Tanenbaum. Modern Operating Systems, Second Edition. Prentice-Hall, Englewood Cliffs, NJ, 2001.

    A. S. Tanenbaum. Structured Computer Organization, Third Edition. Prentice-Hall, Englewood Cliffs, NJ, 1990.

  13. SIGNATURES


  14. Elaine Wenderholm, Computer Science Curriculum Committee Chair Date

    Rameen Mohammadi, Computer Science Department Chair Date

    Undergraduate Curriculum Committee Chair Date


Document:
URL:
Last Update: