Functional Requirements and Design Goals
Functional Requirements
OS functional requirements have two main categories:
- User commands: users operate the computer through commands. Commands provided by the OS and its tools form the user interface.
- System calls: applications use system calls to request OS kernel services. The system-call interface is part of an application programming interface (API), but library APIs do not necessarily require system calls.
KNOWLEDGE QUIZ
QUESTION
Which statement about an API and a system call is correct?
Nonfunctional Requirements
OS nonfunctional requirements include:
- Performance / efficiency: increase throughput and reduce response time, serving as many users as possible in a time-sharing system.
- Fairness: allocate resources according to a reasonable policy; real-time systems may need to prioritize timely responses to external events.
- Reliability.
- Security.
- Scalability: accommodate different workload sizes and hardware configurations.
- Extensibility: accommodate additional external devices.
- Portability: avoid dependence on a single platform or hardware manufacturer.
INTERACTIVE LAB
Responsiveness versus switching cost
ACCESSFREE
A and B each need 8 ms of CPU time and arrive at time 0. One CPU alternates between them. Each change costs 0.5 ms; initial dispatch and final completion have no cost. B's first CPU service is our response proxy.
- B first service
- 4.5 ms
- Useful CPU fraction
- 91.4%
- Job throughput
- 114.3 jobs/s
The 4 ms slice gives B its first service after 4.5 ms. Both jobs receive 8 ms of useful CPU time; grey intervals are overhead.
KNOWLEDGE QUIZ
QUESTION
A scheduler gives an urgent control task priority over a background task. What should we conclude?
HANDS-ON PRACTICE
Identify OS requirements
Distinguish OS functions from their qualities.
- Are user commands and system calls functional or nonfunctional requirements?
- Match faster responses, new device support, and different platform support to performance, extensibility, and portability.