This section looks at what resources are necessary in a computer system and how this might differ between different computer systems. Furthermore, possible limitations and problems arising from resource management are discussed.
Common resources of a computer system
|ROM [Primary storage]||Read-only. Stores the program, which will be first executed when the machine is switched on (usually the BIOS/UEFI).||Cannot be changed after being written/slow to update. Problem if there is a bug in the firmware.|
|RAM [primary storage]||Memory where programs are stored during run-time. CPU accesses instructions from here.||Volatile storage, so that data are lost when the computer is shut down. This can be a problem during a power outage. Memory space limits the amount of applications that can run at a time. For instance if there’s not enough memory available for the programs running, these may start to behave unexpectedly or not smooth (fortunately we have virtual memory and SWAP partitions).|
|Processor||The CPU processes the stored instructions of a program. It has internal resources itself, which are the Registers, the control unit and the actual ALU, which together are able to process the instructions.||Can only do one instruction at a time. Clock speed defines how fast instructions are done. Voltage and thermal emission (TDP) limit clock speeds.|
|Bandwidth [I/O]||Manages the flow of data and its speed. Can be from CPU to storage(e.g. SATA) or network connectivity(e.g. LAN)||Data need to flow from one component to another. Low bandwidth can slow down the whole system, even if other components work fast.|
|Screen resolution [Output]||How many pixels as screen has in each dimension.||Limits how much information can be displayed on a screen. Lower resolution can limit multitasking and productivity. On the other hand, higher resolutions require increased graphic processing and can decrease overall system performance, e.g. lower frame rates. Another factor is screen size.|
|Disk storage [Secondary storage]||General storage for storing software||Limiting factors are storage capacity, access times and data transfer rates for both writing and reading from the disk.|
|Sound processor||Processing digital audio data in order to deliver them to analog speakers.||Limitations on the range of standards supported (e.g. analog stereo jack, optical audio, surround) by both the processor and speaker.|
|Graphic processor||Processing and managing digital signals in order to control pixels on screen so that a we get a visual display.||Limitations due to output standards(e.g. VGA, HDMI, DVI), processing power limiting frame rates and screen resolution.|
|Cache [Primary storage]||Stores results from earlier computations, so that future requests for the same data can be served faster.||Data stored in the cache may not be used for future requests, ending up as inefficient use of the cache memory. The other way round, repeatedly accessed data may not necessarily be stored in the cache.|
|Network connectivity [I/O]||Sending/Receiving data from other computers and manage the data flow.||Again different standards may lead to limitations, specially concerning Wi-Fi (types 802.11b/g/a/n/ac). Wi-Fi brings other limitations as range and throughput.|
It is always important to consider these resources working together, as often one single resource can act as the bottleneck for the rest of the system.