April 2, 2020

What is a System Resource?

System Resource: Being resourceful is a universally attractive trait, what resourceful does not equal to is having a lot of resources at one’s disposal but the ability to maximize one’s potential or the scarce resources available to him or her at any given time. This is not only true in the real world but also in hardware as well as the software we have come to use in our day to day life. To put things in perspective, even though performance-oriented vehicles are desired, fantasized, and craved by many not everyone will end up buying a sports car or a sports bike even if they had the means to if you ask most of the people why they did not buy such a vehicle their reply would be “it’s not practical”.

What is a system resource

Now, what it means is that even as a society our choices skew towards efficiency. The vehicles that have the highest mass appeal aren’t extremely attractive but what they offer is efficiency in terms of cost, fuel economy and maintenance.  So simply having the most expensive hardware won’t cut it if it draws a lot of power to just edit a simple spreadsheet which can also be done on a smartphone these days or simply installing the most expensive game or software won’t do either if it freezes as soon as we open it. The answer to what makes something efficient is the ability to manage the available resources in a very smart way that gives us the maximum performance for the least amount of energy and resource expenditure.

What is a system resource?

A short and crisp definition of this would be, the ability of the operating system to efficiently carry out the user-requested tasks utilizing all of the hardware and software to the best of its ability.

Due to the rapid advancements in technology the definition of a computer system has moved beyond a box with some blinking lights that have keyboard, screen, and mouse attached to it. Smartphones, laptops, tablets, single board computers, etc. have completely shifted the idea of a computer. But, the underlying fundamental technology that powers all of these modern marvels have largely remained the same. Something which won’t change anytime soon either.

Let’s dig deeper into how does a system resource work? Just like any resource the moment we turn on our computer, it verifies and validates all the current exiting hardware components connected to it, which then gets logged into the Windows Registry. Here, the information on the capacities and all the free space, amount of RAM, external storage media, etc is present.

Along with this, the operating system starts the background services and processes as well. This is the first immediate use of the resources available. For eg., if we have installed an antivirus program or any software that needs updating regularly. These services start right when we turn on the PC, and start updating or scanning files in the background to of course to protect and keep us update.

A resource request can be a service that an application, as well as the system, needs or for programs to run upon user request. So, the moment we open a program, it goes checking for all the resources available for it to run. Upon checking if all the requirements are met the program works just as intended. However, when the requirement is not met, the operating system, checks which apps are hogging on that scare resource and tries to terminate it.

Ideally, when an application requests for any resource, it has to give it back but more often than not, the applications that requested specific resources end up not giving the requested resource upon completing the task. This is why sometimes our application or system freezes because some other service or application is taking away the required resource for it to run in the background. This is because all of our systems come with a limited amount of resources. So, managing it is of prime importance.

Different types of System Resources

A System resource is used by either hardware or software to communicate with each other. When software wants to send data to a device, such as when you want to save a file to a hard drive or when the hardware needs attention, such as when we press a key on the keyboard.

There are four types of system resources we will be encountering while operating the system, they are:

  • Direct Memory Access (DMA) channels
  • Interrupt request lines (IRQ)
  • Input and Output addresses
  • Memory addresses

When we press a key on the keyboard, the keyboard wants to inform the CPU that a key has been pressed but since CPU is already busy running some other process there is now we can stop it till it completes the task at hand.

To tackle this we had to implement something called interrupt request lines (IRQ), it does exactly what it sounds like it interrupts the CPU and lets the CPU know that there is a new request that has come up from say the keyboard, so the keyboard places a voltage on the IRQ line assigned to it. This voltage serves as a signal for the CPU that there is a device that has a request which needs processing.

An operating system relates to memory as a long list of cells that it can use to hold data and instructions, somewhat like a one-dimensional spreadsheet. Think of a memory address as a seat number in a theatre, each seat is assigned a number regardless of whether someone is sitting in it or not. The person sitting in a seat could be some kind of data or instruction. The operating system does not refer to the person by the name but only by the seat number. For example, the operating system might say, it wants to print data in memory address 500. These addresses are most often displayed on the screen as a hexadecimal number in the segment offset form.

Input-output addresses which are also simply called ports, the CPU can use to access hardware devices in much the same way it uses memory addresses to access physical memory. The address bus on the motherboard sometimes carries memory addresses and sometimes carries input-output addresses.

