Department of Computer Science

California State University, Chico

Chico, California 95929-0410

 

 

Course: CSCI-640, Operating Systems

Prerequisite: CSCI-340, Operating Systems

Instructor: Ralph Hilzer                                                                   Office: O’Connell 215    

Units: 3                                                                                                 Tel: 530-898-4010

E-Mail: rhilzer@csuchico.edu                                                                              Fax: 530-898-5995

Website: http://www.ecst.csuchico.edu/~hilzer   Office Hours: Contact Dept. Secretary at 530-898-6442

 

Text: Unix Systems Programming, Steven and Kay Robbins, Prentice Hall, ISBN 0-13-042411-0

 

Text Website: http://usp.cs.utsa.edu/usp

 

Course Description:     An in-depth study of operating systems concepts.  Topics include processes, threads, virtual memory, file systems, process synchronization, distributed computing, protection, and network protocols.  Chapters 1 through 18 form the basis of the course with other topics selected by the instructor.

 

Project:                     Three projects will be assigned by the instructor based on information contained in the following project chapters of the book:

 

                                  Chapter 11 Cracking Shells,

                                  Chapter 16 Producer/Consumer Synchronization,

                                  Chapter 17 Not Too Parallel Virtual Machine,

                                  Chapter 19 WWW Redirection,

                                  Chapter 21 Internet Radio,

                                  Chapter 22 Server Performance

 

Course Objectives:  1.    Create awareness of typical operating systems structures.

                               2.    Create awareness of concurrent programming issues.

                               3.    Create awareness of network protocols and network programming.

 

Course Outcomes:   Students will -

                               1.    Create and coordinate concurrent processes using fork and exec system calls.

                               2.    Use signals to selectively invoke interrupt handling routines.

                               3.    Use file descriptors and file pointers to selectively direct program output.

                               4.    Invoke job control in a UNIX shell.

                               5.    Use POSIX and System V Semaphores to synchronize processes and threads.

                               6.    Create threads and change thread attributes.

                               7.    Use mutex and condition variables to synchronize threads.

                               8.    Create client-server network applications using sockets, TLI, and STREAMS.

 

Relationship with Program Objectives:

·        Problem Analysis and Solution Design:                        Significant

·        Oral and Written Communication:        Some

·        Social and Ethical Issues:                      Some

·        Applicability to Future Endeavors:       Significant

·         

Relationship with Program Outcomes:

·        Outcome A: An ability to apply knowledge of math, science, and

                        engineering.

·        Outcome E: An ability to identify, formulate, and solve computing

                         problems.

·        Outcome F: An understanding of professional and ethical

                        responsibilities.

·        Outcome H: The broad education necessary to understand the impact

                        of computing solutions in a global and societal context.

·        Outcome K: An ability to use the techniques, skills, and modern

                        computing tools necessary for computing practice.

 

Policy:  Cheating on any exam or project will at least result in failure of the course.

 

Course Breakdown:    Midterm             20%

                                  Project 1            10%

                                  Project 2            10%

                                  Project 3            20%

                                  Final Exam        40%

                                  Total                100%