Study Questions for the Final Exam – 4/27/2012

Questions below are primarily on the new material (not covered on the previous test). You can expect a t least 1/3 of the test to be on the new material.

Chapter 11: I/O Management and Disk Scheduling

  • Difference between programmed I/O, interrupt-drive I/O, DMA I/O. Why DMA I/O is “best”.
  • The two objectives of the I/O component of an operating system.
  • Understand the purpose of buffering. How does buffering improve performance from the perspective of a process that is reading data from the disk? How does it improve the efficiency of the output process?
  • What are the three components of disk access time? Rank them according to their contribution to I/O processing time.
  • Understand the simple disk scheduling algorithms from Table 11.3 (FIFO, SSTF, SCAN, C-SCAN) how they work.
  • Know what a RAID disk system is and have some idea of how it improves disk performance through parallelism and redundancy. Know the purpose of data strips and striping, and know the two types of redundancy provided: mirroring, and parity bits or other error correcting codes to reconstruct damaged data from remaining data.
  • Understand the use of the disk cache and its contribution to improving I/O performance.
  • Review Questions 11.3, 11.4, 11.5

Chapter 12: File Management

  • Definitions of field/record/file/database
  • Difference between record-based files and byte-stream files.
  • The difference between sequential, indexed sequential, indexed, and direct (hashed) files.
  • Be able to identify/define the B-tree structure. ( No need to be able to describe or characterize in detail)
  • What is the purpose of a directory?
  • Understand the basic issues involved in secondary storage management: allocation of disk space to files and keeping track of the free space.
  • Relation between logical blocks (units of a file) and physical blocks (units of disk storage).
  • Know the difference between contiguous allocation, linked allocation, and indexed allocation of disk blocks to a file. Be able to explain the tradeoff between rapid file access and efficient utilization of the disk. (minimal fragmentation). Be able to discuss disk fragmentation issues.
  • Understand the structure of the UNIX inode (no need to memorize details, just understand the basic components)
  • Access control matrix, access control list, capability lists/tickets
  • UNIX file system: inode structure (no need to memorize all the details), purpose of the superblock & idnode table.
  • Review questions 12.1, 12.4, 12.6

Chapter 14: Security Threats

  • CIA: the three objectives of computer security. (know, be able to explain)
  • Definitions/importance of authenticity and accountability with respect to computer security.
  • Be able to discuss how availability, confidentiality, and integrity can be threatened – what are some of the specific attacks that can be mounted by hackers to cause problems? For example, availability can be compromised by a denial-of-service attack.
  • What is the difference between a passive and an active security threat? Be able to give examples of each kind of attack.
  • Be able to identify virus, Trojan horse, backdoor (trapdoor), worm, bot (zombie)
  • What is a difference between a worm and a zombie?
  • Problem 14.1

Program 2: Page Replacement

  • Understand Second Chance page replacement – specifically, the queue implementation from your programming assignment.

REVIEW OF PREVIOUSLY TESTED MATERIAL

Chapter 1: Background

  • Be able to identify the program counter (PC), and the instruction register (IR).
  • Know what motivated the development of multiprogramming (think of I/O waits and interrupts).
  • Be able to explain locality of reference and understand its relation to all forms of caching: the hardware cache, the TLB, virtual memory, disk cache.

Chapter 2: Operating System Overview

  • Operating system objectives: be able to list and explain
  • What is the difference between instruction interleaving and instruction overlapping.
  • How is a time sharing system different from a simple multi-programmed batch system? What is the principle objective of each?
  • What is a process?
  • What is the kernel of an operating system?
  • Explain the difference between a monolithic kernel and a microkernel.
  • What is a purpose of system calls? How do system calls relate to the operating system and the concept of dual-mode (kernel and user) execution?

Chapter 3: Process Description and Control

  • What is a Process Control Block? Be able to list some of the important data items included in the PCB (see page 111).
  • Be able to name and define the states in the five-state process model. Know the events that can cause a process to make a transition from one state to another.
  • Understand the purpose of suspended states. Study Figure 3.9.
  • What does it mean to preempt a process?
  • Why do computers need at least two execution modes (user and kernel)?
  • What is the difference between a mode switch and a process switch? Be able to list events that could cause each kind of switch.

