Spring 1998 

Contact Information  Textbooks Course Objectives  Prerequisites
Course Policy Course Format Grade Determination Course Calendar


Contact Information 



Textbooks 


Primary Text:

Supplementary Texts:


Course Objectives: 


The objective of this course is to familiarize you with the fundamental concepts and algorithms that are applicable to a variety of modern operating systems. You will learn how an operating system manages both system resources and asynchronous concurrent events. Topics include:  processes/threads, cpu scheduling,  synchronization, deadlocks, memory management, virtual memory,  file systems, I/O systems, distributed systems.  Emphasis will be placed on the UNIX operating system.


Prerequisites 


The prerequisite courses are CS226 Computer Organization and Architecture and CS232 Data Structures and Analysis of Algorithms. The knowledge you obtained about data structures, in CS232, will help you understand the fairly elaborate database used to record the status of activities being managed by an operating system. An understanding of computer organization, as taught in CS226, is important since hardware resource management is a primary function of an operating system.


Course Policy: 


Attendance at all classes and laboratories is expected, however I understand that a perfect attendance record is difficult to achieve.  If you miss a class you are responsible for getting any assignments that may have been made, or if any work is due you must get it to me prior to the class. All homework is due on the date specified (at the beginning of class)  and no late homework solutions will be accepted (unless you have made prior arrangements with me) - this policy allows me to distribute the homework solutions on the same day you submit your solutions. I expect everyone to take the exams on the scheduled dates, however if you are unable to do so you must make other arrangements with me before the exam is given.  I expect that all assignments, papers and exams to represent individual effort. While the amount of time required of the student to successfully complete this course varies from student to student  plan on spending at least 8-10 hours per week outside of class.


Course Format 


We will meet twice a week, Wednesday and Friday, for lecture and on Monday for a closed lab.  Lab activities will be varied and include, but not limited to,  homework discussion and review,  group and individual projects,  operating system code reviews,  linux installation and configuration,  and computer based exploration.  I really encourage individual and class questions. We will be covering a substantial amount of material each class so I strongly recommend that you read the assigned chapters before the lecture. This preview of the material will help you focus on those areas during the lecture that are not clear to you by asking specific questions. My lecture notes are available and will be used to help deliver a substantial amount of material in a short period of time and to relieve you from having to take lengthy notes.  This syllabus will  be updated weekly to reflect departures from the tentative schedule, as well as to post actual homework assignments. Therefore, I expect that you will consult these WEB pages frequently (once a week). Solutions to all homework problems will be given. If you have any questions after reviewing these solutions please ask them.


Grade Determination: 


All exams are in class and closed book however one page (8.5 x 11) of notes is allowed.

Your final grade will be determined from the weighted average as described above. The average weighted average will be a B/B+ and I will then assign letter grades working up and down from the average.


CS 345 Course Calendar Spring 1998 


(Last Change April 28, 1998)

Week Topics Assignment
1 
 
1/12
M,W  - Course Introduction 
Introduction to Operating Systems 
Computer System Structures 
F - no class snow day
Read Chapters 1-2
2 
 
1/19
M - No Class Holiday 
W - Computer System Structures con't
F - Operating Systems Structures  
- Processes
Read Chapters 2,3
Assignment 1 - Chapters 1 and 2
3 
 
1/26
M - Lab - WEB Exploration and Linux Online Course
W, F - Processes con't 
Read Chapter 4 
Lab 1
4 
 
2/2
M, W - Lab - uCOS
F - CPU Scheduling
Read Chapter 5  
Lab Handout - uCOS
Assignment 2 - Chapter 4 Probs  
 
5 
 
2/9
M - Lab - uCOS
W - CPU Scheduling
F - Lab Discussion and CPU Scheduling
Read Chapters 5  
Assignment 3 - Chapter 5 Probs
Lab - uCOS 1
6 
 
2/16
M - No Class Holiday 
W - Review
F - Lab - uCos
uCOS Listings
Lab - uCOS 2
 
7 
 
2/23
M - Exam Chapters 1-5
W, F - Process Synchronization; 
 
Read Chapter 6 - 6.1-6.3, 6.4 thru p170, 6.5 thru p174, 6.6 thru middle of p180, 6.7 to 1st para p180
8 
 
3/2
M, W - Process Synchronization
F - No Class (makeup was 2/27)
 
Read Linux Handout

 

9 
 
3/9
Spring Break No Classes 
 
 
 
10 
 
3/16
M - Lab Linux Demo
W, F - Memory Management
Read Chapters 8 - 8.1-8.1.1, 8.2-8.5.2.2, 8.5.5, 8.6 
Assignment 4 - Chapter 6 Probs 
 
11 
 
3/23
M - Lab Linux Installation
W - Memory Management
F - Virtual Memory
Read Chapter 9 - 9.1-9.5.4 to top p310, 9.6-9.9 Assignment 5 - Chapter 8 Probs
Lab - Linux 1
12 
 
3/30
M - Lab Linux Administration
W, F - Virtual Memory
Read Chapter 10
Assignment 6 - Chapter 9 Probs 
Lab - Linux 2
13 
 
4/6
M, W - File System Interface
F -  Lab Linux Administration
Read Chapter 10
Assignment 7 - Chapters 10 Probs
14 
 
4/13
M - Review
W - Exam 2 Chapters 6,8,9
F (double class) - File Systems Interface (UNIX)
F - Lab (second half of class)
Read Unix Handout
Lab - Linux 3

 

15 

4/20 

M - No Class Holiday 
W - File System Implementation
F - No Class (makeup 4/13)
Read Chapter 11  

 
16 

4/27

5/4
 

M, W - File System Implemenation 
F - No Class (see 5/4)


M - Optional Question Answering Session
Read FAT File System Handout

 

17 
 
5/6-5/12
Final Exam
May 6th 1-4pm
Week Topics Assignment