COMPUTER SCIENCE 485

COMPUTER OPERATING SYSTEMS (3)

(EFFECTIVE SPRING 2002)

PREREQUISITE:         CS 320 and CS 325.

                                                   

CATALOG

DESCRIPTION:          A study of operating systems, processing of I/O and interrupt service, buffering, spooling and memory management services, security and error protection, systems accounting and resource allocation, multiprogramming and multi-processing, interprocess communication, includes the study and use of several operating systems.  

                                                          

OBJECTIVES: The student will:                                                    

1. Develop both a theoretical and a practical understanding of operating systems and the machines they drive.                       

2. Review of architectural features such as cache storage and pipelined processors.                                                

3. Understand the problems that operating systems solve and how to utilize operating systems features.                                  

4. Obtain a working understanding of several widely used operating systems through laboratory exercises using Sun Solaris, Linux and Windows machines.                                                             

5. Understand the notions of processes, process state transitions, interrupts, context switching, asynchronism, mutual exclusion, P and V operations and semaphores, operating systems structure, privileged states, monitors, and deadlock.                                      

6. Understand the software algorithms and hardware enhancements necessary for systems to operate on processes.                       

7. Understand storage management of real storage and virtual storage systems ranging in scope from single user to multiprogramming and multiprocessing systems.

8. Be familiar with storage allocation algorithms, paging strategies for fixed page or segmented virtual storage and the working set theory of program behavior.                                           

9. Understand processor management and multiprocessing, auxiliary storage management optimization schemes, blocking and buffering of file systems and system performance measurements.

10. Understand distributed computing networks, job and data migration, and security, privacy, encryption and authentication.  

11. Understand and be able to use the basic Unix utilities such as head, tail, grep, cut and sort.

 

TEXT:  Operating Systems - Design and Implementation Second Edition, Andrew S. Tanenbaum, 1997, 1987.  Prentice - Hall.  ISBN 0-13-638677-6.                         

 

 

OUTLINE:

BOOK

Subject

Periods

Chapter 1

Introduction

3

 

Review of Unix commands

3

 

Review of C

2

 

First Programming Assignment (Mini-Shell)

 

Chapter 2

Processes

4

Appendix A

(part) MINIX Source code

2

 

First Quiz

1

 

Introduction to Linux

3

Chapter 3

Input/Output

4

Appendix A

(part) MINIX Source Code

4

 

First Hour Exam

1

 

More Linux

1

Chapter 4

Memory Management

5

Appendix A

(part)MINIX Source Code

3

 

Second Quiz

1

Chapter 5

File System

5

 

Programming Assignment (Directory Lister)

 

 

More Linux

3

 

Second Hour Exam

1

 

 

46

 

                                                           

                                                        

                                                                                                                                        

Students will be expected to write several programs that make Unix system calls utilizing each of the major features of the system. Each student will also be expected to do an individual programming project to either write a simple utility for Unix or to enhance or adapt the Unix system itself.