200 likes | 293 Views
CEG 233: Linux and Windows Course Review. Coordinator: Prabhaker Mateti. Course Content. Operating Systems, Systems implementation languages; From booting to shut down. Unix file system design. The structure of i-nodes. The mechanism of mount.
E N D
CEG 233: Linux and WindowsCourse Review Coordinator: Prabhaker Mateti
Course Content • Operating Systems, Systems implementation languages; From booting to shut down. • Unix file system design. The structure of i-nodes. The mechanism of mount. • The semantics and mechanics of file open, read/write, close and unlink. • Shell Programming, File IO, redirection, Filters and pipes. Pointers to functions. • main(argc, argv, envp). Unix system calls, Signal handling. setjmp and longjmp. • Dynamic storage allocation and liberation. • Virtual memory. Address spaces. Swapping, Page replacement algorithms. • IO subsystem: DMA; Interrupt handlers; driver interfaces; overview of drivers. • Case Studies: Linux or 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 one project for the course. Typically, the project is split into five pieces worth 5+5+10+5+5% respectively. Mateti:CEG433
Grading • Mid Term 30% • Final 35% • Project 30% • Newsgroup 05% 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, Hardware Protection 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
Contribution to Professional Component • CEG 433 contributes 4 hours to the Criterion 4(b), and also contains engineering design. 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. Mateti:CEG433
Learning Outcomes: The student should be able to: • Develop, test and debug programs in Unix. • Able to 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. 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. • 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, and the anti-trust case of Microsoft. • K: Modern program development tools are used in the project, and Internet based discussions (news:wright.cs.433 ) 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 the coordinator for the last ten terms. • 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
Course Evolution • Course content has been stable for the last ten terms. • 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 7th Ed., is essentially the same as it was about a decade ago (but for the addition/deletion of case study OSs). Mateti:CEG433
Course Evolution • Project work moved from X11 terminal labs to well-equipped 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 instructor again and again? • My answers: • Alternate terms taught by different instructors. • When the course was taught by multiple instructors (several years ago) significant conformance issues were observed. • Common problem with several of our courses. Mateti:CEG433
Course Schedule • Should the course be taught every term? • We typically scheduled it four times (including Summers) an year. (From 1989 to Spring 2005?) • Not offered in Summer 2005, Summer 2006. • With GTA support, class size can be increased, and class scheduled in alternate terms only. Mateti:CEG433
Course/Curriculum Revision Suggestions • Redistribute 433 + 434 into 433new and 434new. • 433old + 434old == 433new + 434new. • Move concurrency basics into 433new. • Move IO subsystem and advanced file system design to 434new. • Keep CEG 433new as a Required Course. • Move CEG 434new into Electives. 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 – without compromising conceptual strengths. • Exposure to multiple OSs is crucial to prevent intellectual crippling of the students in the long run. Mateti:CEG433
CEG 433: 4 credit hours • Scheduled Work • 75-minute lectures: 2 per week • Expected lab work: 2 hours per week • Unscheduled labs • Open 24x7 • Official Lab: OSIS Lab (429 RC) • 26 general purpose PCs. • One file server/firewall. • Configured to multi-boot into several Oss. • Can the assigned project work be done elsewhere? • Yes. • Suggestions • Scheduled lab hours. • Teaching assistant stationed in the Lab. Mateti:CEG433