College of Science and Health Department of Computer Science Course Coverage Assessment Report Course: ___CS 3450 Operating Systems____________________________________________________________________________________________________________ Instructor: ______________________________________________________________________________________________________________________________ _____ Semester: ___________________________________________________________________ __________________________________________________________________ Topics Course Learning Outcome Lecture 1. Hardware: 2. CPU: majors components, modes of operation, and instruction execution cycles. Main memory: addressing, RAM, ROM, and CMOS. I/O systems: input devices, output devices, controllers, and port addressing. Secondary storage: drives and controllers System interconnection: bus system and the bus architecture. Interrupts: internal/ external interrupts and the interrupt vector. The DMA controller and the clock Sending and receiving data from the main memory. I/O operations: programmed I/O, interrupt-driven I/O, and DMA I/O. The memory hierarchy. Software Application and system programs (editors, assemblers, compilers, linkers, and loaders). Operating systems: functions of a modern operating system. System services, system calls, and library functions. Kernel of an operating system, virtual memory, and device drivers. 3. History of operating systems. 4. Different type of operating systems: mainframe operating systems, server operating 5. systems, multiprocessor operating systems, personal computer operating systems, real time operating systems, embedded operating systems, and smart card operating systems. Operating system structures: monolithic systems, layered systems, virtual machines, exokernels, and client-server model. How is Covered? L1, L2, L15, L17 L4 L3 L23 L5, L23 topic HandsOn How is Knowledge accessed? HW Test Lab Project Comments/Suggestions About Learning Outcome and/or Topics (please use additional sheets if necessary) 6. Introduction to UNIX UNIX system: UNIX shell; UNIX users; obtaining on-line help. C language programming in the UNIX environment: output with printf, input with scanf; C/C++ programs and environment variables; memory layout of a C/C++ program; UNIX executable and library files; using the C language libraries; the standard C I/O library. L7 7. UNIX processes Process image and states of a process. UNIX system memory. Using UNIX system calls for process management. L4, L6, L7 8. Inter-process communication Race conditions. Mutual exclusion: implementations of mutual exclusion. Producer-consumer problem: semaphores and monitors. 9. Process scheduling Key issues related to scheduling: context switching; process behavior; when to schedule; categories of scheduling algorithms; scheduling algorithm goals. Scheduling algorithms in a batch system and in an interactive system. L4, L8, L9 L4, L10, L11 10. Deadlocks Conditions for deadlocks Modeling deadlocks Dealing with deadlocks L4, L12, L13, L14 11. Memory management Mono-programming without paging or swapping. Multi-programming with fixed partitions. Memory management with swapping. Virtual memory: paging, page replacement algorithms, and segmentation. 12. Principles of I/O software Goals of I/O software. Key issues in the design of I/O software. I/O layers. 13. The UNIX system’s files Types of files, I-nodes, and file access permissions. V-nodes and file table. System calls for regular file management and for directories management L4, L16 L4, L18, L19 L4, L20, L22 14. File system implementation File system layout. Booting the system. Implementing file systems and directories. 15. Other topics: virtualization and the cloud, security, multiple processor systems, UNIX, LINUX, and Android, Window 8, and operating system design. L4, L20, L21 L23 Comments/Suggestions about Prerequisites and Co-requisites: General Comments/Suggestions about the Course: Course Learning Outcomes 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. I am able to describe the major components of a computer system hardware with their functions. I am able to describe the communication between the CPU and the main memory or the controllers. I am able to describe the history and the evolution of operating systems. I am able to describe the major concepts used in modern operating systems. I am able to describe the different structures used in the implementation of operating systems. I am able to describe the concept of a process and process implementation. I am able to write programs that create and use processes in the UNIX environment. I am able to describe the concepts of race conditions and critical sections. I am able to describe most of the strategies for implementing mutual exclusions. I am able to describe the scheduling algorithm goals in different types of operating systems. I am able to describe one or more scheduling algorithms used in each type of operating system. I am able to describe the concept of deadlock. I am able to describe how deadlocks are modeled and detected in a system. I am able to describe the strategies used for dealing with deadlocks. I am able to describe the memory hierarchy. I am able to describe the memory management strategies used in most operating systems. I am able to describe the major components of the I/O hardware with their operations. I am able to describe the goals of the I/O software. I am able to describe the I/O software layers I am able to describe the file system of one or more operating systems. I am able to describe the file system implementation. I am able to write programs that use system calls for file and directory management in a UNIX system. I am able to describe the structure and the major components of at least one modern operating system.