23
CEG 433: Operating CEG 433: Operating Systems Systems Course Review at 2009 Course Review at 2009 Retreat Retreat Coordinator: Prabhaker Coordinator: Prabhaker Mateti Mateti Instructors: Mateti, Instructors: Mateti, Wischgoll, Pei Wischgoll, Pei

CEG 433: Operating Systems Course Review at 2009 Retreat Coordinator: Prabhaker Mateti Instructors: Mateti, Wischgoll, Pei

Embed Size (px)

Citation preview

CEG 433: Operating SystemsCEG 433: Operating SystemsCourse Review at 2009 RetreatCourse Review at 2009 Retreat

Coordinator: Prabhaker MatetiCoordinator: Prabhaker Mateti

Instructors: Mateti, Wischgoll, PeiInstructors: Mateti, Wischgoll, Pei

May 15, 2009May 15, 2009 Mateti:CEG433Mateti:CEG433 22

Course ContentCourse Content1.1. Operating Systems, Systems implementation languages; From Operating Systems, Systems implementation languages; From

booting to shut down.booting to shut down.2.2. File system design, i-nodes, volumes, mount; file open, read/write, File system design, i-nodes, volumes, mount; file open, read/write,

close and unlink.close and unlink.3.3. System calls, Library calls, Signal handling. setjmp and longjmp.System calls, Library calls, Signal handling. setjmp and longjmp.4.4. Memory management, Dynamic storage allocation and liberation.Memory management, Dynamic storage allocation and liberation.5.5. Virtual memory. Paging and Segmentation; Swapping; Page Virtual memory. Paging and Segmentation; Swapping; Page

replacement algorithms.replacement algorithms.6.6. Processes, Threads, SchedulingProcesses, Threads, Scheduling7.7. Inter Process Communication mechanismsInter Process Communication mechanisms8.8. IO subsystem: DMA; Interrupt handlers; driver interfaces; overview IO subsystem: DMA; Interrupt handlers; driver interfaces; overview

of drivers.of drivers.9.9. Case Studies: Linux and Windows.Case Studies: Linux and Windows.

May 15, 2009May 15, 2009 Mateti:CEG433Mateti:CEG433 33

Class/Laboratory ScheduleClass/Laboratory Schedule

Each week has two lectures of 75-minutes Each week has two lectures of 75-minutes each.each.

There is no scheduled lab. Students are There is no scheduled lab. Students are expected to work in open labs for no less expected to work in open labs for no less than 2 hours a week.than 2 hours a week.

There is project work required in the There is project work required in the course.course.

May 15, 2009May 15, 2009 Mateti:CEG433Mateti:CEG433 44

GradingGrading

Mid TermMid Term 30%30%FinalFinal 35%35%ProjectProject 35%35%

May 15, 2009May 15, 2009 Mateti:CEG433Mateti:CEG433 55

Prerequisites by TopicPrerequisites by Topic

1.1. Programming experience in C++ .Programming experience in C++ .

2.2. Program development tools: editors, Program development tools: editors, compilers, linkers, debuggers.compilers, linkers, debuggers.

3.3. Data structures: arrays, stacks, queues, Data structures: arrays, stacks, queues, lists, binary trees.lists, binary trees.

4.4. Familiarity with the Unix environment.Familiarity with the Unix environment.

5.5. Computer Architecture: Interrupts, Computer Architecture: Interrupts, Kernel/User modes, IO, DMAKernel/User modes, IO, DMA

May 15, 2009May 15, 2009 Mateti:CEG433Mateti:CEG433 66

Discussion of PrerequisitesDiscussion of Prerequisites Prerequisite courses: CEG 320, CS 400Prerequisite courses: CEG 320, CS 400 CEG 320CEG 320

CPU Architecture details are essential.CPU Architecture details are essential. CPU modes remain confusing.CPU modes remain confusing. Can use more of Can use more of

interrupts and traps.interrupts and traps. IO devicesIO devices

