Loading subject…
System resources
The hardware and software components that enable a computer to function effectively.
These resources are finite and must be managed efficiently to ensure optimal performance.
The OS acts as an interface between hardware and software, abstracting the complexity of resource management from users and applications.
To understand the limitations in the system, let's first identify what we should look at.
While it is hard to list all key resources we have for the computer to operate on, but here are some basic ones you need to take when writing even simple program.
Primary memory
The only storage directly accessible by the CPU. It holds data and instructions currently in use, stored as binary machine code.
Consists of:
Random-Access Memory (RAM)
Random-Access Memory (RAM) is the primary workspace of a computer, storing data and instructions that the CPU actively uses.
Read-Only Memory (ROM)
Read-Only Memory (ROM) is a non-volatile memory that stores essential instructions for booting the computer.
The system's primary memory limitations, primarily due to insufficient RAM, lead to slow performance or system crashes.
Insufficient RAM can lead to paging, where data is swapped between RAM and disk, slowing down performance.
Running multiple applications on a system with limited RAM can cause "Out of Memory" errors and "computer freezes".
To mitigate RAM limitations, consider using virtual memory, which leverages secondary storage to extend available memory.
DDR-SDRAM (Double Data Rate Synchronous Dynamic RAM) is a common type of DRAM used in modern computers.
Secondary Storage
Secondary storage is non-volatile memory used to store data permanently, even when the computer is turned off.
It holds files, applications, and the operating system for long-term use.
We can distinguish two types of storage:
Hence, insufficient management of secondary storage can lead to slow access times.
HDDs are slower than SSDs, which affects boot times and data retrieval.
Using an HDD for virtual memory or intensive file writing in time of program execution can lead to performance bottlenecks due to slow read/write speeds.
When choosing disk storage, each type has its own characteristics:
SSDs are ideal for applications requiring fast data access, while HDDs are cost-effective for bulk storage.
The CPU executes instructions through the fetch-decode-execute cycle. And its speed:
Effective cache management can significantly improve system performance by reducing the time the CPU spends waiting for data.
Bandwidth
The rate at which data can be transferred between components or over a network.
Bandwidth can be measured in megabits per second (Mbps) or gigabits per second (Gbps).
Think of bandwidth as a highway. A wider highway (higher bandwidth) allows more cars (data) to travel simultaneously, reducing congestion.
Peak theoretical bandwidth is often higher than sustained bandwidth due to factors like latency and overheat.
Low bandwidth can cause bottlenecks in data transfer, affecting CPU performance.
A high-performance CPU with low memory bandwidth may spend time waiting for data.
Screen resolution
The number of pixels displayed on a screen, affecting the clarity and detail of images.
Higher resolutions provide clearer images but require more processing power and memory.
Higher screen resolutions enhance visual clarity but may strain the GPU and increase power consumption.
Modern GPUs are massively parallel processors, capable of handling thousands of simultaneous calculations.
Adding more GPUs doesn't always result in linear performance gains due to diminishing returns and bottlenecks in other system components.
Network connectivity
The ability of a device to connect to local and global networks.
A laptop with both wired and wireless NICs will outperform a tablet with only wireless connectivity.
Devices with multiple connectivity options (e.g., wired and wireless) offer greater flexibility and reliability.
Sound processors are essential for tasks like audio editing, gaming, and multimedia playback.
Resource limitations can lead to bottlenecks, where a specific resource becomes a hindrance to overall system performance.
Summarising the information above, we can distinguish different types of limitations:
Ignoring resource limitations can lead to system instability, crashes, or poor performance.
When analysing resource limitations, you should:
Sometimes, if your system does not work as intended, you can backtrace the source of the problem and resolve it:
| Resource Limitation | Symptoms | Causes | Solutions |
|---|---|---|---|
| Insufficient Primary Memory (RAM) | Slow system performance; Frequent crashes or freezes; "Out of Memory" errors | Too many applications running simultaneously; Memory leaks in software | Increase RAM capacity; Optimize software to reduce memory usage |
| Inadequate Processor Speed (CPU) | Slow execution of tasks; High CPU usage; Lag in multitasking | Complex applications or games requiring high processing power; Background processes consuming CPU resources | Upgrade to a faster processor; Optimize software to reduce CPU load |
| Limited Secondary Storage | Inability to save new files; Slow system performance due to fragmentation | Large files or applications consuming storage space; Lack of regular maintenance (e.g., no disk cleanup) | Upgrade to a larger HDD or SSD; Regularly clean and defragment the disk |
| Insufficient Network Bandwidth | Slow internet speeds; Lag in online applications or games | Multiple devices sharing the same network; High-bandwidth activities (e.g., streaming, downloads) | Upgrade to a higher-bandwidth plan; Optimize network settings to prioritize critical tasks |
| Underpowered Graphics Processing Unit (GPU) | Poor graphics performance in games or applications; Lag or stuttering in video playback | High-resolution graphics or complex rendering tasks; Inadequate cooling causing thermal throttling | Upgrade to a more powerful GPU; Optimize graphics settings in applications |