Instructor
Dr. Yong Guan
yguan@iastate.edu
(515) 294-8378
Office: 3216 Coover
Hall
|
|
Teaching
Assistant (Sections B&D):
|
Dossay Oryspayev
[semerka@iastate.edu]
|
|
Teaching
Assistant (Section C):
|
Benazir Fateh
[benazir@iastate.edu]
|
|
Teaching
Assistant (Section A):
|
Naeem Al-Oudat
[naeemoda@iastate.edu]
|
|
|
Spring
2012 (Please
keep an eye on this news box for the latest. )
|
|
1.
Our kick-off meeting will be held on Jan. 9,
2012, at ATANSFF B0029. Welcome to our CprE 308
class!
2. More to be
added.
|
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.
More detailed course syllabus can be found on Blackboard.
The required text for the course is Modern Operating Systems by Andrew S. Tanenbaum, 3rd Edition, (ISBN
0-13-600663-9).
Lecture slides, lab and project assignments, and homeworks can be accessed through Blackboard.
Suggested reading list can be accessed through Blackboard.
Useful On-line Resources:
·
A History of Unix
·
Getting started, good reference
for basic commands (ls, mkdir)
http://www.cs.wayne.edu/labPages/Unix_T/start.html
·
Another basic Unix tutorial,
also has information on redirecting output (pipes)
http://www.ee.surrey.ac.uk/Teaching/Unix/
·
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
·
List of System Calls, good
information but not well organized
http://www.softpanorama.org/Internals/unix_system_calls_links.shtml
·
Unix system calls and processes,
fork(), exec() and wait()
http://www.scit.wlv.ac.uk/~jphb/spos/notes/processes.html
·
Unix process management
http://heather.cs.ucdavis.edu/~matloff/UnixAndC/Unix/Processes.html
·
Posix
thread programming
http://www.llnl.gov/computing/tutorials/workshops/workshop/pthreads/MAIN.html
·
List of signals and their
numbers
http://linux.about.com/library/cmd/blcmdl7_signal.htm
·
Beej's
Guide to Unix Interprocess Communication
http://www.ecst.csuchico.edu/~beej/guide/ipc/
·
Shared Memory, Semaphores, and
Message Queues
http://www.princeton.edu/~psg/unix/Solaris/troubleshoot/ipc.html
Lecture: MWF, 9:00-9:50am, ATANSFF B0029.
Instructor and TA Office Hours:
|
|
Hours
|
Location
|
|
Dr . Yong Guan
|
Monday 10-11am
|
3216 Coover Hall
|
|
TA: Dossay Oryspayev
|
Friday 11am-noon
|
Active Learning Complex, Coover
1313, Village A, Cube #2
|
|
TA: Benazir Fateh
|
Wednesday2-3pm
|
Active Learning Complex, Coover
1313, Village A, Cube #1
|
|
TA: Naeem Al-Oudat
|
N/A
|
N/A
|
Laboratory Sections:
|
Section
|
Day/Time
|
Lab Instructor
|
|
A
|
T 11:00am-1:50pm Coover 2048
|
Naeem Al-Oudat
|
|
B
|
W 10:00am-12:50pm Coover
2048
|
Dossay Oryspayev
|
|
C
|
R 11:00am - 2:00pm Coover
2048
|
Benazir Fateh
|
|
D
|
W 3:10-6:00pm Coover 2048
|
Dossay Oryspayev
|
Grading
The grading breakup will be as follows:
1.
Weekly labs: 25%
2.
Two programming projects: 10 % (5 % each)
3.
Homework will not be graded, but there will be
in-class quizzes based on homework, and
these quizzes make up 17% of the grade.
4.
Two mid-term exams: 20%
5.
Final Exam: 25%
6.
Class Attendance: 3%
Current
grades can be checked using Blackboard.
Academic
Policies
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.
Lectures:
Attendance in the lectures is expected, and we
welcome active participation.
·
Please email me or call me at (515) 294-8378
beforehand, in case that you cannot come (e.g., for medical reason).
·
In case that you cannot attend the class and have
questions about the missed lecture, please feel free to come and talk to
me.
Laboratory Policies:
·
Attendance - You are expected to attend all
laboratory sessions. In these
laboratory sessions, you are required to do the lab experiments or the
programming projects. Absence will not be grounds for delaying the
submission of a laboratory report. Attendance will account for 10% of
each laboratory report grade or programming
project 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. For programming projects
spanning two weeks, attendance will only be taken in the first week when
the project is introduced. In the second week, if you have already
completed the programming project and if you don't have any questions to
the TA, you can decide to skip the lab session (i.e., the 2nd
week lab session, but not the 1st week lab session which you are
expected to attend.).
·
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
only, 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
periodically.
·
Secure Your Work - From your home directory run the
command: chmod 700 308 to prevent anyone else from accessing
your work.
Further Information
Please contact Dr. Yong Guan (yguan@iastate.edu)
by email or drop by his office Coover 3216.
|