-  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