List of Figures

  1. Abstract view
  2. Job Interleaving
  3. Memory Layout; Simple Batch, Multi Programming
  4. SMP architecture, Client-Server
  5. Fetch and Execute
  6. Cache Memory
  7. Top-level Components, Pentium System
  8. Going down the hierarchy
  9. Interrupt
  10. Interrupt Cycle
  11. Interrupt Picture
  12. System Call
  13. OS Architecture
  14. UNIN System initilization
  15. OS Structures, MS-DOS, Unix, IBM VM/370, Chorus
  16. System Calls
  17. A UNIX Process Context
  18. Process Control Block (PCB), Processes from main memory to registers.
  19. CPU Switch From Process to Process
  20. Diagram of Process State
  21. Single and Multithreaded Processes
  22. Threads and Processes
  23. A word processor with three threads, a multithreaded web server
  24. Thread Models; Many-to-One, One-to-One, Many-to-Many
  25. Mutual exclusion using critical regions
  26. A proposed solution to the CR problem. (a) Process 0, (b) Process 1
  27. Peterson' solution for achieving mutual exclusion
  28. The producer-consumer problem with a fatal race problem
  29. The producer-consumer problem using semaphore
  30. A monitor
  31. The producer-consumer problem with a monitor.
  32. Lunch time in the Philosophy Department.
  33. A solution to the dining philosophers problem.
  34. A solution to the readers and writers problem.
  35. A solution to the sleeping barber problem.
  36. Some goals of the scheduling algorithm under different circumstances.
  37. An example to First-Come First Served.
  38. An example to Shortest Job First.
  39. Example of non-preemptive SJF and example of preemptive SJF.
  40. An example to Round Robin.
  41. An example to Priority-based Scheduling.
  42. Multi-level queue and Multi-level feedback queue (lower).
  43. An example to Deadlock.
  44. Resource Allocation Graphs, in the right one, either $P_2$ or $P_4$ could relinquish a resource allowing $P_1$ or $P_3$ (which are currently blocked) to continue.
  45. An example of how deadlock occurs and how it can be avoided.
  46. Two process resource trajectories.
  47. Demonstration that the state in is safe (upper), and in is not safe (lower).
  48. Allocating Memory.
  49. From source to executable code.
  50. Three simple ways of organizing memory with an operating system and one user process.
  51. (a) Fixed memory partitions with separate input queues for each partition. (b) Fixed memory partitions with a single input queues.
  52. Address Translation.
  53. Swapping.
  54. (a) A part of memory with five processes and three holes. The tick marks show the memory allocation units. The shaded region (0 in the bitmap) are free. (b) The corresponding bitmap. (c) The same information as a list.
  55. The relation between virtual address and physical memory addresses is given by a page table.
  56. The position and function of the MMU.
  57. Page fault handling by picture.
  58. Memory Caching.
  59. The internal operation of the MMU with 16 4-KB pages.
  60. Page Replacement.
  61. Trashing.
  62. Logical View of Segmentation (left) , User's View of a Program (right).
  63. Example of Segmentation
  64. Sharing of Segmentation
  65. Intel 386 Address Translation
  66. A kernel I/O structure.
  67. Evolution of the I/O Function
  68. a) Separate I/O and memory space. b) Memory-mapped I/O. c) Hybrid.
  69. a) A single-bus architecture. b) A dual-bus memory architecture.
  70. The Process to Perform DMA Transfer.
  71. How interrupts happen. The connections between devices and interrupt controller actually use interrupt lines on the bus rather than dedicated wires.
  72. a) Programmed I/O. b) Interrupt-Driven I/O. c) Direct Memory Access.
  73. Layers of the I/O Software System.
  74. Logical positioning of device drivers. In reality all communications between drivers and device controllers goes over the bus.
  75. (a) Without a standard driver interface (b) With a standard driver interface.
  76. (a) Unbuffered input (b) Buffering in user space (c) Single buffering in the kernel followed by copying to user space (d) Double buffering in the kernel.
  77. Networking may involve many copies.
  78. Disk Structure.
  79. Left: (a) Physical geometry of a disk with two zones (b) A possible virtual geometry for this disk, Right: Disk parameters for the original IBM PC floppy disk and a Western Digital WD 18300 hard disk.
  80. Disk Performance.
  81. Left: Low-level Disk Formatting; A disk sector, Right: An illustration of cylinder skew.
  82. a) No interleaving b) Single interleaving c) Double interleaving.
  83. From left to right: First-in, First-out (FIFO); Shortest Seek Time First; Elevator Algorithm (SCAN); Modified Elevator (Circular SCAN, C-SCAN)
  84. a) A disk track with a bad sector b) Substituting a spare for the bad sector c) Shifting all the sectors to bypass the bad one.
  85. Some typical file extensions.
  86. Three kinds of files. (a) byte sequence. (b) record sequence. (c) tree.
  87. (a) An executable file (b) An archive.
  88. Some possible file attributes.
  89. File operations.
  90. A simple program to copy a file.
  91. Left: (a) Segmented process before mapping files into its address space (b) Process after mapping existing file abc into one segment creating new segment for xyz. Right: Memory mapped files and paging
  92. Fundamental File Organizations; (a) Pile (b) Sequential (c) Indexed Sequential (d) Indexed.
  93. IBM indexed-sequential access method (ISAM).
  94. (a) Single-Level Directory Systems (b) Two-Level Directory Systems (c) Hierarchical Directory Systems.
  95. Example to (a) Single-Level Directory Systems (b) Two-Level Directory Systems (c) Hierarchical Directory Systems.
  96. The solid curve (left hand scale) gives data rate of a disk. The dashed curve (right hand scale) gives disk space efficiency. All files 2KB (an approximate median file size).
  97. Left: A possible file system layout. Right: File Allocation Table.
  98. (a) Contiguous allocation (b) Contiguous allocation with compaction (c) Storing a file as a linked list of disk blocks (d) Storing a file as a linked list of disk blocks with defragmentation (e) Alternative representation of chained allocation (f) Linked list allocation using a file allocation table in main memory.
  99. (a) Indexed allocation with block partitions (b) Indexed allocation with variable-length partitions (c) An example of i-node.
  100. Left: (a) A simple directory containing fixed-sized entries with the disk addresses and attributes in directory entry (b) A directory in which each entry just refers to an inode. Right: Two ways of handling long file names in directory (a) Inline (b) In a heap.
  101. Left: File system containing a shared file. Right: (a) Situation prior to linking (b) After the link is created (c)After the original owner removes the file.
  102. (a) Storing the free list on a linked list (b) A bit map.
  103. Inode contents.
  104. Left: Direct Block. Right: Single Indirect Block
  105. Upper: System V Disk Layout (s5fs). Middle: Layout of an Ext2 Partition. Lower: Layout of a Block Group.


2004-05-25