CS 450, FINAL Fall 2003 Review sheet December 9th, 8:00 – 10:00 am Style and format of exam: (100 pts total): 1) Written definitions: you will be required to give the definition for particular terms that I think are particularly important: Terms will be selected from the set of terms provided (DEFINITELY 100%) 2) SHORT ANSWER: concepts, what if, why, discuss type questions similar to the first exam. (DEFINITELY 100%) Chapters from your text_book: 1. Chapter 1: entire chapter: all sections. What is an operating system. What are the primary responsibilities of an OS.: supporting convenient use and controlling sharing of resources, User interface, process management, job and session management, device management, time management, memory management, file management, error handling, reliability and security, monitoring and accounting, system management. 2. Chapter 2: History of Operating systems: all sections. You should understand the major types of operating systems, how operating systems evolved, why they evolved, features of the different CATAGORIES of operating systems. How did punched cards, magnetic tapes, JCL, magnetic disks, and professional operators revolutionize computing, and how did they help lead to the evolution of operating systems. Know the importance of the “resident loader” (resident monitor). Understand the concepts of multiprogramming, spooling, and multitasking. What is meant by BATCH computing? What is a batch operating system. Important operating systems to know: OS/360, Input/Output system by GM, Master Control program (burroughs), Multics, UNIX, CP/M, MS/DOS, MVS, VMS Questions to consider: 2.6, 2.1, 2.5 3. Chapter 3: The user and program interface: (Entire Chapter, especially sections 3.1 -3.3, 3.5 – 3.7) you should be able to discuss issues pertinent to user interface design: What is a command line interface .vs. a graphical user interface. What is the function of the user interface .vs. the program interface. Different user interface types: batch, teletype, alphanumeric, graphic, multimedia, command line…qualities found in good interfaces (page 14): consistency, naturalness… 4. Chapter 4: process management: entire chapter!!! - very important chapter-You must understand what is a process, and what are the different types of processes and what are their characteristics. It is important to understand what it means to execute processes in an interleaved fashion. What is the role of the PCB? What is the context of a process? Understand what is a process state. What are the different process states? What causes a transition from one state to another.. focus on diagram 4-4 on page 9. Be able to discuss the various operations that can be performed on processes, and what they involve (especially creation and termination). Questions to consider: 4.5, 4.7, 4.8 5. Chapter 5: Process scheduling: !!!! entire chapter, very important!!!!! --- Know the 3 types of scheduling that can be performed and what each type of scheduling accomplishes. (long-term, short-term, medium-term), know the types of scheduling which must occur in the 3 major types of operating systems (real-time, batch, and interactive). Know the scheduling objectives that are often used in the evaluation of scheduling algorithms. Why is calculating the average waiting time important in assessing an algorithm. Understand the concept of aging!!! Understand what it means for a process to be CPU bound .vs. I/O bound. BE ABLE TO EXPLAIN, EACH OF THE FOLLOWING SCHEDULING ALGORITHMS. Also be able to estimate the average waiting time for a set of processes.. FIFO, shortest job next, shortest time remaining next, round robin (fifo), priority round robin, feed back queues, selfish scheduling, fair-share scheduling, Questions to consider: 5.2, 5.3, 5.4, 5.7, 5.8, 5.9 6. Chapter 6: Interrupts: Terms: Interrupt Interrupt handler Interrupt Vector Concepts: 1. KNOW THE ISSUES INVOLVED IN HANDLING INTERRUPTS: 1. SAVING THE STATE 2. LINKING TO THE INTERRUPT 3. HANDLING PARAMETERS 4. RESOURCE USE AND PROCEDURE CALLS 5. HANDLING OTHER INTERRUPTS 2. Understand how interrupts affect the flow of control within a program 3. Know the different categories of interrupts: i/O, alert, timer, machine faults, system request interrupts, program fault interrupts. Questions to review: 1, and 3 Instructors notes & slides: Power point slides on Interrupts. Chapter 7 – Memory management Terms: Memory Management Allocation Relocation Protection Static Allocation Dynamic Allocation Static memory Area Definition Dynamic memory area definition Fixed partitions Regions Fragmentation Statically defined partitions Dynamically defined regions Memory control block Boundary tag method First Fit Best fit Next fit Worst fit buddy system Relocation dictionary Based Addressing Fence address Bounds registers Protection keys Swapping Overlays Compaction Concepts: 1. Understand the three main issues involving memory management: Allocation, Relocation, and protection. 2. Understand STATIC vs DYNAMIC ALLOCATION of memory 3. understand static memory area definition and dynamic memory area definition 4. Under static allocation techniques: understand statically defined partitions and dynamically defined regions 5. Under dynamic allocation techniques: boundary tag method, first_fit, next_fit, best_fit, worst_fit 6. For protection strategies understand: fence addresses, bounds registers, Questions to Review: 1, 2, 3, 4, 6, 9, 11, 12 Instructors notes and slides: Power point slides on memory Management Chapter 8 – time management Terms: Clock programmable clocks hardware clocks Clock drivers time-of-day services timer queues Understand the various types of timing services – beginning on page 9 in chapter 8 Concepts: 1. Understand the different types of clocks 2. Understand some of the basic issues with respect to time of day services 3. Timer queues!!! and their use in managing program timing needs 4. Be able to list various types of time related services that a system might be required to provide, from the end of the chapter. Questions to Review: 1, 3, 4 Instructors notes and slides: There are both lecture notes and power point slides on time management Chapter 9 – I/O Devices: Terms: Device Drivers Blocking Character devices I/O controller Block devices Concepts: 1. Understand the differences between character devices and block devices. 2. Role of a device driver in performing I/O Chapter 10 – Device Management Terms: Device Registers I/O Control Block Polling Interrupts Event flag Buffer Management Double Buffering Disk/Software Caching I/O Queues Synchronous communications Asynchronous communications Concepts: 1. Understand the device driver components and responsibilities in diagram10-22 2. On page 5, understand the programming strategies: programmed I/O and block transfer! 3. Understand what happens during polling 4. Contrast using Interrupt drive I/O vs polling to service I/O requests. 5. Understand how buffering and double buffering can improve I/O performance 6. Understand how software/disk caching can improve I/O performance, and the drawbacks to this technique 7. Be able to discuss issues with managing I/O request queues in a multiprogramming environment Questions to Review: 1, 2, 3, 4 Instructors notes and slides: Power point slides, and lecture notes Chapter 12 – File management Terms: File system file manager file descriptor Volume logical volume physical volume Volume descriptor allocation table system area Simple contiguous organization contiguous organization with extents Free chain blocked organizations blocked chained organization File allocation table blocked indexed organization File attributes simple/single directories user directories Hierarchical directories buffers file control blocks Concepts 1. Understand the basic file operations discussed in my power point slides. (these are called primitive file operations in Dr. Mooney’s text) 2. Understand the purpose of a volume descriptor. 3. Understand how different areas are sometimes laid out on a volume: Volume descriptor, system area, allocation table, directory area, and file area 4. UNDERSTAND THE DIFFERENT FILE STORAGE ORGANIZATIONS, AND ISSUES RELATED TO INFORMATION RETAINED IN FILE DESCRIPTORS FOR EACH. (contiguous, contiguous with extents, blocked chained, blocked indexed) Questions to Review: 1, 2, 3, 4, 5, 9, and 10…. Instructors notes and slides: Instructor notes only Project manual: Some terms will be taken from chapters I-2, R3, and R2 SOME TEST QUESTIONS WILL COME FROM THESE CHAPTERS. Instructors lecture notes from web page: 1. Overview of operating systems: corresponds fairly closely to your text book’s chapter 1. 2. Chapter 2: History of Operating systems: Additional information and terms have been added from other sources, with a slightly different organization. Understand the different stages of operating system development and the impetus for those changes. What was programming like before operating systems. 3. Chapter 3: Issues of user and program interface design: be able to discuss the various design issues raised in this document. 4. Chapter 4: Notes on Process Management: Additional information and terms have been added from other sources, with a slightly different organization . Understand that a program is a passive entity, and a process is an active entity. Know the various process states, and what causes a process to transition from one state to another. WHAT MUST HAPPEN TO PERFORM A CONTEXT SWITCH!!!!!!!!! Understand the operations on processes, the concepts of a process HIERARCHY and the associated relationships between processes. 5. chapter 5: Notes on Process scheduling: Additional information and terms have been added from other sources . This source adds additional information on I/o vs cpu bound processes, as well as additional objectives of scheduling algorithms 6. chapter 6: Notes on scheduling algorithms: Additional information and terms have been added from other sources This contains additional details about the various scheduling algorithms, and gives examples of calculating the average waiting time of processes. Keywords: Operating System Physical Resource User interface Process management Process scheduling Punched cards Batch processing systems Spooling Multi-tasking (timesharing) Graphical user interface Sequential process Thread Context Batch processes Preemption Job Static process management Long-term scheduling Active set Static priority algorithm Processor time quantum Priorities Interrupt handler Offset Stack segment Application Program Systems Program logical resource kernel program interface (API) Process interleaved execution multiprogramming device management interrupts resident monitor/loader JCL batch serial operation batch multiprogramming interactive computing time quantum/time slicing device driver command line interface command language command handler (shell) concurrent sequential processes process control block (PCB) processor state context switching interactive processes real-time processes fork ready queue SCHEDULING scheduler Dynamic process management medium term scheduling short term scheduling swapping dispatcher dynamic priority algorithm starvation storage time quantum AGING overhead stack segmented addressing segment number data segment code segment instruction pointer