Notes 4:

Secondary Memory & Software Engineering

Why secondary memory?

Why secondary memory access during execution?:

  1. Files are often larger than available main memory space
  2. File systems (directories, applications, etc.) are typically larger than main memory space.
  3. Even if a single user could decide what to load before execution, a multi-user, multi-processing, or multi- programming environment will be faced with competing requests by different users/processes/programs.
  4. Secondary storage media are persistent.
  5. Many secondary storage media are physically portable.
  6. Secondary storage allows an additional level of security (both backup and fault-tolerance on the one hand, and prevention of deliberate destruction on the other).

Components of a secondary memory system:

  1. A device driver (typically memory-mapped, and typically loaded when the machine is booted, or by an explicit command).
  2. When a secondary memory file is active:
  3. An access device for reading and writing the file.
  4. A storage medium (e.g., a disk or a tape).

One More Overview of File Organizations:

Sequential:
Direct:
Indexed sequential:
Multikey:

Complexity comparisons (approximate and intuitive):

One More Overview of Device/File/Application Characteristics:

Device characteristics:
Application characteristics:
Purpose of space calculations:
  1. Specification of file and buffer characteristics.
  2. Comparison of media (also uses timing properties).
  3. Will a given file fit:
Deciding on a file organization:
  1. Application characteristics:
  2. System characteristics:
  3. Other considerations: