Cpr E 308: Operating Systems, Principles and Practice
Spring 2006

MWF 9.00-9.50, Room Carver 305  


 

Instructor

Srikanta Tirthapura
snt@iastate.edu
(515) 294-3546
Office: 3212 Coover

 

Teaching Assistants
 

Bryan Ellingson

Irsan Halim

Sun Song

bryanell@iastate.edu

ihalim@iastate.edu

sunsong@iastate.edu

 


Contents

Syllabus

Class Schedule

Labs

Projects

Office Hours

Homework

Exams

Links

WebCT

Quiz


Syllabus

Aim:
This course is an introduction to the basic principles underlying current operating systems. Operating systems have evolved over a few decades and have led to a few well accepted abstractions. We will study those concepts and how they fit together: the purpose of an operating system, processes and threads, synchronization between multiple processes, process scheduling, deadlocks, the address space concept, virtual memory, file systems, I/O systems, security, and the basics of networking. The corresponding (weekly) labs cover the "practice" portion of the class, where the students are required to write programs which interact with the operating system, and implement simplified versions of some of the OS modules. The labs require a knowledge of the C programming language and a working knowledge of the Linux operating system, which is introduced in the first lab.

Lectures:
Attendance in the lectures is compulsory, and we welcome active participation.

Textbook:
The required text for the course is Modern Operating Systems by Andrew S. Tanenbaum, Second Edition, (ISBN 0-13-031358-0).

Labs:

1.      Attendance is compulsory (there is credit for attendance)

2.      Lab reports are due the week after the lab, unless otherwise stated.

3.      There will be no lab during the first week of classes.

Grading:
The grading breakup will be as follows (Grades can be checked using WebCT.):

1.      Weekly labs + Programming Projects: 40%

2.      The homeworks for the class  will not be graded, but there will  in-class quizzes based on each homework, and the quizzes make up 10 %

3.      Mid term exam: 20%

4.      Final Exam: 30%
 

Academic Integrity
All your work (including the labs) should be done individually unless otherwise specified. You are not allowed to use work done by others, or obtain the answers directly in any form (such as from the web). If you have any questions about what is allowed/not allowed, please contact the instructor or the TAs. Any cases of cheating will be dealt with the strictest possible measures allowed by the university, please refer to the university policies on academic dishonesty.
 

Disability:
If you have a documented disability and anticipate needing accommodations in this course, please make arrangements to meet with  the instructor soon. Please request that a Disability Resources staff send a SAAR form verifying your disability and specifying the accommodations you will need.
 



Office hours

 

Hours

Location

Tirthapura

10-11 AM, Wednesday

3212 Coover

Sun Song

 4:30-5:30 PM, Friday

 Cubicle 27, Village F, ALC, Coover

Irsan Halim

 1:00-2:00 PM, Wednesday

 Cubicle 9,  Village C, ALC, Coover.

 


Class Schedule

     Please go to here for  Class Schedule .


Labs

Laboratory Policies

·         Attendance - You are expected to attend all laboratory sessions. Absence will not be grounds for delaying the submission of a laboratory report.  Attendance will account for 10% of each laboratory report grade.  Each report will be normalized to 90% of the possible points with attendance making up the final 10% of the lab report grade.  Attendance will only be taken within the first 30 minutes of lab.  If you do not show up within the first 30 minutes of lab you will be counted as absent for that lab.
 

·         Email - You are expected to read your ISU email for laboratory updates.
 

·         Feel free to ask questions of your friendly TAs.  However, you will be expected to put in a fair amount of time struggling on your own as well. We want to encourage development and debugging skills, so try not to get frustrated when we won't tell you exactly how to fix something or what to do next. As long as you make steady progress during the lab, the TAs will try to help you stay on track. Also, please do not email source code to your TA. If you cannot fix something during the normal lab hours, arrange a time with your TA to review your code.
 

