CEG433-ABET-Review
Download
Report
Transcript CEG433-ABET-Review
CEG 433: Operating Systems
Course Review at 2009 Retreat
Coordinator: Prabhaker Mateti
Instructors: Mateti, Wischgoll, Pei
Course Content
1.
2.
3.
4.
5.
6.
7.
8.
9.
Operating Systems, Systems implementation languages; From
booting to shut down.
File system design, i-nodes, volumes, mount; file open, read/write,
close and unlink.
System calls, Library calls, Signal handling. setjmp and longjmp.
Memory management, Dynamic storage allocation and liberation.
Virtual memory. Paging and Segmentation; Swapping; Page
replacement algorithms.
Processes, Threads, Scheduling
Inter Process Communication mechanisms
IO subsystem: DMA; Interrupt handlers; driver interfaces; overview
of drivers.
Case Studies: Linux and Windows.
May 15, 2009
Mateti:CEG433
2
Class/Laboratory Schedule
Each week has two lectures of 75-minutes
each.
There is no scheduled lab. Students are
expected to work in open labs for no less
than 2 hours a week.
There is project work required in the
course.
May 15, 2009
Mateti:CEG433
3
Grading
Mid Term
Final
Project
May 15, 2009
30%
35%
35%
Mateti:CEG433
4
Prerequisites by Topic
1.
2.
3.
4.
5.
Programming experience in C++ .
Program development tools: editors,
compilers, linkers, debuggers.
Data structures: arrays, stacks, queues,
lists, binary trees.
Familiarity with the Unix environment.
Computer Architecture: Interrupts,
Kernel/User modes, IO, DMA
May 15, 2009
Mateti:CEG433
5
Discussion of Prerequisites
Prerequisite courses: CEG 320, CS 400
CEG 320
CPU Architecture details are essential.
CPU modes remain confusing.
Can use more of
interrupts and traps.
IO devices
Virtual memory does not belong in 320.
Assembly language unused.
CS 400
Unused: The advanced data structures.
Used: Developing larger programs.
May 15, 2009
Mateti:CEG433
6
Playing with Prerequisites
2007: CS 242 and CEG 233 and CEG 320
CEG 433 requires the programming
maturity of seniors
Software Tools
Back to the basics: shell, make, g++, gdb
No IDE
Linking not understood
May 15, 2009
Mateti:CEG433
7
Course Contribution to Program
Educational Objectives
CEG 433 contributes to Objectives 1 and 2.
Through exposure to the internals of operating
systems, it deepens the skills to produce
efficient software.
The design experience gained through the
course project is realistic.
The student is also prepared to move on to other
operating systems, both past and future ones.
May 15, 2009
Mateti:CEG433
8
Course Objectives: The student
should have learned the following:
1.
2.
3.
4.
5.
6.
Design issues in developing larger and
complex programs.
Internal structure of hierarchical file systems.
Memory allocation, and virtual memory usage.
Signal and exception handling.
The interactions between applications and the
hardware.
Programming with multiple processes
May 15, 2009
Mateti:CEG433
9
Learning Outcomes: The student
should be able to:
Develop, test, and debug programs in Unix.
Use system calls and library calls effectively.
Improve performance of programs by tuning
virtual memory usage, and file IO.
Design and build newer file systems for newer
storage devices on any OS.
Design and build multiple process programs.
May 15, 2009
Mateti:CEG433
10
ABET Criteria 3 Supporting
Statements
A1: The directory structure in file systems is a tree. The addition of soft-links makes them arbitrary
directed graphs. Traversals of these structures is assumed. Process synchronization requires
careful logic.
A3: The engineering product development life cycle of requirements, specifications, design and
construction occurs in the OS projects. Also, trade-offs in simplicity of design versus achieved
functionality are considered.
B: The quality of memory management algorithms is evaluated via experiments.
C: This is a project driven course.
E: Because of an understanding of the internals of an OS, better computer solutions can be
formulated.
G: There is a short written report describing the design and testing aspects of the project.
Communicating with precision, knowing when to use prose and when to use appropriate technical
terms, and programming notation is emphasized.
H: The development of user interfaces, and permissions to various computer resources is
presented in the societal context.
I: The student realizes that in his/her life-time he will need to work with many OS, that there will
not always be courses to take, that he should engage in life-long learning.
J: The student learns about contemporary issues such as the open source movement.
K: Modern program development tools are used in the project, and Internet based discussions
help the student receive prompt answers from other students and the instructor.
May 15, 2009
Mateti:CEG433
11
Conformance to ABET Syllabus
The course conforms to the published ABET
syllabus.
Course Content
The course has been taught by Mateti and Wischgoll
several times, and by Pei once (Summer 2008).
There are no issues of conformance that need to be
addressed.
Grading
Minor (< 6%) variations in grading weights have
occurred.
Project work, Midterm and Finals remained at about
30% each.
May 15, 2009
Mateti:CEG433
12
Evolution of Content
Course content has been stable for the last ten terms but
for
Processes, IPC, Scheduling moved in (2007)
Adv file sys, and large program dev work were reduced
IO subsys discussion reduced
Across the country, undergrad OS design courses have
remained the same for the last several years.
The text book by Silberschatz et al.,
Now in 8th Ed.,
Essentially the same as it was about two decades ago (but for
the addition/deletion of case study OS).
Now about $150.
May 15, 2009
Mateti:CEG433
13
Course/Curriculum Revisions Done
433old + 434old == 433new + 434new.
[Old == pre-2007]
Moved concurrency basics into 433new.
Moved IO subsystem and advanced file
system design to 434new.
CEG 433 remains a Required Course
BSCE
BSCS
CEG 434 moved into Electives.
May 15, 2009
Mateti:CEG433
14
Lab Work Evolution
Project work done on Linux PCs.
Students experience KDE and Gnome
desktop environments.
Many students have their home PCs
running installed/LiveCD Linux.
Many students have better PCs at home
than our lab PCs.
May 15, 2009
Mateti:CEG433
15
Course Improvement
Students need significantly more “help
hours” than we can provide with instructor
and grader office hours.
Grader (limited to 10 hours/week) has 4
hours/week of help hours and the rest for
grading. Not enough.
No TA has been assigned for the last 15
years to this required course.
May 15, 2009
Mateti:CEG433
16
Teaching Assignments
Should the course be assigned to the
same instructors again and again?
My answers:
Alternate
terms taught by different instructors.
When the course is taught by multiple instructors
significant conformance issues are observed.
Common problem with several of our courses.
May 15, 2009
Mateti:CEG433
17
Course Schedule
Should the course be taught every term?
We typically scheduled it three/four times
(including Summers) an year.
With GTA support, class size can be
increased, and class scheduled in
alternate terms only.
May 15, 2009
Mateti:CEG433
18
Course/Curriculum Revision
Suggestions
Observation
Our lower level courses are Windows based.
Our higher level courses are Unix based.
Is this “good”?
Is this what our constituencies want?
Opinions
CEG 433 and 434 (new or old) can be taught based
on Windows XP/Vista/7 – without compromising
conceptual strengths.
But, exposure to multiple OSs is crucial to prevent
intellectual crippling of the students in the long run.
May 15, 2009
Mateti:CEG433
19
Course Project Heartache
Observations
Students struggle with the project work.
Students feel 4 term-hrs are not enough.
Teams do not work out.
Facts
P0 src code is given: 1000 LOC
P4 final version that individual students are
expected to produce: 2000 LOC
May 15, 2009
Mateti:CEG433
20
OS Courses Elsewhere
OS courses are among the hardest.
Project work often based on “simulators”
Nachos
OS 161
Pintos
OS course projects
More substantial in most places.
Almost always cumulative
Often done in teams of 2 or 3.
May 15, 2009
Mateti:CEG433
21
CEG 433 in the Semesters
Should be 4 semester credit hours
3 lecture hours/week
2 hours of scheduled lab work/week
At many universities: 3 sem hrs
The recent addition of Processes …
In a 10 week term: unsatisfactory
Required Elective ?
May 15, 2009
Mateti:CEG433
22
CEG 433 Summary
4 credit hours
75-minute lectures: 2 per week
Expected lab work: 2 hours per week
Official Lab: OSIS Lab (429 RC)
Unscheduled labs
Open 24x7
30 general purpose PCs.
One file server/firewall.
Configured to multi-boot into several OS.
Suggestions
Scheduled lab hours.
TA stationed in the Lab.
4 credit hours in the semesters also
May 15, 2009
Mateti:CEG433
23