Computer Science and Engineering CSE 4743 Operating Systems II CREDIT/CONTACT HOURS: Credit Hours: 3, Contact Hours: 45 COORDINATOR: Dr. Yoginder S. Dandass TEXTBOOKS: William Stallings, Operating Systems, Sixth Edition, Pearson, 2009. a. Supplemental Material: No required material SPECIFIC COURSE INFORMATION: Catalog Description: Three hours lecture. Integrated treatment of hardware and software concepts in operating systems design; procedure implementation; creation and control of processes; name and space management. a. Prerequisites: CSE 4733/6733 with grade of C or better b. Required/Elective: Computer Science – Elective Software Engineering – Elective Computer Engineering – Elective SPECIFIC GOALS OF THE COURSE: a. Specific Outcomes of Instruction: 1. Develop a student understanding of the relationship between the microprocessor, system busses, memory, and I/O controllers in modern systems. 2. Describe and implement the bootstrap process. 3. Understand and design memory allocation, virtual memory, and memory protection techniques used in modern day operating systems. 4. Understand and design processes, threads and context switching for a multiprocessor, multi-programmed system. 5. Understand and design thread synchronization techniques including spinlocks and semaphores. 6. Design and develop I/O subsystems including serial communication and file systems. 7. Learn to work in small teams in order to implement the components designed developed in the course. b. Criterion 3 Outcomes: 1. Students will be able to analyze requirements and design key kernel-mode software components of a modern operating system. (EAC: a, d, g, j; CAC: a, d, f, j, k) 2. Students will be able to implement software exhibiting complex interactions with each other and hardware. (EAC: c, d, k; CAC: c, d, j, k) 3. Students will be able to design and implement memory space partitioning and allocation subsystem and a virtual memory subsystem. (EAC: a, c, e, j, k; CAC: a, c, e, i, j) 4. Students will be able to design and implement multi-threading, context switching, time sharing, and scheduling schemes. (EAC: b, c, j, k; CAC: b, c, i. k) Students will be able to design and implement thread-synchronization techniques and analytically prove that their systems are free from deadlocks. (EAC: a, b, k; CAC: a, b, i) 6. Students will be able to write design documents and reports documenting the designs, interfaces, and performance metrics of their software implementations. (EAC: c, d, g, h; CAC: b, c, d, g, h) 5. TOPICS COVERED: (Number of class hrs) 1. Introduction to the system hardware and processor architecture 5 2. Interfacing C and assembly-language modules 3 3. Memory allocation, virtual memory, and memory protection 9 4. Processes, threads, and context switching 9 5. Spinlocks, semaphores, and deadlocks 6 6. Interrupts and interrupt handling 4 7. File I/O and File systems 9