Windows 7 interrupts. How it works: the simplest explanation


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

The default process "System Interrupts" in the operating room Windows system running constantly, but when regular work it should not load the 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: During the process of disabling components in Device Manager, do not disable Computer, Processor and System Devices, otherwise it will cause emergency reboot computer.

When you find a device that, when disconnected, will reduce the load on the processor to normal, 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.

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.

The average user usually cannot say exactly what processor system interrupts are, since they are considered to be something from the realm of science fiction. But when a process of the same name appears in the “Task Manager”, loading system resources, it’s time to think about how to fix the problem. But first, a little about what it is. An explanation of all these processes and methods for correcting the situation as much as possible is offered. accessible language for an unprepared user.

What are system interrupts?

They can be interpreted not as any specific system process, but as a kind of indicator in the form of a kind of litmus test, which only indicates that some “hardware” device is not working correctly or does not work at all.

In other words, system interrupts in the same “Task Manager” are the process of checking computer components. Typically the CPU load for this process (in in good condition computer) does not exceed five percent. If the load increases, this can be considered the first signal indicating that some device has failed (the hard drive has fallen down, the RAM strips are not working, etc.). Sometimes systemic Windows interrupts 10 or versions of the system of earlier generations are associated with obsolescence, incorrect installation or lack of device drivers. But in most cases this refers to an increase in the load on resources indirectly.

Why do Windows 10 system interrupts load the processor?

Now a few words about the reasons for the increase in load. Speaking in simple language, it can be noted that in Windows 10, system interrupts load the processor only for the reason that when functional failures in the performance of some component are detected, the processor takes upon itself the execution of commands addressed to the failed devices, since they simply ignore or skip them.

Accordingly, if the device does not work, the CPU and RAM, as they say, carry it all on their own back. However, it is possible to get rid of such a scourge. And it is not always advisable to replace equipment, although in most cases this is the root cause of increased loads.

Initial steps to check the equipment

In order to find out exactly what exactly is causing the failures, it is recommended to use non-system Windows tools, but third-party utilities.

However, you can use this tool first. In this situation, you need to enter the "Device Manager" (devmgmt.msc in the "Run" console) and disable all devices in the list except the computer, processor and system components, and then look at the CPU utilization level (disabling these three components should not be done under any circumstances, as this can lead to a crash and problems when rebooting the system). Next, you just need to turn on the devices one at a time, finding out which of them affects the load level.

Interrupt Checker

It's much easier to track system interrupts if you use a small portable utility called DPC Latency Checker (it doesn't require installation).

To get started, simply set the scan to start. The results will be shown in the field located at the bottom of the main window. There are troubleshooting tips here too, but they direct you to the same “Device Manager” for diagnostics there. That's only if it's related to the processor itself or system devices, For quick solution problems, you can simply try to reinstall or update the drivers for the relevant components.

You can use programs like Driver Booster, which search for and install updates in automatic mode(the user is only required to activate scanning and agree to install updates).

What else could it be?

Sometimes the interrupt load is also associated with some additional settings systems. In particular, it is believed that the use sound effects For older or integrated sound cards, this may cause excessive load. Indeed, this can also happen.

Therefore, in the setting Windows sound On the enhancements tab, disable the use of all effects.

Finally, some experts attribute the increase in interrupt load to outdated firmware of the primary BIOS/UEFI input/output systems. The solution is to update the firmware. With UEFI this is quite easy to do, since the update file can be run directly in the operating system environment, after which the update will be installed upon reboot. In BIOS this procedure looks a little more complicated. If there are update settings there, you can use them, but on most systems you will have to download them initially required file, and only then launch the update, and specifically from the primary, and not the operating system. The procedure, I must say, is quite troublesome, and without special skills it is better not to do such things, otherwise the whole computer system can simply be rendered completely unusable.

Conclusion

Finally, it remains to be noted that in the event of a malfunction of the RAM, you can use the Memtest86+ program for diagnostics or check the failed strips by removing them from the slots on motherboard. As soon as the faulty strip is detected and the system boots normally, the load on the processor in the form of interruptions will instantly and significantly decrease.

In general, every user should clearly understand that if such a situation arises, the problem is most likely in the hardware, and not in the drivers. Although... you never know what can happen. And these were only the main causes of failures and diagnostic methods. It is likely that custom manual computer configurations will require downloading and using diagnostic programs for each individual device. But it is recommended to download such applications exclusively from the websites of equipment manufacturers or the corresponding developers in the form of support services. In the case of laptops, you can use standard means online diagnostics, which are available on any Internet resource of a self-respecting manufacturer.







2024 gtavrl.ru.