- Convenience
- Making the computer easier to use
- Efficiency
- Allowing better use of computer resources
- Program creation
- Program execution
- Access to I/O devices
- Controlled access to files
- System access
- Error detection and response
- Accounting
- Interactive
- Batch
- Single program (Uni-programming)
- Multi-programming (Multi-tasking)
- Late 1940s to mid 1950s
- No Operating System
- Programs interact directly with hardware
- Two main problems:
- Scheduling
- Setup time