Virtual memory does not belong in 320.Virtual memory does not belong in 320. Assembly language unused.Assembly language unused.

CS 400CS 400 Unused: The advanced data structures. Unused: The advanced data structures. Used: Developing larger programs.Used: Developing larger programs.

May 15, 2009May 15, 2009 Mateti:CEG433Mateti:CEG433 77

Playing with PrerequisitesPlaying with Prerequisites

2007: CS 242 and CEG 233 and CEG 3202007: CS 242 and CEG 233 and CEG 320CEG 433 requires the programming CEG 433 requires the programming

maturity of seniorsmaturity of seniorsSoftware ToolsSoftware Tools

Back to the basics: shell, make, g++, gdbBack to the basics: shell, make, g++, gdbNo IDENo IDELinking not understoodLinking not understood

May 15, 2009May 15, 2009 Mateti:CEG433Mateti:CEG433 88

Course Contribution to Program Course Contribution to Program Educational ObjectivesEducational Objectives

CEG 433 contributes to Objectives 1 and 2.  CEG 433 contributes to Objectives 1 and 2.  Through exposure to the internals of operating Through exposure to the internals of operating

systems, it deepens the skills to produce systems, it deepens the skills to produce efficient software.  efficient software. 

The design experience gained through the The design experience gained through the course project is realistic.  course project is realistic. 

The student is also prepared to move on to other The student is also prepared to move on to other operating systems, both past and future ones.operating systems, both past and future ones.

May 15, 2009May 15, 2009 Mateti:CEG433Mateti:CEG433 99

Course Objectives: The student Course Objectives: The student should have learned the following:should have learned the following:

1.1. Design issues in developing larger and Design issues in developing larger and complex programs.complex programs.

2.2. Internal structure of hierarchical file systems.Internal structure of hierarchical file systems.

3.3. Memory allocation, and virtual memory usage.Memory allocation, and virtual memory usage.

4.4. Signal and exception handling.Signal and exception handling.

5.5. The interactions between applications and the The interactions between applications and the hardware.hardware.

6.6. Programming with multiple processesProgramming with multiple processes

May 15, 2009May 15, 2009 Mateti:CEG433Mateti:CEG433 1010

Learning Outcomes: Learning Outcomes: The student The student should be able to:should be able to:

Develop, test, and debug programs in Unix.Develop, test, and debug programs in Unix. Use system calls and library calls effectively.Use system calls and library calls effectively. Improve performance of programs by tuning Improve performance of programs by tuning

virtual memory usage, and file IO.virtual memory usage, and file IO. Design and build newer file systems for newer Design and build newer file systems for newer

storage devices on any OS. storage devices on any OS. Design and build multiple process programs.Design and build multiple process programs.

May 15, 2009May 15, 2009 Mateti:CEG433Mateti:CEG433 1111

ABET Criteria 3 Supporting ABET Criteria 3 Supporting StatementsStatements

A1: The directory structure in file systems is a tree. The addition of soft-links makes them 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 arbitrary directed graphs. Traversals of these structures is assumed. Process synchronization requires careful logic.requires careful logic.

A3: The engineering product development life cycle of requirements, specifications, design and 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 construction occurs in the OS projects. Also, trade-offs in simplicity of design versus achieved functionality are considered.functionality are considered.

B: The quality of memory management algorithms is evaluated via experiments.B: The quality of memory management algorithms is evaluated via experiments. C: This is a project driven course.C: This is a project driven course. E: Because of an understanding of the internals of an OS, better computer solutions can be E: Because of an understanding of the internals of an OS, better computer solutions can be

formulated.formulated. G: There is a short written report describing the design and testing aspects of the project. 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 Communicating with precision, knowing when to use prose and when to use appropriate technical terms, and programming notation is emphasized.terms, and programming notation is emphasized.