Chapter 4: Threads

  • Know the major differences between kernel-level threads and user-level threads (and be specific)
  • Give two advantages of KLT over ULT
  • Give two advantages of ULT over KLT

Chapter 5: Concurrency

  • Know the difference between multiprogramming, multiprocessing, and distributed processing
  • Study Table 5.1, page 200. Know the definitions, but more importantly understand the basic concepts involved. Be sure you understand how concurrency exists in multiprogramming systems and what kinds of problems can be caused by concurrency.
  • What operations can be performed on a semaphore? Be able to state the basic wait and signal algorithms for general (counting) semaphores..
  • What is the difference between a binary semaphore and a general, or counting, semaphore?
  • What is busy waiting? Which mutual exclusion solutions employ busywaiting?
  • What are the characteristics of the producer-consumer and readers-writers problem? (how is the data accessed, what are the restrictions on processes, etc.)
  • Understand how semaphores are used to enforce mutual exclusion or other type of process synchronization. If given a sample program be able to tell (a) if mutex is needed and (b) how to enforce it.

Chapter 6: Concurrency: Deadlock and Starvation

  • What are the three conditions that must be present for deadlock to be possible? What additional condition is necessary to create deadlock?
  • What is the difference between deadlock prevention and deadlock avoidance?
  • How can the circular wait condition be prevented?
  • How is deadlock different from starvation?

Chapter 7: Memory Management

  • What is the difference between fixed and variable partition allocation of memory?
  • What is the difference between internal and external fragmentation of memory?
  • What is the difference between a physical address and a logical(virtual) address?
  • What is the difference between a page and a frame?
  • Be able to work problems like 7.12 on page 333
  • Understand the logical to physical address translation process, as shown in Figure 7.12

Chapter 8: Virtual Memory

  • Explain the principle of locality, including both temporal and spatial locality. Why is it important for the successful implementation of virtual memory?
  • What are the major drawbacks of non-virtual memory management?
  • How does virtual memory overcome these drawbacks?
  • What are the most common elements to be found in a page table entry. Briefly define each and explain what it might be used for.
  • What are the drawbacks of virtual memory? Consider space requirements and time requirements. Be able to explain the problems clearly and suggest ways of getting around them.
  • What is the purpose of a page table? Of a translation lookaside buffer?
  • What is a page fault? What are the steps in processing a page fault?
  • Know how FIFO, LRU, and Clock replacement algorithms work. Know what the OPT replacement method is and explain why it is not used. Be able to work problems such as those in the homework or 8.1 and 8.6 from the textbook.
  • What is a working set?
  • What are the advantages of a relatively large page size, compared to a relatively small page size? What are the disadvantages?

Chapter 9: Processor Scheduling

  • Briefly describe the three levels of processor scheduling
  • What is the difference between turnaround time and response time? What is the difference between turnaround time and normalized turnaround time.
  • What is the difference between preemptive and nonpreemptive scheduling?
  • Be able to describe the most common scheduling algorithms (FCFS, RR, SPN, feedback scheduling). Be able to discuss and compare them in terms of their affect on long and short jobs, throughput, etc. Which algorithms are likely to cause starvation and which are starvation free?

Chapter 10: Multiprocessor and Real-Time Scheduling

  • Know the difference between loosely coupled and tightly coupled multiprocessors.
  • Understand the three design issues that must be taken into account when developing a scheduling policy for a shared memory multiprocessor.
  • What is load sharing? Give advantages and disadvantages.
  • What are the other ways (besides load sharing) to schedule threads on a shared memory multiprocessor? How do these methods compare to load sharing?
  • Define ”real-time”, with respect to scheduling.
  • What is the difference between hard real time and soft real time applications?
  • What is responsiveness in a real time system?
  • What are some characteristics of a real-time operating system?

In addition to text book, notes, and slides review your homework and programming assignments. Be able to work problems such as those in your homework assignments