CSCI 346 Operating Systems--Spring 2011

    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 - 5 of the textbook and all the lectures through Tuesday, 3/15/11. 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