H: The development of user interfaces, and permissions to various computer resources is H: The development of user interfaces, and permissions to various computer resources is presented in the societal context.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 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.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.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 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.help the student receive prompt answers from other students and the instructor.

May 15, 2009May 15, 2009 Mateti:CEG433Mateti:CEG433 1212

Conformance to ABET SyllabusConformance to ABET Syllabus The course conforms to the published ABET The course conforms to the published ABET

syllabus.syllabus. Course ContentCourse Content

The course has been taught by Mateti and Wischgoll The course has been taught by Mateti and Wischgoll several times, and by Pei once (Summer 2008).several times, and by Pei once (Summer 2008).

There are no issues of conformance that need to be There are no issues of conformance that need to be addressed.addressed.

GradingGrading Minor (< 6%) variations in grading weights have Minor (< 6%) variations in grading weights have

occurred.occurred. Project work, Midterm and Finals remained at about Project work, Midterm and Finals remained at about

30% each.30% each.

May 15, 2009May 15, 2009 Mateti:CEG433Mateti:CEG433 1313

Evolution of ContentEvolution of Content Course content has been stable for the last ten terms but Course content has been stable for the last ten terms but

forfor Processes, IPC, Scheduling moved in (2007)Processes, IPC, Scheduling moved in (2007) Adv file sys, and large program dev work were reducedAdv file sys, and large program dev work were reduced IO subsys discussion reducedIO subsys discussion reduced

Across the country, undergrad OS design courses have Across the country, undergrad OS design courses have remained the same for the last several years.remained the same for the last several years.

The text book by Silberschatz et al., The text book by Silberschatz et al., Now in 8Now in 8thth Ed., Ed., Essentially the same as it was about two decades ago (but for Essentially the same as it was about two decades ago (but for

the addition/deletion of case study OS). the addition/deletion of case study OS). Now about $150.Now about $150.

May 15, 2009May 15, 2009 Mateti:CEG433Mateti:CEG433 1414

Course/Curriculum Revisions DoneCourse/Curriculum Revisions Done

433old + 434old == 433new + 434new.433old + 434old == 433new + 434new. [Old == pre-2007][Old == pre-2007]Moved concurrency basics into 433new.Moved concurrency basics into 433new.Moved IO subsystem and advanced file Moved IO subsystem and advanced file

system design to 434new.system design to 434new.CEG 433 remains a Required CourseCEG 433 remains a Required Course

BSCEBSCEBSCSBSCS

CEG 434 moved into Electives.CEG 434 moved into Electives.

May 15, 2009May 15, 2009 Mateti:CEG433Mateti:CEG433 1515

Lab Work EvolutionLab Work Evolution

Project work done on Linux PCs.Project work done on Linux PCs.Students experience KDE and Gnome Students experience KDE and Gnome

desktop environments.desktop environments.Many students have their home PCs Many students have their home PCs

running installed/LiveCD Linux.running installed/LiveCD Linux.Many students have better PCs at home Many students have better PCs at home

than our lab PCs.than our lab PCs.

May 15, 2009May 15, 2009 Mateti:CEG433Mateti:CEG433 1616

Course ImprovementCourse Improvement

Students need significantly more “help Students need significantly more “help hours” than we can provide with instructor hours” than we can provide with instructor and grader office hours. and grader office hours.

Grader (limited to 10 hours/week) has 4 Grader (limited to 10 hours/week) has 4 hours/week of help hours and the rest for hours/week of help hours and the rest for grading. Not enough.grading. Not enough.

No TA has been assigned for the last 15 No TA has been assigned for the last 15 years to this required course.years to this required course.

May 15, 2009May 15, 2009 Mateti:CEG433Mateti:CEG433 1717

Teaching AssignmentsTeaching Assignments

Should the course be assigned to the Should the course be assigned to the same instructors again and again?same instructors again and again?My answers:My answers:

Alternate terms taught by different instructors.Alternate terms taught by different instructors.When the course is taught by multiple instructors When the course is taught by multiple instructors

