What kind of process are system interrupts? Managing hardware interrupt requests


Common problem operating system Windows any edition is the loading of computer resources by “internal” processes. One such process is a system interrupt, which can seriously load the computer's resources, which will be displayed in the Task Manager. The most common situation is when a system interrupt loads the processor, causing the computer to seriously lose performance. In this article, we will look at why this happens and whether it is possible to disable system interrupts in Windows.

System interrupts: what is this process

Process " System interrupts» by default in the operating room Windows system runs constantly, but during normal operation it should not load system components by more than 5%. If this process has a more serious impact on computer resources, this indicates the presence of a hardware problem, namely a malfunction of one of the computer components.

When “System Interrupts” load the processor, this may indicate a problem with the video card, motherboard, random access memory or other element system unit. The central processor tries to supplement the missing power resulting from the malfunction of the component using its own resources, as evidenced by the “System Interrupts” process. Most often, the problem of computer components not working correctly is associated with complete or partial incompatibility running program(or games) with computer component drivers.

How to disable system interrupts

As noted above, system interrupts are nothing more than an indicator that the Windows is coming additional access to resources central processor. It is not possible to disable system interrupts to improve computer performance, and you need to look for a problem in the operation of PC components. To do this, it is convenient to use the DPC Latency Checker application, which can be downloaded for free on the Internet from the developers’ website. The program allows you to identify faulty computer components.

To diagnose your system with the DPC Latency Checker application, launch it and wait. It will take some time to check the computer, after which the user will see on the graph if there are problems in the operation of system components. The application will also indicate possible mistakes and advise you to look for them by turning off the devices.

To do this, go to "Device Manager" by clicking right click mouse to “Start” and selecting the appropriate item, and start disconnecting devices one by one. After each shutdown, check in the Task Manager and the DPC Latency Checker application to see if the problems with CPU load due to system interrupts have been resolved. If the problem persists, turn the device back on and move on to the next one.

Important: While disabling components in Device Manager, do not disable Computer, Processor, and System devices"otherwise it will lead to emergency reboot computer.

When a device is found that, when disconnected, will reduce the CPU load to normal condition, update the drivers for this component from the official developer website.

Note: If attempts have been made to disable all system components, but the System Interrupts process continues to load the system, try updating the processor drivers.

In a situation where the tips given above do not help to cope with the problem of processor loading by system interrupts, you can try the following methods to correct the situation:

It is worth noting that you should not disable system interrupts through the Task Manager; this will cause the system to crash, but will not solve the problem.

Users usually don't pay attention to system processes inside Task Manager. But when one of these processes begins to consume a lot of resources (which immediately affects the rotation speed of the processor fans and reduces performance in other tasks), the user begins to wonder what these processes are, what they are for, and what is the reason for their increased activity. This article continues a series of tutorials that introduce you to the details of Windows processes and how they work. Here you will find information about what is System interrupts in Windows 10. In the English localization this process is called System Interrupts.

What is the process System interrupts

You probably know that a large number of processes have their own executable files, which can be checked by right-clicking on the process and selecting the option Open file location. In the case of system interrupts, this cannot be done. In addition, on the tab Details this process is signed in exactly the same way, namely “System Interrupts”. You may ask: what are system interrupts and what is there that interrupts my computer?

Those same "System interrupts". Values ​​within a few tenths of a percent or 1-2% are normal.

First of all, we note that system interrupts are part of the operating system and this process is constantly running. It would be more accurate to say that this is not so much a process as a kind of stub that demonstrates the consumption of computer resources by the hardware component of the device.

This is a normal process of communication between devices inside the computer (video card, sound card, disks and other devices) with the processor. For example, you start typing something on your keyboard. Separate part The motherboard monitors the distribution of signals that require the processor's attention. IN in this case typing from the keyboard will be a priority, so the motherboard will, figuratively speaking, attract the attention of the processor, which in turn will reduce its emphasis on other tasks. At this moment, one of the system interrupts occurs. When the processor completes the priority task, it will return to other tasks.

Of course, the description is very rough and chaotic, but it allows you to generally imagine the essence of system interrupts. During regular work Computer system interrupts occur at lightning speed and in large quantities. Normal computer operation rarely causes system interrupts to consume more than a few percent of processor resources. Typically this number rarely exceeds 1-1.5%.

System interrupts load the processor

If you notice that system interrupts load the processor above 20% and the load does not drop, then you may have a serious problem with the device’s hardware. Since system interrupts indicate hardware communication with the processor, increased load will mean that the device or corresponding driver is behaving incorrectly and the processor is trying to solve the problem by allocating more resources.

  • Step #1: Restart your computer. It's funny, but in a large number of cases this universal solution, which can solve millions of computer problems. After turning on the computer, monitor the information in the task manager and, if everything is fine, then you are faced with a basic bug.
  • Step #2: Windows update. If rebooting doesn't help, then go to the center Windows updates and check for updates. This is important to do, since the system downloads a large number of drivers through this section. Perhaps a malfunctioning driver is causing increased load on the processor, so Windows may need to download more new version driver (if it exists, of course) and replace the old one with it. If this was the reason, the system interrupt process will calm down.
  • Step #3: Download drivers manually. Be sure to check the drivers that Windows Update does not download itself. The reason is the same as in the previous step.
  • Step #4: device diagnostics. If you've reached this point and system interrupts are still causing your processor to groan, then it's time for you to diagnose the devices connected to your computer. Diagnostics of PC parts is a matter that is worth a dozen separate articles. Here we will only cover the basic information you need to know.

First, turn off all external devices. Start with outer periphery, since it is the easiest to turn off. After that, you will need to focus solely on the insides of the computer. Try turning off external devices sequentially, then it will be easier to find out what exactly caused the load. If after disconnecting one of the devices the load drops, then you have found the source of the problem. Next, you need to conduct separate diagnostics of this device.

If the source was not found among the external devices, move to the internal components. This is where things take a more complex and serious turn, since you cannot simply yank the video card or any other component out of your computer, but you can disable them in Device Manager. There are several important points to consider here.

Click Win + X and select from the menu that opens device Manager. In it you will see a list of connected devices. You will have to turn off everything possible, with the exception of some important components. To do this, select a device from the category, right-click on it and select Disconnect device. Attention: Do not disable devices from the category Computer, Processors or System Devices. This will cause the computer to crash reboot. Focus only on non-essential devices that cannot disrupt the stability of the system. It can be network adapters, sound cards, Bluetooth adapters and other add-ons. Try switching to the processor's integrated video core (if your processor has one, of course). This will allow you to check if the problem is hidden in your video card. If the processor does not have a built-in core, you will have to find a backup video card or try your card in another computer. Please be aware that disabling network card will deprive you of the Internet, disabling the sound card will deprive you of sound, and a turned off video card will cause the monitors connected to it to not work. In the latter case, you need to switch the video output to the one on the motherboard.

Let's say you're successful and find a problematic device. For example, your sound card is malfunctioning. Now we need to find out the nature of the problem. Or problematic driver, or the problem is in the hardware itself. First try rolling back the driver to previous version. To do this, in Device Manager, right-click on the problematic gadget, select Properties and on the tab Driver select Rollback.

If this does not help, connect the device to another computer and monitor the system’s reaction (if possible, of course). Also take a look at the manufacturer's forums and see if there are others who have encountered the same problem. One of the most annoying but potentially useful solutions may be updating your motherboard's BIOS. It is also impossible to deny the fact that the failure could have occurred in the motherboard itself and the interrupt distribution mechanism. Go to the motherboard manufacturer's website and check for updates. When updating the BIOS, follow the instructions carefully, and if you are not confident in your abilities, it is better to contact a well-trained specialist.

There may be other reasons increased load process system interrupts. There is a problem with the device's battery or power supply, or it's dying. HDD. In the case of a disk, check the drive for errors, and also use S.M.A.R.T. utilities. If you suspect the power supply (for example, turning off other components does not solve the problem), then the only way The only way to test your hypothesis is to replace the power supply.

How to disable system interrupts in Windows 10

This is the whole point, that system interrupts cannot be disabled at all. Even if you try to cancel the task, the system will not allow you to do so. So, if system interrupts are constantly loading your computer, it’s time to start seriously diagnosing your PC and, if necessary, replace the failed component or send it in for repairs.

IRQ Priority Management

Managing requests for hardware interrupt

Most components directly attached to the motherboard, including PCI slots, IDE controllers, serial ports, keyboard port even CMOS motherboard, separate IRQs are assigned. A hardware interrupt request, or IRQ, interrupts the processor's normal operation, allowing the device to function. Windows 7 allows you to prioritize one or more IRQs (which are translated to one or more devices), potentially improving the performance of those devices.