·         Report Deadlines - Lab reports are due the week following the completion of the lab. They are to be submitted in hard copy within the first 30 minutes of the laboratory session. Late labs are penalized 10% per day for up to 7 days. Labs submitted after 7 days will not be graded and will receive no credit. A 10% penalty applies to reports not submitted within the first 30 minutes of the lab session. You will have one grace period to delay the late penalty for 3 days. This grace period will be used automatically for the first late report.  If you do not turn in your report within the grace period the late policy applies beginning on the fourth day.  So after the end of your grace period you begin losing 10% on the fourth day and can turn in the report until day 10 losing 10% each day.
 

·         Grading - Reports and other work will be returned in lab. You have one week after work is available to be returned to challenge the given grade. Grades will be updated in WebCT.
  

·         Secure Your Work - From your home directory run the command: chmod 700 308 to prevent anyone else from accessing your work.

 

Section

Time

TA

1

T 12.10-3.00

Irsan

2

R 3.10-6.00

Irsan

4

R 12.10-3.00

Irsan

5

W 10-12.50

Bryan

6

F 10-12.50

Bryan

 

Date

Week

Lab

Description

 Jan 8

 1

 No Lab

 

Jan 15

2

Lab 1

Introduction to Linux

Jan 22

3

Lab 2

Introduction to Unix Processes

Jan 29

4

Project 1

 

Unix Shell

Feb 5

5

Feb 12

6

Lab 3

Multithreaded Programming I

Feb 19

7

Lab 4

Multithreaded Programming II

Feb 26

8

Project 2

Threads Project

Mar 5

9

Mar 12

10

No Lab

Spring Break

Mar 19

11

Lab 5

Interprocess Communication

Mar 26

12

Lab 6

Process Scheduling

Apr 2

13

No Lab

 

Apr 9

14

Project 3

 

File Systems Project

 

Apr 16

15

Apr 23

16

Lab 7

Security Lab

Apr 30

17

No Lab

 

 

 


Projects

Project 1:  Unix Shell

Project 2:  Threads Project

Project 3:  File Systems Project

 


Homeworks

Homework  #1                          Homework #1 solutions

 

Homework #2                           Homework #2 solutions

 

Homework #3                           Homework #3 solutions

 

Homework #4                           Homework #4 solutions


Quizzes

 


Exams

Links

1.      A History of Unix

2.      Getting started, good reference for basic commands (ls, mkdir)
    http://www.cs.wayne.edu/labPages/Unix_T/start.html

3.      Another basic Unix tutorial, also has information on redirecting output (pipes)
    http://www.ee.surrey.ac.uk/Teaching/Unix/

4.      Information on Unix System Calls, mostly uses info from man pages, but still useful
   http://www2.cs.uregina.ca/~hamilton/courses/330/notes/unix/unix.html

5.      List of System Calls, good information but not well organized
   http://www.softpanorama.org/Internals/unix_system_calls_links.shtml

6.      Unix system calls and processes, fork(), exec() and wait()
   http://www.scit.wlv.ac.uk/~jphb/spos/notes/processes.html

7.      Unix process management
    http://heather.cs.ucdavis.edu/~matloff/UnixAndC/Unix/Processes.html

8.      Posix thread programming
    http://www.llnl.gov/computing/tutorials/pthreads/#Thread
    http://www.llnl.gov/computing/tutorials/workshops/workshop/pthreads/MAIN.html    

9.      List of signals and their numbers
    http://linux.about.com/library/cmd/blcmdl7_signal.htm

10.  Beej's Guide to Unix Interprocess Communication
    http://www.ecst.csuchico.edu/~beej/guide/ipc/

11.  Shared Memory, Semaphores, and Message Queues
    http://www.princeton.edu/~psg/unix/Solaris/troubleshoot/ipc.html

12.  Linux MAN Pages
    http://linux.ctyme.com/

13.  SSH 
   
http://www.unix.org.ua/orelly/networking_2ndEd/ssh/

14.  GnuPG
    http://www.gnupg.org


Last modified: Monday, April 19, 2006