CSCI 350: Outline for final

This is my outline of topics we covered in the semester's second half. (The first half's outline has already been posted.)

II. Processes, revisited
  E. threads
IV. Memory management
  A. sharing memory among processes
    1. swapping processes
    2. compile-time location
    3. load-time relocation
    4. run-time relocation
  B. variable segments
    1. algorithms for allocating partitions
    2. memory protection issues
    3. memory compaction
  C. virtual memory
    1. concept
      a. virtual address space
      b. page frames
      c. page table
      d. address translation
    2. complications
      a. space issues
        i. table directories
        ii. inverted page tables
      b. speed issues: table lookaside buffer
    3. caching issues
      a. page replacement algorithms
      b. global v. local replacement
      d. working sets
  D. case study: 386 memory management
V. Files
  A. basics
    1. file types
    2. file attributes
    3. directories
  B. filesystem structure
    1. blocks
    2. representing files
    3. representing directories
    4. tracking free space
    2. filesystem cache
  C. security
    1. types of attacks
    2. cryptography
    3. passwords
    4. virus guards
    5. file permissions
  D. research
    1. RAID
    2. log-structured filesystems
VI. Distributed computing
  A. networking
    1. TCP/IP stack
    2. Internet Protocol
    3. Transmission Control Protocol
    4. Unix network communication system calls
  B. network filesystems
    1. AFS
    2. NFS
  C. remote procedure calls
    1. basic RPC concept
    2. remote method invocation
VII. Conclusion
  A. principles
  B. research frontiers