Department of Computer Science
Course: CSCI-540,
Multi-User Operating Systems
Prerequisite: CSCI-340,
Operating Systems
Instructor: Ralph Hilzer Office:
O’Connell 215
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
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: Complete one of the
following project chapters:
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 multi-user 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 the project or
any exam will at least result in failure of the course.
Course Breakdown: Midterm 20%
Project 30%
Final Exam 40%