Steps to change IRQ priority

  1. Start by running the System Information Utility (msinfo32.exe) and go to System Information Hardware Resources Interrupts (IRQs) to see which IRQs are used for which devices.
  2. Then open Registry Editor (see Chapter 3) and navigate to HKEY_LOCAL_ MACHINE\SYSTEM\CurrentControlSet\Control\PriorityControl.
  3. Create a new DWORD value in this section and name the parameter IRQ#Priority, where # is the number of the IRQ device for which you want to set the priority (for example, IRQ13Priority corresponds to IRQ 13, which is the arithmetic coprocessor).
  4. Double-click the new value and enter a priority number. Enter 1 for the highest priority, 2 for the second, etc. Make sure you don't enter the same number for two entries, and don't try to do everything at once, but experiment with one or two values.
  5. When finished, close Registry Editor and restart your computer.

If you are faced with the fact that system interrupts are loading the processor in the manager Windows tasks 10, 8.1 or Windows 7, this guide will detail how to identify the cause and fix the problem. It is impossible to completely remove system interrupts from the task manager, but returning the load to normal (tenths of a percent) is quite possible if you find out what is causing the load.

System interrupts are not a Windows process, although they appear in the " Windows Processes" This, in general outline, - an event that causes the processor to stop executing current “tasks” in order to perform a “more important” operation. Exist Various types interrupts, but most often high load is caused by hardware IRQs (from computer hardware) or exceptions, usually caused by hardware errors.

What to do if system interrupts load the processor


Most often, when Task Manager shows unnaturally high CPU usage, the cause is one of the following:

  • Malfunctioning computer hardware
  • Device drivers are not working properly

Almost always, the reasons come down to these points, although the relationship of the problem with computer devices or drivers is not always obvious.

Before you start looking for a specific cause, I recommend, if possible, remembering what was running in Windows immediately before the problem appeared:

  • For example, if drivers have been updated, you can try rolling them back.
  • If any new equipment was installed, make sure the connection is correct and the device is working properly.
  • Also, if there was no problem yesterday, but the problem cannot be associated with hardware changes, you can try using .

Finding drivers that cause the load from “System Interrupts”

As already noted, most often the problem is with drivers or devices. You can try to discover which device is causing the problem. For example, free software for free use LatencyMon program.


Usually the reason lies in the network drivers and Wi-Fi adapters, sound cards, other video or audio signal processing cards.

Problems with the operation of USB devices and controllers

Also common cause high load on the processor side from system interrupts is the incorrect operation or malfunction of external devices connected via USB, the connectors themselves, or damage to the cables. In this case, you are unlikely to see anything unusual in LatencyMon.

If you suspect that this is the reason, you could recommend disabling all USB controllers in Device Manager one by one until the load in the Task Manager drops, but if you are a novice user, there is a chance that you will encounter that your keyboard and mouse will stop working, and it will be unclear what to do next.

Therefore, I can recommend a simpler method: open the task manager so that “System Interrupts” is visible and turn off everything one by one, without exception. USB devices(including keyboard, mouse, printers): if you see that when you disconnect another device the load drops, then look for a problem in this device, its connection or the USB connector that was used for it.

Other reasons for high load from system interrupts in Windows 10, 8.1 and Windows 7

In conclusion, some less common causes of the problem described are:


There is another way to try to find out which hardware is at fault (but it rarely shows anything):


In the report under Performance - Resource Overview you can see individual components, whose color will be red. Take a closer look at them, it may be worth checking the functionality of this component.

All computers have a mechanism by which various devices(I/O, memory) can interrupt normal work processor. The main generally accepted classes of interrupts are listed in table. 1.1.

Table 1.1. Interrupt classes

Interrupts are mainly designed to improve work efficiency. For example, most I/O devices are much slower than the processor. Let's assume that the processor transmits data to the printer according to the circuit shown in Fig. 1.2. After each operation, the processor is forced to pause and wait until the printer accepts the data. The duration of this pause can be hundreds or even thousands of times longer than the duration of the instruction cycle, which involves memory accesses. It is clear that such use of the processor is inefficient.

This state of affairs is illustrated in Fig. 1.5, a. The user program contains a series of calls to the WRITE procedure, with other commands in between. Sections 1, 2, and 3 contain sequences of code commands that do not use I/O. When calling the WRITE procedure, control is transferred system utility I/O that performs the corresponding operations. The I/O program consists of three parts.

A sequence of commands, indicated in the figure by number 4, which serve to prepare for the actual I/O operations. This sequence may include copying the output data into a special buffer and preparing a set of parameters necessary to control the device.

Actually input/output commands. If a program does not use interrupts, it should wait until the I/O device completes the required operations (or periodically check its status by polling). In this case, the program has no choice but to simply wait, constantly checking whether the I/O operation has completed.

A sequence of commands, indicated in the figure by number 5, which are used to complete the operation. This sequence may include setting flags indicating the successful or unsuccessful completion of the operation.

Rice. 1.5. Flow of program execution without interruptions and with their use

