CS430 – Operating Systems 07/06/2006 – 08/27/2006 – Fort Collins 6:00pm - 10:00pm Thursdays - Cluster Facilitator Information Alan Rossi home phone: 303-452-2957 email: arossi@regis.edu work phone: 303-430-2063 web site: http://academic.regis.edu/arossi Course Description Studies the organization and operation of computer systems. Includes batch processing, inter-active processing, multiprogramming systems, storage management, data sharing in main storage, resource control, file systems and processor scheduling. Course Outcomes Each Student is expected to achieve the following outcomes: Successful completion of written report Successful completion of oral presentation Successful completion of homework assignments Full and Complete participation in class discussions and exercises Successful completion of exams Course Prerequisites CS341 - Data Structures Course Materials Silberschatz, A. and Galvin, P. Operating System Concepts (6th ed.). Wiley & Sons; ISBN: 0-471-25060-0. First Night Assignment Read Chapters 1 & 2 in the text. Be Prepared to ASK QUESTIONS on unclear areas in the reading. Grading Standards and Course Work Specifications Each weekly discussion question response shall be a minimum of one page per Topic. These discussion question answers are to be specific to the OS you have chosen for your project. Your papers should be written at the level of one techie to another. You should assume that your audience has a thorough understanding of the topics we are learning in this course. Grading Scale A = 93% - 100% B+ = 88% - 89% C+ = 78% - 79% D+ = 68% - 69% F = Below 60% A- = 90% - 92% B = 83% - 87% C = 73% - 77% D = 63% - 67% Grading Valuation Participation Weekly essays Final essay Presentation Exams 5% 20% 20% 15% 40% B- = 80% - 82% C- = 70% - 72% D- = 60% - 62% Academic Dishonesty Regis University is committed to intellectual integrity in its academic pursuits. Sanctions may, therefore, be imposed by the School for Professional Studies Undergraduate faculty, departments, or programs for cheating (defined as using inappropriate sources of information on a test) or plagiarism (defined as presenting as one’s own, the ideas, words, or products of another). Such sanctions may include a failing grade on the assignment, failure of the course, or expulsion of the student from the course or the department. Attendance/Participation The expectation is for students to attend all class sessions. Because of the accelerated nature of the course work in the School for Professional Studies, missing any class may have a negative impact on the student’s learning and course performance. Any student who misses the first class must contact the facilitator/instructor or the Faculty and Curriculum Department either prior to the first class session or as close to the first class session as possible. If a student fails to do so, he/she will automatically be dropped from the course. A student who has not attended the first class session may be admitted to the course only with facilitator/instructor permission. Make up work may be required if the student misses a class. This work is arranged, in advance if possible, between the facilitator/instructor and the student. The student is responsible for contacting the facilitator for the additional assignments(s). Incomplete Grade A grade of Incomplete or ‘I” denotes that the required work for the course is incomplete due to unforeseen circumstances. Unforeseen circumstances mean, for example, that an accident, an illness, a death, or a major life transition has occurred. This grade is awarded at the discretion of the instructor and is submitted with an alternate grade of “I/F.” A student must submit a written request to the instructor asking that an incomplete grade be assigned prior to the end of the term in which the course is taken. The course instructor will determine the length of time for course completion, and the remaining requirements to complete the course; however the maximum time for completion is the end of the following semester. Faculty will notify students in writing of the approval/denial of their request and provide instructions and guidelines required to resolve the incomplete grade. If the course work is not completed by the end of the next applicable semester and a grade change form submitted by the instructor, the incomplete grade reverts to the alternate grade assigned by the instructor and is calculated in the grade point average. Learning Topics Learning Topic #1: Learning Topic #2: Learning Topic #3: Learning Topic #4: Learning Topic #5: Learning Topic #6: Learning Topic #7: Learning Topic #8: Learning Topic #9: Learning Topic #10: Learning Topic #11: Learning Topic #12: Learning Topic #13: Learning Topic #14: Learning Topic #15: Learning Topic #16: Learning Topic #17: Operating Systems Overview Operating System Components and Services Process Concepts Job Process Scheduling Concurrent Process Synchronization Process Deadlocks Memory Organization and Management Virtual Memory Management File System Interface File System Implementation I/O Subsystems Secondary Storage Organization & Management Tertiary Storage Devices Protection Concepts Operation System Security Networks Distributed Systems Course Assignments Assignments to Be Completed For 7/20/2006 Topic: Operating Systems Overview Question 1: Discuss the differences between multitasking, multiprogramming, and timesharing. Topic: Operating System Components and Services Question 2: Discuss the interrupt architecture and Direct Memory Access (DMA). Explain how these techniques work. Question 3: In any high level programming language, the program statements are System Calls. Indicate whether this statement is true or false. Provide a rationale for your answer. Topic: Process Concepts Question 4: Although it is important for a process to be able to spawn a new process, it can also be dangerous. Consider the consequences of allowing a user to run the following: do (forever) spawn a new process just like me; If a system allowed such a process to run, what would the consequences be? How could an operating system designer safeguard against such processes? Assignments to Be Completed For 7/20/2006 Topic: Job & Processor Scheduling Question 1a: · Which of the following basic CPU scheduling algorithms do you think is best? Support your answer. o First-Come, First-Served o Shortest-Job-First; Priority o Round-Robin o Multilevel Queue o Multilevel Feedback Queue Question 1b: Describe the effects of each of the following methods of assigning a quantum time: o Quantum fixed and identical for all users o Quantum variable and identical for all users at any one time o Quantum fixed and unique to each user o Quantum variable and unique to each user Topic: Concurrent Process Synchronization Question 2a: Explain why spinlocks are not appropriate for single-processor systems yet are often used in multiprocessor systems. Question 2b: Explain why interrupts are not appropriate for implementing synchronization primitives in multiprocessor systems. Assignments to Be Completed For 08/03/2006 Topic: Process Deadlocks Question 1: Discuss why the system will be in a deadlock state if the following conditions exist at the same time: o Mutual exclusion o Hold and wait o No preemption o Circular wait Also, give a brief intuitive argument for the reason why each individual condition is necessary. Topic: Real Memory Organization and Management Question 2: Discuss the different dynamic storage allocation algorithms, First-fit, Best-fit, and Worst-fit. What are the pros and cons of each algorithm? Which algorithm is the best? Support your argument. Topic: Managing Virtual Memory Question 3a: As the designer of a new virtual memory system, you have been given the choice of implementing paging or segmentation, but not both. Which would you choose, and why? Question 3b: Discuss why a programmer who writes programs specifically to exhibit good locality can expect a marked improvement in the execution efficiency of the programs. Which high-level language features should be emphasized and which should be avoided? Question 3c: Summarize the arguments for and against both of the following: a. small page sizes b. large page sizes Assignments to Be Completed For 08/03/2006 Topic: File System Interface Question 1: Discuss the motivations for structuring file systems hierarchically. Topic: File System Implementation Question 2: Discuss file allocation implementation and its impact on performance. Assignments to Be Completed For 08/17/2006 Topic: I/O Subsystems Question 1: · Discuss circumstances in which blocking I/O should be used, and circumstances in which nonblocking I/O should be used. Topic: Secondary Storage Organization and Management Question 2: In what sense is SCAN fairer than SSTF? C-SCAN fairer than SCAN? Elaborate. Topic: Tertiary Storage Devices Question 3: Discuss the types of tertiary storage used in your workplaces, and your experiences with them. Assignments to Be Completed For 08/17/2006 Topic: Protection Concepts Question 1a: Discuss the strength and weaknesses of implementing an access matrix using access lists that are associated with objects. Question 1b: Discuss the strength and weaknesses of implementing an access matrix using capabilities that are associated with domains. Topic: Operating System Security Question 2: Discuss a means by which managers of systems connected to the Internet could have designed their systems to limit or eliminate the damage done by a worm. What are the drawbacks of making the change that you suggest. Assignments to Be Completed For 08/24/2006 Topic: Networks Question 1: What are the advantages of using dedicated hardware devices for routers and gateways? What are the disadvantages of using these devices compared with using general-purpose computers? Topic: Distributed Systems Question 2: Briefly discuss the different algorithms for implementing mutual exclusion in a distributed environment. From your point of view, which algorithm is best? Support your argument. Report and Oral Assignment This project requires a written report and an oral presentation. Prepare an analysis of a mini-, or mainframe operating system. A microcomputer operating system is not acceptable. Some possible operating systems are (or you may choose your own): z/OS (aka MVS or OS/390), UNIX, LINUX, SOLARIS, IRIX, etc. The analysis is to be presented during the last workshop, both orally to the class and in written format. The written analysis is expected to be at least 18 - 24 pages, NOT including supporting illustrations. Both oral and written forms of the analysis will be graded. The oral presentation is to include graphic illustrations of the organization and key elements or components of the operating system, plus a 1 or 2 page summary handout. The following topics are required for inclusion in your analysis: - Design principles underlying the operating system (batch, online, etc.). - Major elements of process management (process status, process control, synchronization, etc.) - Methods for inter-process communication (shared memory or message systems, direct or indirect, one or two way, e.g. mailboxes, popes or ports). Any networking capabilities may also be discussed here or in an additional topic category. - Major elements of memory management (overlays, partitions, multi-programming, virtual memory, etc.). - Major elements of scheduling (algorithms used, deadlock handling, potential starvation problems, etc.). - Major elements of file system handling (access methods, directory systems, file protection, etc.). - Methods for handling I/O functions. - Major elements of the programming interface (Job Control Language, what the programmer needs to know to use the system, etc.). - Advantages and disadvantages of this operating system (in which environments would this operating system work best). All selections require facilitator approval to avoid duplication. All approvals will be on a first-come, first-served basis. The oral presentation must be at least 5 minutes in length. You will have visual aids that are large enough to be read from the back of the room and know your topic well enough to present it rather than read it. Late Assignments/Assignment Revisions Late projects or homework assignments will receive a 15% penalty and will not be accepted more than one week late. Course Calendar Due to this course being a cluster, we will meet only 5 times. Students are still responsible for ALL material. Date 07/06/2006 07/20/2006 08/03/2006 08/17/2006 08/24/2006 Topics Introduction, OS Structures, Processes, Threads CPU Scheduling, Process Synchronization Deadlocks, Main Memory, Virtual Memory File-System Interface & Implementation Mass-Storage Structure, I/O Systems Midterm Exam covering chapters 1 – 9 Protection, Security Distributed System Stucts., File Sys., Coordination Project Presentations and Reports Due Final Exam covering chapters 10 - 18 Reading Chap. 1 – 4 Chap. 5 – 9 Activities Wayne Cook - Substitue Chap. 10 – 13 Midterm exam Chap. 14 – 18 Final exam