|
CET 421: Operating Systems
Professor:
Ricky J. Sethi
|
|
|
Sethi Family HomePage
|
CET 421
|
Syllabus
|
Spring 2005
|
Catalog Description
Topics this course include process states and synchronization,
multiprocessing, multi programing processor scheduling, resource
management strategies, static and dynamic relocation, virtual memory,
logical and physical input/output (I/O), device allocation, disk
scheduling and file management. In lab, students develop software and
hardware extensions and device drivers for Windows and Unix.
| Pre-requisite |
CET 375 |
| Credit hours |
CET 421 is 5 hours. |
| Meetings |
Monday 5p.m. - 8p.m., Room 208,
Thursday 8a.m. - 11a.m., Room 211 (Note: This will change!)
|
Texts and Materials
Required:
- Operating Systems: Internals and Design Principles, Fifth Edition, William Stallings
Recommended:
- Modern Operating Systems, Second Edition by Andrew S. Tanenbaum
Attendance Policy
Each student is required to attend every lecture and laboratory in which he or she is enrolled. A swipe-card terminal in each classroom is used to record attendance electronically. Students are responsible for arriving before class begins, sliding their identification card through the wall-mounted reader, and remaining for the duration of the course meeting. Students who are absent for two or more days must contact their assigned Academic Coordinator for advisement. Students who miss more than five (5) consecutive days of school are in violation of the DeVry attendance policy and will be dismissed.
Examination Make-Up Policy
Since responsible behaviour -- including daily class attendance -- is expected of all DeVry students, absence from a scheduled examination is considered to be an extremely serious matter. It is school policy that no faculty member shall be required to schedule a make-up examination unless the student presents a statement from a licensed physician stating that he or she was physically unable to attend school on the day of the exam. The faculty member may schedule a make-up for other equally serious reasons, provided that arrangements are made prior to the date of the exam. An individual faculty member may also schedule a make-up exam if, in his or her opinion, a situation exists that does not fall under the provisions of this policy yet merits special consideration.
Course Grading Standards
A final letter grade is to be awarded to each enrolled student in accordance with the 4.00 grading system shown below.
| Letter Grade |
Percent of Total Points |
Grade Points |
| A |
90 - 100% |
4.00 |
| B |
80 - 89% |
3.00 |
| C |
70 - 79% |
2.00 |
| D |
60 - 69% |
1.00 |
| F |
Below 60% |
0.00 |
Academic Integrity Policy
Ideas and learning form the core of the academic community. In all centers of education, learning is valued and honoured. No learning community can thrive if its members counterfeit their achievement and seek to establish an unfair advantage over their fellow students. The academic standards at DeVry are based on a pursuit of knowledge and assume a high level of integrity in every one of its members. When this trust is violated, the academic community suffers injury and must act to ensure that its standards remain meaningful. The vehicle for this action is the Academic Integrity Policy outlined in the Student Handbook.
The Academic Integrity Policy is designed to foster a fair and impartial set of standards upon which academic dishonesty will be judged. All students are required to read, understand, and adhere to these standards, which define and specify the following mandatory sanctions for such dishonest acts as copying, plagiarism, lying, unauthorized collaboration, alteration of records, bribery, and misrepresentation for the purpose of enhancing one's academic standing:
- The first recorded offense will result in the student receiving zero credit for the entire paper, exam, quiz, lab, homework assignment, or other graded activity in which the incident of academic dishonesty occurred. No partial credit may be given. Where the incident involved a graded assignment normally subject to a "drop" option, the student may not exercise that option.
- The second recorded offense will result in the student receiving a failing grade for the course in which the second offese occurs. The second offense need not be in the same course, program, or term as the first offense to invoke this sanction.
- The third recorded offense will result in the student being permanently expelled from the DeVry system. Again, the third offense need not be in the same course, program, or term as either the first or second offense to invoke the sanction.
Strategy
Terminal Course Objectives
Following are the objectives for this course. Individual faculty,
based upon their experience and expertise may add to these objectives
to meet local campus needs. Any such additions will be communicated
to the class. While the instruction remains focused in helping
students, accomplishing these objectives is a shared responsibility of
students and faculty. The outcomes of this course will depend upon the
motivation and capabilities of the students, sufficient time
allocation for studying, and the effectiveness of that effort.
DeVry University is committed to the continual improvement of its
curriculum and instruction and to meet the needs of students and
employers in a rapidly changing global economy. Students, faculty,
and the university must all be actively involved to accomplish these
objectives, as well as the objectives of this particular course.
- Given
a contemporary operating system, such as Windows NT/2000 or
Unix, analyze
its internal structure specifying its major software components
and their
interrelationships.
- Given
contemporary operating systems, such as Windows NT/2000 and
Unix, and a
business or technical software/hardware configuration, such as
an
e-commerce server, compare and contrast the performance and
scalability of
each operating system.
- Given
the specifications for a complex hardware/software
configuration, such as
a data acquisition and analysis system, analyze how the features
and
performance of Windows NT/2000 or Unix operating systems satisfy
the
specification requirements.
- Given
a contemporary operating system, such as Windows NT/2000 or
Unix, compare
and contrast the approach used by each operating system towards
information, computer and network security.
- Given
a business or technical application, such as a high-performance
cluster of
engineering workstations used in a design environment, that
requires
multiprocessing and distributed capabilities, compare and
contrast the
approach and performance of Windows NT/2000 vs. Unix.
- Given
an I/O hardware device, such as a hard disk, illustrate the
approach used
by Windows NT/2000 and Unix to provide an interface between the
device and
the rest of the computer and relate this interface to specific
portions of
the operating system kernel.
- Given
a high-performance file system, such as the NTFS (NT File
System) used by
Windows NT/2000 and the ext2 file system used by Unix (Linux),
compare and
contrast the approaches used by each operating system to
implement the
file system and its software interface to the operating system.
- Given
a simple hardware device, such as a serial port interface, and a
hardware
platform on which the device operates, select an optimal
operating system
in which the development of a driver for the device will be most
efficient
in terms of development time and cost.
- Given
a timing-critical application, such as a high rate data
acquisition
system, and a hardware/software system, select an optimal
development
environment in which the development of a driver for the device
will be
most efficient in terms of development time, ease of use and cost.
- Given
a simple hardware device, such as a parallel port interface, a
hardware/software system and a development environment, develop
a hardware
driver for the device that meets specified performance criteria.
- Given
a simple hardware device, such as a serial port interface, a
hardware/software system and an inefficient or flawed device
driver for
the device, select an appropriate environment and debug or
optimize the
driver.
Lab TCOs
- Given a workstation, perform a fresh installation of Windows
NT/2000 and Linux and connect all hardware peripherals to the
operating system by proper installation and initialization of the
corresponding device drivers.
- Given a business-oriented application, such as an e-commerce web
server, compare and contrast the relative performance and
scalability of Windows NT/2000 vs. Linux using software methods to
simulate real-life conditions, such as server overload, security
breach attempts and component failures.
- Given an operating system, such as Windows NT/2000 or Unix,
use a software debugger/analyzer to analyze and contrast the
boot-up and initialization sequence and the approaches used by
each operating system to attach and manage hardware
devices.
- Given an operating system, such as Windows NT/2000
or Unix, use a software debugger/analyzer to
characterize the disk and resource allocation
provided by the operating system for various classes
of user programs such as business or engineering
applications.
- Given an operating system, such as
Windows NT/2000 or Unix, use a software
debugger/analyzer and network monitor to
analyze the network traffic and its
handling by, and impact on the operating
system.
- Given a complex
hardware/software
configuration, such as a
data acquisition and
analysis system, use a
software debugger/analyzer
to evaluate how the
operating systems satisfy
the operational requirements
for the system.
- Given a simple hardware device,
such as a
parallel port,
use the
Microsoft Visual
Studio and
Driver
Development kit
to develop a
driver for the
device in C++,
under Windows
NT/2000.
- Given a simple hardware device, such as a keyboard, use the GNU C++ compiler and the source code of the operating system to develop a driver for the device in C++, under Linux.
How this Course helps in Achieving Your Program's Objectives:
The goal of the CET program is to produce Computer Engineering
Technology professionals to work on teams with other specialists to
design, develop, produce, test, and maintain complex products and
systems. This is accomplished by:
- Providing an academic program that develops a sound foundation
in mathematics, physics, and technical sciences, as well as
developing competencies
in a broad spectrum of technical specialty areas, including instrumentation
and controls, microprocessors and computer systems, and wireless
and telecommunications technology.
- Incorporating a strong laboratory component associated with each
technical course. Laboratory work includes use of computer hardware,
design and test automation software, and test equipment for designing,
implementing,
and testing electronic systems.
- Integrating
general competencies such as applied research, written and oral
communications, and team skills in technical and non-technical courses.
Program Objectives: CET students will be able to demonstrate the following skills upon graduation:
- Conduct
experiments involving electronic systems using modern test gears,
interpret test results and use them to improve products or processes.
- Create,
implement high-level and Assembly language programs in support of
technical activities.
- Design,
implement, and evaluate hardware and software solutions to complex
technical problems using modern tools and methods.
- Communicate effectively both orally and in writing.
- Work effectively in a team environment.
- Apply information literacy and problem-solving skills that support life-long
personal and professional development.
- Evaluate
the broader effects of technology and to identify connections between
technology and economics, politics, culture, ethical responsibility,
social structure, the environment and other areas.
Program Assessment Criteria:
In order to assure that graduates are being successfully prepared to
meet the goal and objectives listed above, the following criteria
are used to assess the program and individual courses. These criteria
require the CET graduate to have:
- An
appropriate mastery of the knowledge, techniques, skills and modern
tools of their disciplines.
- An
ability to apply current knowledge and adapt to emerging applications
of mathematics, science, engineering and technology.
- An
ability to conduct, analyze and interpret experiments and apply
experimental results to improve processes.
- An ability to apply creativity in the design of systems, components
or processes appropriate to program objectives.
- An ability to function effectively on teams.
- An ability to identify, analyze and solve technical problems.
- An ability to communicate effectively.
- A recognition of the need for, and an ability to engage in lifelong
learning.
- An ability to understand professional, ethical and social responsibilities.
- A respect for diversity and a knowledge of contemporary professional,
societal and global issues.
- A commitment to quality, timeliness, and continuous improvements.
Course Assessment Criteria:
This class is designed to strengthen the students' skills in fulfilling Program
Assessment Criteria 1, 2, 4, 6, 7, 8, 9, 10, and 11.
- Laboratory demonstrations will complement the
lecture topics. Emphasis will be on the key concepts so that as
many topics as consistent with good, basic understanding can be
discussed. It is strongly recommended that students scan the
experiment procedure prior to the Laboratory class (please refer
to the class website for more timely information before each
lab).
- Concepts will be covered by problems and demonstrations in class
followed with problems and lab follow-ups given as homework.
Students will present their solutions for class discussion. All
projects can be done in collaboration with your team
(although individual reports are required).
- There will be a midterm exam in (approximately) week 8 covering
topics discussed through week 7. The final exam in week 15 will cover all
topics.
Library Research Project
The purpose of the library project/oral presentation is to familiarize
the students with resources available in the library, and learn how to
use these resources to produce the needed information. Each student
is provided with a course related
approved topic to research and provide relevant information in regards
to the topic, in form of a short report.
- The result of this research must be typed as
an approximately 10-page report and then orally presented in the class.
- The cover page of each report must include the course number,
topic, names, and the date.
- The report is due during the 12th week of the semester and must be
orally presented during the same week.
- Late reports or late oral presentations are not accepted.
- This project/oral presentation adds 10% to the total grade.
I usually get quite a few queries from people confused about what
topic they should pick or unsure whether they've picked the right one
or even if the topic they chose is comprehensive enough for 10 pages.
All of these are legitimiate concerns, of course, but just about all
of them can be alleviated by asking yourself a simple question (and
answering it as honestly as you can):
"What is it that I've always wanted to find out more about?"
My view on the library research project is that it should be something
that YOU want to learn about! I'd like for this to serve as an
opportunity for everyone to force themselves to learn about something
they're genuinely interested in. Don't just make this some
requirement that you have to fulfill and so you can just copy some
stuff and cobble it together into a 10-page report... instead, use
this as a rare opportunity to find out about something that actually
interests you. I'm very flexible about the range of topics and as
long as we can draw a tangential relationship to the course, I'll
probably approve the topic. But it has to truly interest you!
Chapter Reading Memos
Subject matter is covered pretty much in the sequence presented in
the required textbook. It is therefore recommended that you scan the
chapters prior to the scheduled lectures to become familiar with new
terms that will be introduced. In order to facilitate this, every
reading assignment, will have a required reading memo due the
meeting day following the meeting day it was assigned.
The idea is to have you write down questions and other
"instantaneous gut reactions" as you do each reading assignment in
the text. It is very important that you create these memos as
you read, and on the first pass through the material.
They must not be edited or "cleaned up" afterward, and they should
not be just outlines or notes. In other words, your reading memos
should not simply be a summary/rehashing of the chapter;
instead, they should reflect your questions, observations, and
insights.
What is the purpose of these reading memos? First, it shows me
that you've done the reading. In addition, it encourages
active reading (reading scientific tomes is a very different
experience from
reading a novel or other leisure book where you can passively scan the
pages).
And, even more importantly, it
gives me insight into what you're learning, and, more
significantly, what I might need to concentrate on more in
lecture. Lastly, they give me a student's perspective on the
material and often point out common misconceptions or exceptional
insights.
So why should you do them? Well, if all that insight and learning
wasn't sufficient motivation, it might help to know that your
reading memos will contribute significantly towards your
participation grade (see grading policy below). In addition, I'll
be using at least one question from your reading memos on the
weekly quizzes.
Format of the reading memo: nothing terribly elaborate. Just
have a sheet of paper handy as you read the text and jot down your
notes. As long as they're legible, I'll be happy. They don't
have to be any specific length; I'm just looking for your first
impressions and questions you might have. As far as the grading
is concerned, I'll basically just be checking off if you're doing
them or not. So if you hand one in, you'll get the credit for
it. But I'll also be reading them so if you want to impress me,
come up with some great memos/questions! Finally, if you're more
comfortable jotting them on your computer, feel free to email them
to me.
Labs, Quizzes, and Groups, oh my!
There will be weekly labs starting Week 1. In addition, we'll have
weekly quizzes starting Week 2. The quizzes will be based on the
reading and the laboratories. In
fact, all exams will rely heavily on the labs and the
reading.
Starting Week 2, there will be a weekly (closed book) quiz in class
based almost entirely on the reading and the labs. I'll only keep the
8 highest quizzes. In lieu of the homework, you'll be given the
opportunity to instead do selected homework exercises from that
chapter. You will thus have the option of either using the homework
or the quiz to determine your weekly quiz grade up to three (3)
times during the semester (note: you must hand the exercises in
before the quiz starts and then only the higher of the two
grades will count for that week).
Keeping up with the reading and doing the programming exercises,
projects, and labs is probably the best way to learn computer
science. But the third, and final, ingredient necessary to truly
master software development is group learning. Unlike classes in
which doing homework together is discouraged, I would actually like to
encourage you to collaborate with your colleagues on the programming
exercises, projects, and labs. In fact, we'll be forming groups of
about two starting in Week 1 and you'll even have the option of doing
your projects together as a group (although everyone will have to turn
in a separate report and part of your grade will be based on your
group's anonymous evaluation of you (and your contribution) to ensure
no one person does all the work for the group). All real science is a
truly collaborative enterprise and I hope you'll take full advantage
of your peers in this regard.
Comparison of the Scientific Method and the Engineering Design Process
| The Scientific Method |
The Engineering Process |
| State your question |
Define a need |
| Do background research |
Do background research |
| Formulate your hypothesis (identify variables) |
Establish design criteria |
| Design the experiment (establish procedure) |
Prepare preliminary designs |
| Test your hypothesis (Experiment!) |
Built and test a prototype |
| Analyze the results (draw conclusions) |
Test and redesign (as necessary) |
| Present the results |
Present the results |
| Reference: http://www.sciencebuddies.org/mentoring/printable_project_engineering.pdf |
Weekly Project Presentations
The weekly project reports/presentations constitute the biggest
component of your final grade (please see the Grading Policy below).
These consist of weekly programming exercises assigned to you (or your
group) followed by a semi-formal presentation to the class the
following week. Not everyone will present every week but everyone
will be responsible for completing and handing in their assignment
every week.
<Theoretical Rant Here>
Unlike elephants, people forget. We forget everything from
buying the ketchup on our trip to the market to the exact formulation
of the time-dependent form of Schroedinger's equation (which, for the
curious, as well as the sadistic, is
ih/2π ∂ψ/∂t = Hψ = (T + V)ψ =
(-h2/8π2m) ∇2ψ + Vψ
). This is, inevitably, your fate as well. Whatever you
don't use, you will forget. This is why doctors have a
continuing education requirement and programmers have doctors (or at
least the M-x doctor within Emacs). Given this enormous attrition
rate for knowledge, the purpose of any course, to my mind, is to
provide you with a toolset or a way of thinking or approaching a
problem which, due to its genericity, will be utilized on an almost
daily basis on a variety of topics. Of course, you'll be learning
this new mental toolset within the context of this course... so the
real purpose of this course isn't to have you memorize a bunch of
random facts. No, you'll remember whatever facts you might need in
your future endeavours just fine as you'll be using them on a daily
basis. What you should learn from this course is a way of
thinking and problem-solving... and learn it well enough to apply it
to a variety of other scenarios and especially to this particular
subject. So if the need ever arises for you to refresh your memory
(perhaps for the first time) in this subject again, although all the
words will, once again, seem like foreign gibberish, you'll have
acquired a mindset that lends itself readily to rapid comprehension of
the material and you'll find that the subject, once obtuse and
impossible to comprehend, readily bends to your understanding (as long
as you put in the requisite time and effort). THIS is the real
goal of any learning.
</Theoretical Rant Here>
In this class, we'll also emphasize a professional, corporate approach
in anticipation of your future employment with a big software
development company. Instead of concentrating on the theoretical side
(which, being a theoretician, is my natural inclination), we'll
instead emphasize the practical problem-solving and actual coding.
The BEST way to learn a subject is to actually DO it (insert your
favourite quote to the effect here). And so, an important part of
your learning experience will be the weekly presentation of your
problem.
This will be an informal, round-table gathering where you'll explain
what you did and how you did it. Peer reviews/inspections are
probably THE best way to ensure production of high-quality software
(especially for big projects) and you're going to be engaged in just
that as you evaluate your peers' work. Here's what they should include:
Guidelines for the weekly presentations:
- Description of the problem (from header block documentation)
- Your approach to the solution (from header block documentation)
- Brief explanation of your algorithm (from header block documentation)
- Highlights of the solution code (especially the hairier, more complex parts as shown by the comments in the well-documented code)
- How you tested it (the test-driver program)
Each weekly project presentation is worth 10 points:
- Lose 1 point if it doesn't work
- Lose 1 point if the algorithm is incorrect
- Lose 1 point if the documentation is lacking
- Lose 1 point if the test driver program doesn't work
- Lose 1 point for each missing portion that's required
Expectations
My general policy in terms of grading is to aim, as in most
graduate classes, for an average of
about a B. This does not, however, mean that you can earn a high
grade simply by doing nothing. What it does mean, though, is that as
long as you show up for all the classes, do all the
homework/quizzes/exams, and complete your projects on time, you won't
ever have to worry about failing the class. So as long as you show up
for all the classes and do the basic required work, everyone
should at least pass the course.
Also, I do allow for some extra-credit throughout the semester
which can be applied towards your midterm or final scores only
(i.e., it is not applicable towards the project, hw/quiz, or
participation scores). If anything strikes your fancy along the way,
feel free to talk to me about doing some extra-credit on it.More on my
specific expectations about the extra-credit, etc. later...
The reason for the extra-credit is I want to see everyone get
the grade they are willing to work for.
Some suggestions for extra-credit: research a topic that interests
you and write a report on it; solve a programming problem; do extra
exercises in the book; etc.
The Grading Policy
Grades will be assigned on a 100% scale but given scores will be based on a curve taking into account the overall performance of your class.
| Labs |
25% |
Given weekly; only top 8 counted |
| HW/Quizzes |
15% |
Given weekly; only top 8 counted |
| Midterm |
10% |
1 given in (approximately) week 8 |
| Final |
15% |
1 given in week 15 (comprehensive) |
| Weekly Project Reports |
20% |
Weekly Project Presentations |
| Participation |
5% |
Reading Memos, Professionalism, Attendance, Involvement,
Discussion, Questions, etc. |
| Library Research Project |
10% |
Research Project & Presentation |
The Tentative Schedule
This list is intended to act as a planning guide for
students. The timing of the Final Exam is definitely in Week 15
and Homework/Quizzes are planned weekly. Timing of all
activities will be continuously communicated in classes and/or via
email.
Changes to Syllabus: The contents of this syllabus are
subject to change with appropriate notice to the students.
| Week |
Mon
|
- |
Fri |
Tasks & Assignments |
TCO's |
| Week 1 |
Mar 07
|
- |
11 |
• No Reading Memo
• No Lab
• No Project Presentation
|
1 |
| Week 2 |
Mar 14
|
- |
18 |
• Reading Memo: Ch. 1
• Lab 1
• No Project Presentation
|
1, 2 |
| Week 3 |
Mar 21
|
- |
25 (Friday, Mar 25 - No Classes) |
• Reading Memo: Ch. 2
• Lab 2
• Project Presentation #1
|
3 |
| Week 4 |
Mar 28
|
- |
Apr 01 |
• Reading Memo: Ch. 3
• Lab 3
• Project Presentation #2
|
3,5 |
| Week 5 |
Apr 04
|
- |
08 |
• Reading Memo: Ch. 4
• Lab 4
• Project Presentation #3
|
5 |
| Week 6 |
Apr 11
|
- |
15 |
• Reading Memo: Ch. 5
• Lab 5
• Project Presentation #4
|
5 |
| Week 7 |
Apr 18
|
- |
22 |
• Reading Memo: Ch. 6
• Lab 6
• Project Presentation #5
|
5,7 |
| Week 8 |
Apr 25
|
- |
29 |
Midterm Exam
• Finish Ch. 6 & review
• Lab 7
• No Project Presentation
|
8 |
| Week 9 |
May 02
|
- |
06 |
• Reading Memo: Ch. 7
• Lab 8
• Project Presentation #6
|
- |
| Week 10 |
May 09
|
- |
13 |
• Reading Memo: Ch. 8
• Lab 9
• Project Presentation #7
|
10 |
| Week 11 |
May 16
|
- |
20 |
• Reading Memo: Ch. 9
• Lab 10
• No Project Presentation
|
12 |
| Week 12 |
May 23
|
- |
27 |
• Reading Memo: Ch. 10
• Lab 11
• Project Presentation #8
|
12,13 |
| Week 13 |
May 30
|
- |
Jun 03 (Monday, May 30 - No Classes) |
• Reading Memo: Ch. 11
• Lab 12
• Project Presentation #9
|
- |
| Week 14 |
Jun 06
|
- |
10 |
• Reading Memo Ch. 12
• Lab 13
• Project Presentation #10
|
12,13 |
| Week 15 |
Jun 13
|
- |
17 |
Final Exam
TBD -- check the front/home page for
more announcements (as needed) |
- |
The proposed schedule (subject to some flexibility) is: Ch. 1-12
|