Because an I/O operation can take a relatively long time to complete, the program slows down while waiting for the operation to complete. Thus, where a WRITE call is encountered, program performance is significantly reduced.

Interrupts and command loop

Thanks to interrupts, the processor can be busy processing other commands while I/O operations are running. Let's consider the process flow shown in Fig. 1.5,6. As in the previous case (without using interrupts), by calling the WRITE procedure, the program accesses the system. This activates the I/O program, which consists of preparatory code and the actual I/O commands. After these commands are executed, control is transferred to the user program. Meanwhile external device is busy receiving data from the computer’s memory and processing it (for example, if this device is a printer, then processing means printing). I/O occurs simultaneously with the execution of user program commands.

At the moment when the external device is released and ready for further operation, i.e. it is ready to receive a new portion of data from the processor, the I/O controller of this device sends an interrupt request signal to the processor. In response, the processor pauses execution current program, switching to work with the program that serves this device I/O (this program is called an interrupt handler). Having serviced the external device, the processor again resumes the interrupted operation. In Fig. 1.5,6 places in the program where an interruption occurs are marked with a cross.

From the user program's point of view, interrupts are nothing more than disruptions to the normal execution sequence. After interrupt processing is completed, work resumes (Fig. 1.6). Therefore, the user program should not include any special code to accommodate interruptions. The processor and operating system are responsible for pausing the user program and resuming it from the very point where it was interrupted.


Rice. 1.6. Transferring control via interrupt

To coordinate the interrupt with the program, an interrupt loop is added to the instruction cycle (see Fig. 1.7, compare with Fig. 1.2). In the interrupt cycle, the processor checks for interrupt signals that indicate interrupts have occurred. When an interrupt arrives, the processor pauses the current program and executes interrupt handler.

Interrupt handlers are usually included with the operating system. Typically, these programs determine the nature of the interrupt and execute necessary actions. For example, in the example used, the handler must determine which I/O controller generated the interrupt; in addition, it can transfer control to a program that must output data to an I/O device. When the interrupt handler completes its work, the processor resumes execution of the user program from the point where it was interrupted.

Clearly, this process involves some overhead. To determine the nature of the interrupt and decide what to do next, the interrupt handler must execute additional commands. However, since it would take a relatively long period of time to wait for I/O operations to complete, interrupts can be used to utilize the processor much more efficiently.


Rice. 1.7. Command loop with interrupts

To evaluate the efficiency gains, consider the time diagram (Fig. 1.8), illustrating the progress of the processes shown in Fig. 1.5,a and b. In the situation shown in Fig. 1.5,6 and 1.8, it is assumed that the I/O operations require a relatively short time, i.e. less than the processing time of commands that are located in the user program between write operations. More typical, especially for such slow devices, like a printer, is the case where I/O operations take much longer than it takes to complete a sequence of user commands. This situation is shown in Fig. 1.5, c. In this case, the user program will reach the next WRITE call before the I/O operation generated by the previous call has completed. As a result, the user's program will be suspended at this location. After the previous I/O operation has completed processing, a new call to the WRITE procedure will be processed, and new I/O operations will be started. In Fig. Figure 1.9 shows a diagram of program execution in an environment without interruptions and with interruptions for the described case. As you can see, in such a situation there is still an efficiency gain, since part of the time during which I/O operations are performed is overlapped by the execution of user commands.


Rice. 1.8. Program timing diagram: fast I/O

Interrupt handling

An interrupt triggers a series of events that occur in both hardware and software. In Fig. Figure 1.10 shows a typical sequence of these events. After the I/O device shuts down, the following occurs.

The device sends an interrupt signal to the processor.

  • The processor must complete execution before responding to an interrupt. current team(see Fig. 1.7).
  • The processor checks for the presence of an interrupt, detects it, and sends a successful reception signal to the device that sent the interrupt. This signal allows the device to remove its interrupt signal.


a) without interruptions
Rice. 1.9. Program timing diagram: slow I/O

  • Now the processor needs to prepare to transfer control to the interrupt handler. First you need to save all important information, so that in the future you can return to the place in the current program where it was suspended. The minimum information required is the program status word and the address of the next instruction to be executed, which is located in the program counter. This data is written to the system control stack.


Rice. 1.10. Handling a simple interrupt

  • Next, the input address of the interrupt handling program, which is responsible for processing this interrupt, is loaded into the processor's program counter. Depending on the architecture of the computer and the operating system device, there may be either one program for processing all interrupts, or there may be its own processing program for each device and each type of interrupt. If there are multiple programs to handle interrupts, the processor must determine which one to call. This information may be contained in the original interrupt signal; otherwise to get necessary information The processor must poll all devices in turn to determine which one sent the interrupt.