If the address bus has been set to carry input-output addresses, then each hardware device listens to this bus. For example, if the CPU wants to communicate with the keyboard, it will place the Input-Output address of the keyboard on the address bus.

Once the address is placed, CPU announces the address to all if the Input-Output devices that are on the address line. Now all input-output controllers listen for their address, hard drive controller says not my address, floppy disk controller says not my address but keyboard controller says its mine, I’ll respond. So, that’s how the keyboard ends up interacting with the processor when a key is pressed. Another way to think about the way work is Input-Output address lines on the bus work much like an old telephone party line – All devices hear the addresses but only one responds ultimately.

Another system resource used by hardware and software is a Direct Memory Access (DMA) channel. This is a shortcut method that lets an input-output device send data directly to memory bypassing the CPU completely. Some devices such as the printer are designed to use DMA channels and others such as the mouse are not. DMA channels are not as popular as they once were this is because their design makes them much slower than newer methods. However, slower devices such as floppy drives, sound cards, and tape drives may still use DMA channels.

So basically hardware devices call the CPU for attention using Interrupt Requests. The software calls hardware by the input-output address of the hardware device. The software looks at a memory as a hardware device and calls it with a memory address. DMA channels pass data back and forth between the hardware devices and memory.

Recommended: 11 Tips To Improve Windows 10 Slow Performance

So, that’s how the hardware communicates with software to allocate and manage system resources efficiently.

What are the errors that can occur in System Resources?

System resource errors, they are the worst. One moment we are using the computer everything is going fine all it takes is one resource-hungry program, double click that icon and say goodbye to a system that works. But why is that though, bad programming possibly but it gets even more tricky because this happens even in the modern operating systems. Any program that gets executed needs to inform the operating system what amount of resources that it may need to run and specify how long it may need that resource. Sometimes, that may not be possible due to the nature of the process the program runs. This is called the memory leak. However, the program is supposed to give back the memory or the system resource that it requested earlier.

And when it doesn’t we may see errors like:

  • “Your computer is low on memory“
  • “System is dangerously low on resources”
  • “Insufficient system resources exist to complete the requested service”

And more.

How can we fix System Resource Errors?

A combination of 3 magical keys ‘Alt’ + ‘Del’ + ‘Ctrl’, this should be a staple for anyone who faces a frequent system freezes. Pressing this takes us directly to the Task Manager. This lets us view all the system resources utilized by various programs and services.

More often than not we would be able to usually find out which application or program is consuming a lot of memory or making a high amount of disk reads and writes. Upon successfully locating this we would be able o take back the lost system resource by either ending the problematic application altogether or by uninstalling the program. If it is not any program it would be beneficial for us to go searching into the services section of the task manager that would reveal which service is consuming or taking up resources silently in he background thus robbing of this scarce system resource.

There are services that start when the operating system starts these are called startup programs, we can find them in the startup section of the task manager. The beauty of this section is that we don’t have to actually do a manual search for all of the resource-hungry services. Instead, this section readily displays the system impacting services with a startup impact rating. So, using this we can determine which services are worth disabling.

The above steps would definitely help if the computer doesn’t fully freeze or just certain application is frozen. What if the whole system is frozen completely? Here we would be rendered with no other options none of the keys are function as all of the operating system is frozen due to unavailability of the required resource for it to run but to restart the computer. This should fix the freezing issue if it was caused due to a misbehaving or non-compatible application. Upon detecting which application caused this we can go ahead and uninstall the problematic application.

There are times that even the above steps won’t be of much use if the system keeps hanging despite the above-detailed procedure. Chances are that it could be a hardware related issue. Especially, it could be some issue with the Random Access Memory (RAM) in this case, we will have to access the RAM slot in the motherboard of the system. If there are two modules of RAM, we can try running the system with one RAM individually of the two, to figure out which RAM is at fault. If any issue is detected with the RAM, replacing the faulty RAM would end up solving the freezing issue caused by low system resources.

Conclusion

With this, we hope you understood what system resource is, what are the different types of system resources that exist in any computing device, what kind of errors we can come across in our day-to-day computing tasks, and various procedures we can undertake to fix the low system resource issues successfully.