CSci 5103 Syllabus
Syllabus for CSci 5103 (Fall 2017)
Instructor
Prof. Jon Weissman
Email: jon at cs_umn_edu
Phone:
(612) 626-0044
Office: 4-225F EE/CS Bldg
Office Hours: T 1-2 (or by appointment, or when door is open)
Time and Location
2:30pm - 3:45 pm T/TH , Keller 3-125
Teaching Assistant
Francis Liu (liux2102@umn.edu)
Office Hours: 10-12am Wednesdays, Keller 2-209 (or by appointment)
Class website: http://www-users.cselabs.umn.edu/classes/Spring-2017/csci5103
Description Welcome to
CSci 5103! This course is concerned with the principles and practice
of modern operating systems. We will study core operating system
principles as listed below.
A strong C/C++ Unix background is assumed for
this course. My course
goals are to give you a strong foundation in the key concepts of
operating systems and to help de-mystify the inner workings of
"real" operating systems. Comfort with Unix is assumed as
4061 is a basic undergraduate OS concepts and systems programming
skills (as found in CSCi 4061). Basic "outside-view" OS concepts would include:
file systems, threading, IPC, synchronization, etc. This material will be tested through a combination of homework, project, and exams. You will get specific practice with each core component either through a homework, project, or both. Exams will comprehensively test all topics over time.
Class format
The class
will be conducted in a lecture format with Q&A discussion
elements. The week's reading is essential to keeping up as is coming
to class. The reading will include textbook and classic OS papers. The course notes won't mean much in isolation. Class participation or lack thereof may influence your grade (up or down). UNITE streaming generally will not be available to on-campus students unless special circumstances warrant it.
Textbooks
- Required Readings:
Operating Systems: Principles & Practice, 2nd edition, Anderson and Dahlin, 2014.
Linux Device Drivers (Corbet, Rubini, and Kroah-Hartman), on-line.
- Optional:
These are more classic OS texts.
- Modern Operating Systems (Tanenbaum), 4th Edition, Prentice-Hall, 2015.
- Operating System Concepts, 9th Edition (Silberschatz, Galvin, Gagne), 2013.
- Unix System Programming, Haviland, Gray, and Salima.
Course Topics
- Course Introduction: History and Background
- Kernel, Processes
- Threads
- Synchronization
- Scheduling
- Addressing, Memory Management, and Virtual Memory
- File Systems and Storage, I/O
- File System Reliability
- Protection and Security
- Design
- Here is the schedule
Course Work and
Grading
- Grading:
- Four written homeworks: 15%
- Four projects: 50%
- Mid-Term Exam: 15%
- Final Exam: 20%
- Homework Assignments:
There will be four written homework assignments. These will test your
knowledge of Operating Systems from book readings and class
discussions. They be generally be due before exams to give you
practice with the material. Homeworks are to be done individually and
you will have 1 week for completion. Your solution be submitted
on-line using the submit utility. The online submission is due by
11am on the day of class. The homework goes out on the morning
before class (or the day before), so you can ask questions in
class. Please see the class schedule and important dates for the
timing of assignments, projects, exams, etc. The feedback (e.g., on
your assignment may be provided via electronic means. Grades can be
checked online through MOODLE.
Late submission policy: There are no late homeworks accepted.
- Projects:
There will be four
programming projects. The purpose of the projects is to give you
hands-on experience with OS concepts, particularly inside
issues. Projects may include systems programming, simulations of
internal behavior, and kernel programming. Some of these projects will
be group projects (2-3 people). If so, this would be announced. You
will have about 2 weeks to complete each project. Projects will be
submitted electronically. All group members would receive the same
grade. You may submit ONE project late during the semester with a 10%
point reduction (due the next day by midnight). However, you
must attend class on the following day and check in with me to get the
extension in class. Projects will be go out the day of class (or the
day before) and generally discussed in class. Projects are due by
midnight on the day before class (plenty of time to get to sleep and
come to class).
Submission protocol: For online submission, you will submit a tar'ed
directory that includes your code, header files (if any), your
build/run script(s), makefiles, and any necessary test data that
was not supplied as part of the assignment. Names of the group members
and the instructions for building and running your code must be in an
additional text file called readme.txt. Each online submission is
timestamped with the time of submission. Multiple submissions result
in only the last timestamp being retained. Therefore, to avoid losing
points, you must make sure you are not uploading your assignment after
the due date.
We will make every attempt to grade submitted work within a week (projects may take a bit longer) after submission. If you have questions
regarding the grading of your homework assignments, projects or exams, you
must come to see either the instructor or the TA within two weeks
after the date the work has been returned to
you. If you cannot see us within two weeks, you need to email us
within two weeks and make an appointment. Unless we hear from you, no
changes will be made after two weeks. If you believe that your
homework, projects or exams have been lost, please notify us as soon
as possible (within two weeks). We are not responsible for missing
homework, projects or exams two weeks after they have been returned. Check MOODLE to make sure your graded work is accounted for.
- Exams:
The purpose of the 2 exams is for you to demonstrate that
you understand the key OS issues. Exams are necessary to determine
how you are really doing in the class. Exams also give me global
feedback about the course in general, feedback that I have often used
to make "mid-course" corrections to improve the class as we go along.
If you must miss an exam, send me e-mail ASAP, and you must make every
effort to notify me PRIOR to the exam. The exam dates will be
announced on the website and in class. There will be a mid-term exam
and a final exam. The mid-term exam will cover the material for the
previous 7 weeks. The final will focus on the newer material, but can
include earlier material. No decision has been made about open- or closed-book.
There will be one mid-term and one final exam.
Communication
Information about the course will be communicated in class and via
this website. This includes the schedule, dates, additional reference
materials, announcements, and information about assignments. For
direct communication, the TA and instructor have office hours to assist you.
There is also a course bulletin-board (on MOODLE) that can be used for
anonymous posting of questions or information, NOT solutions. Please
use the forum for any questions you may have. The TA, or (hopefully)
other students will post answers (as appropriate). If the question is
inappropriate for the forum, e-mail the TA (he will forward e-mail to
me if necessary). Note: I do not read the forum often, but the TA will
keep me appraised of any issues. If you need to speak with me about an
urgent matter, come to office hours or email. Note: we reserve the
right to moderate this forum if it is used inappropriately. The TA is
the best "first line of defense" for questions and project programming
help. I will also post announcements on the main class web site: http://www-users.cselabs.umn.edu/classes/Fall-2017/csci5103/.
Exceptions
Unusual circumstances will be considered
including illness, personal problems, A makeup is not guaranteed. Acceptable excuses are
usually limited to serious personal problems or injury, religious
needs, and substantial participation in University sanctioned student
events (note: I
didn't include vacations, job interviews) for late work or missing exams.
The KEY is to inform me ASAP. If you do not make an effort to let me know the issue ASAP, I will take this into account in my decision to grant a a policy exception.
Collaboration
For questions concering the labs or homework, you can
talk to the TA or myself. Limit discussion with your classmates or the
access the forum to get information about the meaning of project or homework
concepts, NOT elements of a solution. For group projects,
collaboration within your team is of course expected. In general,
cheating on the projects, homeworks, or exams will be dealt with swiftly
and severely in accordance with
University policies.
Disability Statement
Any student with a documented disability (e.g., physical, learning,
psychiatric, vision, hearing, etc.) who needs to arrange reasonable
accommodations must contact the instructor and Disability Services at
the beginning of the semester. All discussions will remain
confidential. For further information contact the University of
Minnesota Disability Services website at http://ds.umn.edu/ or call
612/626-1333.