As soon as the program counter is loaded with a new value, the processor moves on to the next instruction cycle and begins retrieving it from memory. Since the instruction is fetched from a cell whose number is specified by the contents of the program counter, control passes to the interrupt service routine. Execution of this program entails the following operations.

  • The contents of the program counter and the status word of the interrupted program are already stored on the system stack. However, this is not all the information relevant to the condition. executable program. For example, you need to save the contents of the processor registers, since these registers may be needed by the interrupt handler. Therefore, it is necessary to save all information about the state of the program. Typically, an interrupt handler begins its work by writing the contents of all registers onto the stack. Other information that must be retained is discussed in Chapter 3, Process Description and Control. In Fig. 1.11a shows a simple example in which the user program is interrupted after executing a command from cell N. The contents of all registers, as well as the address next command(N+1), which add up to M words, are pushed onto the stack. The stack pointer is then updated to point to the new top of the stack. The program counter is also updated, indicating the start of the interrupt routine.
  • Now the interrupt handler can start its work. The interrupt handling process involves checking status information related to the I/O operations or other events that caused the interrupt. This may also include forwarding to I/O devices additional instructions or notification messages.
  • After interrupt processing is completed, the previously saved values ​​are retrieved from the stack and written back into the registers, thus restoring the state in which they were before the interrupt (see, for example, Fig. 1.11.6).
  • The last stage is the restoration of the program state word and the contents of the program counter from the stack. As a result, the command of the interrupted program will be executed next.

Due to the fact that the interrupt is not a subroutine called from the program, for full recovery It is important to preserve all state information of the interrupted program. However, an interrupt can occur at any time and anywhere in the user program. This event is unpredictable.

Multiple interrupts

So far we have considered the case of a single interrupt. Let's imagine a situation where several interrupts can occur. For example, the program receives data via a communication line and immediately prints the result. The printer will generate an interrupt each time a print operation completes, and the communication line controller will generate an interrupt each time a new piece of data arrives. This portion can consist of one character or an entire block, depending on the established order of service. In any case, it is possible for a communication interruption to occur while a printer interrupt is being processed.


Rice. 1.11. Changing memory and registers when processing an interrupt

In such a situation, two approaches are possible. The first is to disable new interrupts while the previous one is being processed. Disabling interrupts means that the processor can and should ignore any new interrupt signal. If an interrupt occurs during this time, it will usually remain in the waiting state, and will get its turn when the processor is able to handle interrupts again. Thus, if an interrupt occurs while a user program is running, other interrupts are immediately disabled. After the interrupt processing program completes, the prohibition is removed, and the processor checks for the presence of other interrupts before returning to execution of the interrupted program. This is a successful and simple approach in which interrupts are processed in strictly sequential order (Fig. 1.12a).


b) Nested interrupt handling
Rice. 1.12. Transfer of control during multiple interrupts

However, the disadvantage of this approach is that it does not take into account interrupt priority and those situations in which time is a critical parameter. For example, when some information arrives over a communication line, it may need to be accepted quickly to make room for other inputs. If you do not process the first packet of input data before receiving the second packet, data may be lost due to congestion and overflow of the I/O device buffer.

The second approach takes into account the priority of the interrupt, which allows you to suspend processing of an interrupt with a lower priority in favor of an interrupt with a higher priority (Fig. 1.12.6). As an example of this approach, consider a system with three I/O devices: a printer, a disk, and a communication line, which are assigned priorities in ascending order - 2, 4, and 5, respectively. In Fig. Figure 1.13 shows the order in which interrupts received from these devices are processed. The user program starts at time t = 0. At time t = 10 the printer is interrupted. Information about the user program is written to the system stack, and the standard program interrupt service routine (ISR). While it is running, a communication interruption occurs at t = 15. Because its priority is higher than the printer interrupt priority, the processor starts processing it. The printer ISR is interrupted, its state is pushed onto the stack, and control is transferred to the communication ISR. Then, while this program is running, the disk is interrupted (at time t = 20). Since its priority is lower, the communications ISR continues its work until it finishes.


Rice. 1.13. Example of multiple interrupt handling sequence

After execution, the ISR of the communication line (t = 25) is restored previous state processor, i.e. working with ISR printer. However, before a single command from this program can be executed, the processor begins processing the disk interrupt, which has a higher priority, and control is transferred to the disk ISR. Only after the completion of this program (t = 35) does the ISR printer resume operation. Finally, after processing this interrupt is completed, control is transferred to the user program.







2024 gtavrl.ru.