• Resource management/リソース管理
    • Synchronization: correctness, efficiency, deadlock avoidance
    • Fair and/or appropriate allocation of resources
    • Security
  • Extension of the machine/拡張マシン
    • Expand memory through virtual memory
    • Expand non-volatile storage through file systems, volume managers, and network/distributed file systems
  • Naming/ネーミング
    Naming is one of the principle functions of all computer systems.
    • Storage: registers, cache, main memory, disk memory, removable devices
    • Hardware: devices, especially dynamic ones (USB, iSCSI, etc.)
    • Virtual objects: processes, pipes
    • Data: URLs, URIs
    • Sharing names
  • Data movement/データ転送
    Generally, user programs do not move data directly; they must ask the operating system to do it for them.
    • Moving data: buses, networks
    • Controlling the movement: registers, RPC, third-party transfers, etc.
    • Performance: data layout, resource allocation at multiple levels (e.g., I/O bus and memory bus)
    • Real-time constraints: buffering, jitter, missed revolutions, tape stalls