230 likes | 346 Views
CEG 433: Operating Systems Course Review at 2009 Retreat. Coordinator: Prabhaker Mateti Instructors: Mateti, Wischgoll, Pei. Course Content. Operating Systems, Systems implementation languages; From booting to shut down.
E N D
CEG 433: Operating SystemsCourse Review at 2009 Retreat Coordinator: Prabhaker Mateti Instructors: Mateti, Wischgoll, Pei
Course Content • 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. Mateti:CEG433
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. Mateti:CEG433
Grading • Mid Term 30% • Final 35% • Project 35% Mateti:CEG433
Prerequisites by Topic • 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 Mateti:CEG433
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. Mateti:CEG433
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 Mateti:CEG433
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. Mateti:CEG433
Course Objectives: The student should have learned the following: • 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 Mateti:CEG433
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. Mateti:CEG433
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. Mateti:CEG433
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. Mateti:CEG433
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. Mateti:CEG433
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. Mateti:CEG433
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. Mateti:CEG433
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. Mateti:CEG433
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. Mateti:CEG433
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. Mateti:CEG433
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. Mateti:CEG433
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 Mateti:CEG433
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. Mateti:CEG433
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 ? Mateti:CEG433
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 Mateti:CEG433