Home | | Schedule | | Assignments | | Lecture Notes
Topics for Exam1:
This sheet is intended to help you prepare for the first midterm exam in this course. The exam will
primarily focus on chapters 1 - 6.3 of the textbook and all the lectures through Friday, 2/25/05.
You should study your class notes, textbook readings, handouts, and homeworks.
The following topics have been covered in the first part of the course. Each of the following topics may appear on the exam.
Operating System Basics: Goals for an operating system: From the system point of view From the user point of view Definition of An Operating System Types of Operating systems: Batch Processing Multiprogramming Time Sharing systems Desktop systems Parallel systems UNIX and Shell scripts argc and argv Basic UNIX commands Definition of a Shell Pipes and redirecting I/O (in the command line) Setting file permissions Writing Shell Scripts Variables, Quotes, Expressions, Arguments Read, Conditionals, Loops Computer Systems: Components, Architecture Interrupts (Hardware and Software, Handling) Synchronous and Asynchronous I/O Direct Memory Access (DMA) Fetch Execute Cycle Storage structure (Primary and Secondary storage) Caching Hardware Protection Dual-mode operation System Calls I/O protection Memory protection CPU protection Operating System Structures Operating System Components and Services System Calls and System programs System Structure Simple structure (MS-DOS) Layered Structure Microkernels Virtual Machines Processes Process definition Process states and state diagrams Process Control Block( PCB) Switching between processes (Context switch) Scheduling Queues Process creation and Termination Cooperating processes Interprocess communication Direct and indirect communication Producer/Consumer problem Bounded buffers Message passing, Sockets, RPC'S, RMI'S UNIX Processes fork( ), exec( ), and wait( ) Diagramming process trees Redirecting I/O (implementation) UNIX pipes (implementation) Threads Definition. Processes vs. Threads Benefits User threads Kernel Threads Thread cancellation Signal Handling Thread pools Examples of threads in different systems Scheduling Short term, medium term and long term schedulers CPU and I/O burst cycle Pre-emptive and non-preemptive scheduling The dispatcher Scheduling criteria (and how to compute them) FCFS (first come first served) SJF (shortest job first) SRTF (shortest remaining time first) Estimating the length of the next CPU burst. Priority scheduling Round Robin scheduling