CSCI 2110CSCI 2132CSCI 2121
Use the command line of the UNIX environment. [CSCI 2132] Write command pipe-lines comprising multiple tools in the UNIX environment to solve simple problems. [CSCI 2132] Implement moderately complex programs in C. [CSCI 2132] Describe the structure and types of memory inside a computer. [CSCI 2121] Describe the structure, components, and operation of a general register machine. [CSCI 2121] Describe the purpose, function and implementation of interrupts in a computer system. [CSCI 2121] Implement subroutines and nested subroutine calls in assembly and describe the purpose and function of a process (program) stack. [CSCI 2121]
Identify the roles and components of an operating system.Explain what the "file" abstraction is.Describe how files are organized and managed in modern operating systems.Describe some of the problems that memory management must solve.Describe the structure and operation of the Unix File System.Describe the mutual exclusion problem and various mechanisms for solving it.Explain how demand paging is implemented.Explain what interrupts are and how they are used by an operating system.Formulate solutions to various synchronization problems.Compare and contrast various approaches to dealing with deadlock.Compare and contrast various page replacement algorithms.Explain what a process is and how processes are created.Explain what happens in the course of an interrupt or a system call.Explain what virtual memory is, why it is useful, and how it can be implemented.Compare and contrast various inter-process communication paradigms.Compare and contrast various process scheduling algorithms.Describe what resource an operating system must manage and protect.Explain what deadlocks are and suggest ways of dealing with them.Design software components that are safe to use in a multithreaded environment.Write multithreaded programs.