NEWS:
|
6/6/02 - Solutions to the questions on the final exam are available on the exams web page, or right here.
|
Time: | MWF 9:30-10:40 |
Location: | BE 152 |
Instructor: | Prof. Scott A. Brandt (sbrandt@cs.ucsc.edu) |
Office/Office Hours: | BE 251, M 4-5, W 12-1 |
TAs: | Chris Xin (qxin@cs.ucsc.edu), Ajoy Frank (afrank@cats.ucsc.edu) |
TA Office/Office Hours: | Jack's Lounge (Baskin Engineering), Ajoy: M 3:30-4:30, Chris: Th 1-2 |
Lab Hours: | BE 105: T 4-6, W 11-1, Crown 201: M 1-3, F 11-1 |
Prerequisites: | CMPS 101 and CMPE 12C/L |
Required Text: | Modern Operating Systems, Tanenbaum |
Optional Text: | The Design and Implementation of the 4.4 BSD Operating System, McKusick, et. al. |
Course Web Page: | http://www.cs.ucsc.edu/~sbrandt/111 |
Course Objectives
Fundamental principles of operating systems: process synchronization, processes, deadlocks, memory management, resource allocation, scheduling, storage systems.
Grading
Note: You must average above 50% on the programming assignments and on the exams in order to pass the class. Lower than 50% on either portion of the class will result in a failing grade regardless of the overall score.
Homework
Homeworks will be questions taken from the book and are intended to make sure that everyone is reading the book and to test your understanding of the material from each chapter. Homeworks will be graded on a simple three point scale: 0 = unsatisfactory, 1 = satisfactory, and 2 = outstanding.
Programming Assignments
The programming assignments are an important component of the course. If all goes as planned, you will be implementing several components of an operating system kernel running atop a simulated DLX processor. While it would be ideal to work on an actual operating system, circumstances make that impractical (and an operating system, unlike a compiler, really is too complex to write our own from scratch).We will use DLXOS, a simple operating system that runs on a DLX processor (and has only 3000 lines of code, much of it documentation). There is a simulator that runs on Solaris and Linux, along with a C compiler targeted to this platform.
Your grade for each assignment will be based on your design (40%) and your code (60%). Good design and documentation are absolutely crucial for this class because of the difficulty of the concepts.
You may work on your programming assignments on any computer you wish. The tools (simulator, cross-compiler, assembler) are installed on the CATS instructional cluster (Solaris machines). In addition, the source code for the tools is available for copying to a personal machine. However, we can provide no assistance with installing the tools in your environment.
One thing to remember: your assignments must work in the environment on the CATS system. DLX source code should be readily portable, but you should check your assignment on CATS before handing it in.
Due dates and lateness:
Attendance
Class attendance is mandatory. I will post homeworks, assignments, and important dates on the class web page, but this is provided as a courtesy and is not always complete. It is your fault if you miss something important because you skipped class.Lab attendance is also required. You will miss important material on the programming assignments if you do not attend. This is where the programming assignments will get discussed in detail.
Office hours are optional. They are your chance to ask the professor and the TAs questions about the material being covered, the programming assignments, etc.
Academic Honesty: Collaboration vs. Cheating
This really should not be an issue, but recurring events have made the following necessary.You are encouraged to discuss the course material and concepts with other students in the class. However, all work that you submit must be your own. Under no circumstances may you look at anyone else's code or show anyone else your code. And while you may discuss the concepts used in the programming assignments, you may not discuss implementation details of the assignments themselves.
If you are caught copying or otherwise turning in work that is not solely your own, you will fail the course and a letter will be sent to your Department, the School of Engineering, and to your Provost and academic preceptor.
The bottom line is that you are expected to conduct yourself as a person of integrity - you are expected to adhere to the highest standards of academic integrity. This means that plagiarism1 in any form is completely unacceptable. As a (soon to be) computing professional, I encourage you to consult the code of ethics appropriate to your discipline2.
Plagiarism will be assumed until disproved on work that is essentially the same as that of other students. This includes identically incorrect, off-the-wall, and highly unusual duplicate answers where the probability of a sheer coincidence is extremely unlikely. All parties to this unacceptable collaboration will receive the same treatment.
You should bring a picture identification with you to all examinations and be prepared to show it upon request.
If you are unsure of what is and is not allowed by this policy, talk to the instructor.
1 pla-gia-rize vt. to steal and
pass of as one's own (the ideas or words of another) to present as one's own
an idea or product derived from an existing source - pla-gia-riz-er
n. (source: Webster's New World Dictionary).
2 The Association for Computing Machinery is http://www.acm.org/,
the IEEE is http://www.ieee.org/ and the IEEE Computer Society is http://www.computer.org/.
Getting Answers to your Questions
Class Schedule
This is a loose schedule for the class. This page lists all assignments, due dates, and reading material by date. This schedule is tentative, and will almost definitely be adjusted periodically to reflect how far we've gotten in class. In other words: This schedule is subject to change through the quarter. Assignment dates and due dates may be modified depending on the pace of the class.
Day
|
Date
|
Topics
|
Chapter
|
Read before class
|
Due |
---|---|---|---|---|---|
W
|
March 27
|
Class Introduction Basic system calls used in shells |
1
|
1.1,1.2,1.3
|
|
F
|
March 29
|
Operating Systems history, concepts, structure |
1
|
1.5,1.6,1.7
|
|
M
|
April 1
|
Processes & threads |
2
|
2.1,2.2
|
|
W
|
April 3
|
Scheduling |
2
|
2.5
|
|
F
|
April 5
|
Scheduling |
2
|
2.5
|
|
M
|
April 8
|
Interprocess communication |
2
|
2.3
|
Homework 1 |
T
|
April 9
|
Assignment 1 | |||
W
|
April 10
|
Classic IPC problems |
2
|
2.4
|
|
F
|
April 12
|
Resources Deadlocks, and how to detect them |
3
|
3.13.4
|
|
M
|
April 15
|
Avoiding and preventing deadlock |
3
|
3.53.7
|
Homework 2 |
W
|
April 17
|
Introduction to memory management |
4
|
4.1,4.2
|
|
F
|
April 19
|
Virtual memory |
4
|
4.3
|
|
M
|
April 22
|
Virtual memory |
4
|
4.4
|
Homework 3 |
T
|
April 23
|
Assignment 2
|
|||
W
|
April 24
|
Page replacement algorithms |
4
|
4.5
|
|
F
|
April 26
|
Implementation issues |
4
|
4.6
|
|
M
|
April 29
|
Midterm review |
|
|
Homework 4 |
W
|
May 1
|
MIDTERM (in-class)
|
|||
F
|
May 3
|
Segmentation |
4
|
4.7,4.8
|
|
M
|
May 6
|
I/O hardware & software principles I/O software layers |
5
|
5.1,5.2
|
Homework 5 |
W
|
May 8
|
Disk hardware Disk scheduling |
5
|
5.3,5.4
|
|
F
|
May 10
|
Clocks, terminals and GUIs Power management |
5
|
5.55.7,5.9
|
Assignment 3 |
M
|
May 13
|
Files, directories & naming |
6
|
6.1,6.2
|
Homework 6 |
W
|
May 15
|
File system implementation |
6
|
6.3
|
|
F
|
May 17
|
File system implementation File system examples |
6
|
6.4
|
|
M
|
May 20
|
Security basics |
9
|
9.1,9.2
|
Homework 7 |
W
|
May 22
|
Authenticating users Attacks on computer systems |
9
|
9.3,9.4
|
|
F
|
May 24
|
Viruses & other attacks |
9
|
9.5,9.6
|
|
M
|
May 27
|
Protection & access control |
9
|
9.6
|
Homework 8 |
W
|
May 29
|
Unix: history, overview, processes |
10
|
10.110.3
|
|
F
|
May 31
|
Unix: I/O, file systems, security |
10
|
10.510.7
|
Assignment 4 |
W
|
June 5
|
FINAL EXAM: 12:00 3:00 in BE 152 (the usual
room)
|
|