Loading...
Hardware provides physical resources; software supplies instructions and abstractions for using them. Explain a system’s behaviour by following the responsibilities of each layer.
What you'll be able to do
Hardware includes physical components such as processors, memory and storage devices. Software consists of programs and associated instructions or data used to perform tasks. Applications address user-oriented work, while system software supports or manages the computing environment.
The categories concern purpose rather than whether a program has a visible window. A command-line compiler can be system software; a graphical operating-system setting remains part of a system interface. A product may combine components with different responsibilities.
An operating system allocates processor time, memory and input/output resources among competing activities. It schedules execution, manages address-space use, coordinates files and devices, and provides controlled interfaces that applications can use without reproducing hardware-specific operations.
Abstraction makes a file appear as a named sequence of data rather than requiring every application to control disk heads or flash blocks. Protection and access controls help prevent one process from interfering with another. Resource management is not the same as guaranteeing every application runs simultaneously on a physical core.
Utilities perform maintenance or support tasks such as backup, compression or storage management. Libraries provide reusable code accessed through an interface. Translators process program representations: an assembler translates assembly code, while compilers and interpreters support other execution models.
The same function can be packaged differently across systems, so classify the described responsibility rather than memorising product names. A library is not automatically a complete application, and a translator does not prove the translated algorithm meets its requirements. Tests and design reasoning remain necessary.
| Component | Responsibility |
|---|---|
| Operating system | Allocate and protect resources |
| Utility | Perform a support or maintenance task |
| Library | Supply reusable operations |
| Application | Perform a user-oriented task |
Attempt the task before opening its worked response. Record each change of state, explain the rule used, and check the result against the original requirements. Code examples labelled Python 3 use that language’s conventions; pseudocode states its own assumptions.
Common mistakes to avoid
Key takeaways
Test yourself
Answer a few questions, then review anything you missed.
Start with the quiz above to check the key ideas. You can also choose another topic from the practice library.