significant conformance issues are observed.significant conformance issues are observed.Common problem with several of our courses.Common problem with several of our courses.

May 15, 2009May 15, 2009 Mateti:CEG433Mateti:CEG433 1818

Course ScheduleCourse Schedule

Should the course be taught every term?Should the course be taught every term?We typically scheduled it three/four times We typically scheduled it three/four times

(including Summers) an year. (including Summers) an year. With GTA support, class size can be With GTA support, class size can be

increased, and class scheduled in increased, and class scheduled in alternate terms only.alternate terms only.

May 15, 2009May 15, 2009 Mateti:CEG433Mateti:CEG433 1919

Course/Curriculum Revision Course/Curriculum Revision SuggestionsSuggestions

ObservationObservation Our lower level courses are Windows based.Our lower level courses are Windows based. Our higher level courses are Unix based.Our higher level courses are Unix based.

Is this “good”?Is this “good”? Is this what our constituencies want?Is this what our constituencies want? OpinionsOpinions

CEG 433 and 434 (new or old) can be taught based CEG 433 and 434 (new or old) can be taught based on Windows XP/Vista/7 – without compromising on Windows XP/Vista/7 – without compromising conceptual strengths. conceptual strengths.

But, exposure to multiple OSs is crucial to prevent But, exposure to multiple OSs is crucial to prevent intellectual crippling of the students in the long run.intellectual crippling of the students in the long run.

May 15, 2009May 15, 2009 Mateti:CEG433Mateti:CEG433 2020

Course Project HeartacheCourse Project Heartache

ObservationsObservationsStudents struggle with the project work.Students struggle with the project work.Students feel 4 term-hrs are not enough.Students feel 4 term-hrs are not enough.Teams do not work out.Teams do not work out.

FactsFactsP0 src code is given: 1000 LOCP0 src code is given: 1000 LOCP4 final version that individual students are P4 final version that individual students are

expected to produce: 2000 LOCexpected to produce: 2000 LOC

May 15, 2009May 15, 2009 Mateti:CEG433Mateti:CEG433 2121

OS Courses ElsewhereOS Courses Elsewhere

OS courses are among the hardest.OS courses are among the hardest.Project work often based on “simulators”Project work often based on “simulators”

NachosNachosOS 161OS 161PintosPintos

OS course projectsOS course projectsMore substantial in most places.More substantial in most places.Almost always cumulativeAlmost always cumulativeOften done in teams of 2 or 3.Often done in teams of 2 or 3.

May 15, 2009May 15, 2009 Mateti:CEG433Mateti:CEG433 2222

CEG 433 in the SemestersCEG 433 in the Semesters

Should be 4 semester credit hoursShould be 4 semester credit hours3 lecture hours/week3 lecture hours/week2 hours of scheduled lab work/week2 hours of scheduled lab work/week

At many universities: 3 sem hrs At many universities: 3 sem hrs The recent addition of Processes …The recent addition of Processes …

In a 10 week term: unsatisfactoryIn a 10 week term: unsatisfactoryRequired Required Elective ? Elective ?

May 15, 2009May 15, 2009 Mateti:CEG433Mateti:CEG433 2323

CEG 433 SummaryCEG 433 Summary 4 credit hours4 credit hours

75-minute lectures: 2 per week75-minute lectures: 2 per week Expected lab work: 2 hours per weekExpected lab work: 2 hours per week

Official Lab: OSIS Lab (429 RC)Official Lab: OSIS Lab (429 RC) Unscheduled labsUnscheduled labs Open 24x7Open 24x7 30 general purpose PCs.30 general purpose PCs. One file server/firewall.One file server/firewall. Configured to multi-boot into several OS.Configured to multi-boot into several OS.

SuggestionsSuggestions Scheduled lab hours.Scheduled lab hours. TA stationed in the Lab.TA stationed in the Lab. 4 credit hours in the semesters also4 credit hours in the semesters also