Windows system pid 0

windows PID = 0 valid?

In Windows, is 0 valid PID for a process or is it reserved by OS? It would be nice if you can provide a link to a doc that says it is reserved or what. Thank!

3 Answers 3

Open task manager — switch to the processes tab (maybe click «View», «Show columns» and enable the PID column).

PID 0 is the System Idle Process. Since that process isn’t really a process and never exits, I suspect that it is always the case.

No documentation available to me, but I’m pretty certain this is always going to be the case.

It’s not stated anywhere but it comes down to how the kernel handle table works. This same object is used for both process handles and process/thread IDs. It happens that handle values all start at 0x4, and PsInitialSystemProcess is the first process to be created, so it gets a PID of 4. Idle process isn’t actually a process and you can’t open it. It probably doesn’t have a PID for most intents and purposes but most tools consider it to be 0.

The PID of 0 is reserved for the Idle «psuedo-process», just like PID of 4 is reserved for the System (Windows Kernel).

I can’t find any documentation on where that is specified, but querying the processes via any API (Perf Counters, WMI) will always give you the idle process for PID 0.

Not the answer you’re looking for? Browse other questions tagged windows pid or ask your own question.

Hot Network Questions

Subscribe to RSS

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

site design / logo © 2021 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2021.4.16.39093

By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.

Что такое «System Idle Process» и почему он использует так много ресурсов процессора?

Вы когда-нибудь открывали диспетчер задач и замечали, что System Idle Process использует 90% или более вашего процессора? Это неплохо. Вот что на самом деле делает этот процесс.

Что такое System Idle Process

Если вы когда-нибудь ковырялись в диспетчере задач — пользователям Windows 10 нужно заглянуть на вкладку «Сведения» — вы увидите, что процесс простоя системы использует большую часть, если не все, вашего ЦП. Но процесс простоя системы — только это; процесс холостого хода, сделанный операционной системой. Без этого процесса, постоянно занятого вашим процессором, ваша система потенциально может зависнуть.

Другими словами, ресурсы ЦП, используемые Системным процессом простоя, являются просто ресурсами ЦП, которые не используются. Если программы используют 5% вашего ЦП, процесс простоя системы будет использовать 95% вашего ЦП. Вы можете думать об этом как о простом заполнителе. Вот почему диспетчер задач описывает этот процесс как «процент времени, в течение которого процессор простаивает». У него PID (идентификатор процесса) 0.

Windows скрывает информацию о процессе простоя системы на обычной вкладке «Процессы» в диспетчере задач Windows 10, чтобы упростить задачу, но она по-прежнему отображается на вкладке «Сведения».

Зачем Windows нужен процесс простоя системы?

Без этого процесса, постоянно занятого вашим процессором, ваша система может потенциально зависнуть. Windows запускает этот процесс как часть учетной записи пользователя SYSTEM, поэтому он всегда активен в фоновом режиме, пока работает Windows.

Процессы простоя системы являются родными для операционных систем Windows NT, начиная с 1993 года — они также появляются в Unix-подобных операционных системах, таких как Linux, но работают немного по-другому. Процесс простоя системы — это обычная часть вашей ОС, в которой выполняется многопроцессорная система с одним потоком на каждом ядре ЦП, в то время как системы, использующие гиперпоточность, имеют один поток простоя на логический процессор.

Единственная цель System Idle Process — держать процессор занятым чем-то — буквально чем-нибудь — пока он ожидает следующего вычисления или процесса, поданного в него. Причина, по которой все это работает, заключается в том, что незанятые потоки используют нулевой приоритет, который ниже, чем у обычных потоков, что позволяет им выталкиваться из очереди, когда в ОС есть допустимые процессы, которые должны быть запущены. Затем, как только процессор завершает эту работу, он готов снова обрабатывать процесс простоя системы. Если незанятые потоки всегда находятся в состоянии готовности, если они еще не запущены, центральный процессор работает и ожидает чего-либо, что ОС ему выдаст.

Читайте также:  Monitoring ports on windows

Почему он использует так много процессора?

Как уже упоминалось ранее, этот процесс использует много ресурсов ЦП, и это то, что вы заметите, если откроете диспетчер задач в поисках ресурсоемких процессов. Это нормально, потому что это специальная задача, запускаемая планировщиком ОС только тогда, когда ваш процессор простаивает, что, если вы не делаете что-то, требующее большой вычислительной мощности, будет выглядеть довольно высоким.

Чтобы понять число рядом с процессом в диспетчере задач, вы должны думать, что это означает противоположное тому, что вы обычно понимаете. Он представляет процент доступного процессора, а не объем его использования. Если программы используют 5% ЦП, то SIP покажет, что использует 95% ЦП, или 95% ЦП не используется или нежелателен другими потоками в системе.

Но мой компьютер медленный!

Если ваш компьютер работает медленно, и вы заметили высокую загрузку процесса простоя системы — ну, это не ошибка процесса простоя системы. Поведение этого процесса совершенно нормально и предполагает, что проблема не в высокой загрузке процессора. Это может быть вызвано нехваткой памяти, медленным хранением или чем-то еще, из-за использования ресурсов вашего компьютера. Как всегда, рекомендуется запустить сканирование с помощью антивирусной программы, если у вас возникли проблемы, и вы не запускаете ничего, что может замедлить работу вашего компьютера.

Finding the process ID

Each process running in Windows is assigned a unique decimal number called the process ID (PID). This number is used in a number of ways, for example to specify the process when attaching a debugger to it.

This topic describes how you can determine the PID for a given app using Task Manager, the tasklist Windows command, the TList utility, or the debugger.

Task Manager

Task Manager can be opened in a number of ways, but the simplest is to select Ctrl+Alt+Delete, and then select Task Manager.

In Windows 10, first click More details to expand the information displayed. From the Processes tab, select the Details tab to see the process ID listed in the PID column.

Click on any column name to sort. You can right click a process name to see more options for a process.

Some kernel errors may cause delays in Task Manager’s graphical interface.

The tasklist command

Use the built in Windows tasklist command from a command prompt to display all processes, their PIDs, and a variety of other details.

Use tasklist /? to display command line help.

TList utility

Task List Viewer (TList), or tlist.exe, is a command-line utility that displays the list of tasks, or user-mode processes, currently running on the local computer. TList is included in the Debugging Tools for Windows. For information on how to download and install the debugging tools, see Download Debugging Tools for Windows.

If you installed the Windows Driver Kit in the default directory on a 64 bit PC, the debugging tools are located here:

C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\

When you run TList from the command prompt, it will display a list of all the user-mode processes in memory with a unique PID number. For each process, it shows the PID, process name, and, if the process has a window, the title of that window.

For more information, see TList.

The .tlist debugger command

If there’s already a user-mode debugger running on the system in question, the .tlist (List Process IDs) command will display a list of all PIDs on that system.

PowerShell Get-Process command

To work with automation scripts, use the Get-Process PowerShell command. Specify a specific process name, to see the process ID for that process.

For more information, see Get-Process.

CSRSS and user-mode drivers

To debug a user-mode driver running on another computer, debug the Client Server Run-Time Subsystem (CSRSS) process. For more information, see Debugging CSRSS.

Какой процесс имеет PID 0?

Я ищу процесс, запущенный в Linux с идентификатором процесса 0. Я знаю, init что PID 1, который является первым процессом в Linux, есть ли процесс с PID 0?

На странице википедии под названием: Идентификатор процесса :

Есть две задачи со специально выделенными идентификаторами процессов: swapper или sched имеет идентификатор процесса 0 и отвечает за подкачку страниц и фактически является частью ядра, а не обычным процессом пользовательского режима . Идентификатор процесса 1 обычно является процессом инициализации, главным образом ответственным за запуск и выключение системы. Первоначально, идентификатор процесса 1 не был специально зарезервирован для init никакими техническими мерами: он просто имел этот идентификатор как естественное следствие того, что ядро ​​было первым процессом, вызванным ядром. Более поздние системы Unix обычно имеют дополнительные компоненты ядра, видимые как «процессы», и в этом случае PID 1 активно резервируется для процесса init для поддержания согласованности со старыми системами.

Вы можете увидеть доказательства этого, если вы посмотрите на родительские PID (PPID) init и kthreadd :

Читайте также:  Windows phone error unable to find bootable option

kthreadd это демон потока ядра Все kthreads разветвляются из этой темы. Вы можете увидеть доказательства этого, если посмотрите на другие процессы, использующие ps и увидев, кто является их PPID:

Обратите внимание, что они все 2 .

Есть две задачи со специально выделенными идентификаторами процессов: swapper или sched имеет идентификатор процесса 0 и отвечает за подкачку страниц и фактически является частью ядра, а не обычным процессом пользовательского режима.

Процесс с pid 0 является планировщиком,

Идентификатор процесса Описание:
0 Планировщик
1 Процесс инициализации
2 kflushd
3 kupdate
4 kpiod
5 kswapd
6 mdrecoveryd

Про USB и его проблемы


Для ознакомлением о том, что из себя представляет сам порт USB посетите странички «USB: работа над ошибками. Учимся писать и говорить правильно!» и «Энциклопедия интерфейсов компьютера»

Если возникли проблемы с USB:

  1. Проверьте все провода и удлинители на излом, оголённые участки, надёжность соединения:
    • провода от устройств (принтеров, сканеров и т. д.) к портам;
    • провода, соединяющие панель портов (обычно на передней стенке корпуса) и разъём на материнской плате и правильность их подключения. Схема подключения может различаться в зависимости от модели материнской платы, поэтому следует изучить руководство к своей материнской плате.
      «тип A»
      «тип B»
      Называют разъёмы по-разному, но означают они одно и тоже:
      1. Питание, +5В [ V BUS , VCC , Power ]
      2. Data (передача данных в одну сторону) [ D- , USB0- , USB1- , USBD2- , USBD3- , USBP0- , USBP1- , USB Dy-, USB DX- ]
      3. Data (передача данных в другую сторону) [ D+ , USB0+ , USB1+ , USBD2+ , USBD3+ , USBP0+ , USBP1+ , USB Dy+ , USB DX+ ]
      4. Земля (корпус) [ GND , NC ]


    • удлинители. Больше 1,5м не рекомендуется. Больше 5м без усилителя не поддерживается;
    • рекомендуется подключать устройства к портам, расположенным на задней стенке корпуса, где вынесена панель различных портов материнской платы, т. к. там порты непосредственно соединены с материнской платой.

  2. Убедитесь, что в BIOS’е включены следующие опции:
    • USB Controller [Enabled] — этот параметр используется для включения или выключения USB — контроллера.
    • USB Device Legacy Support [Enabled] — этот параметр управляет поддержкой USB- устройств без использования специализированного драйвера.
    • On-Chip USB [V1.1+V2.0] — позволяет работать устройствам как в режиме 1.1 так и 2.0.
    • USB Keyboard Support [Enabled] — поддержка работы в BIOS и DOS USB-клавиатур.
    • USB Mouse Support [Enabled] — поддержка работы в BIOS и DOS USB-мышей.

    Если какой-то не нашли, не страшно, вероятно её просто нет в вашем биосе.

    Установите ОС не ниже Windows XP SP1 (к Windows XP SP1 дополнительно установите «Пакет исправлений для Windows XP Q810400» (Скачать) и «Пакет исправлений для Windows XP KB822603» (Скачать) и установите/обновите драйвера для USB2.0 (искать на сайте производителя материнской платы).

    Для систем Windows XP (без SP) необходимо установить «Пакет исправлений для Windows XP Q312370» (Скачать)

    В системах Windos 9x/Me выполните рекомендации из этой статьи: https://support.microsoft.com/ru-ru/help/263218/

    В системе Windows 98 SE необходимо установить «Пакет исправлений для Windows 98 SE 240075UP»

    Если не определяются устройства, подключенные через хост-контроллер USB и ничего не отображается в «Диспетчере устройств», то воспользуйтесь утилитой USBready для определения поддержки USB.

    Решение программных проблем в Windows

    1. Здесь мы рассмотрим ситуацию, когда съемные носители определились и в «Управлении устройствами» (Device manager) — показывает, что все устройства работают нормально и конфликтов нет, но к примеру в Проводнике Windows устройство отсутствует.
      • Проверьте назначена ли буква в оснастке «Управление дисками»: Кликните ПУСК —> Выполнить (либо сочетание клавиш Win+R) diskmgmt.msc
      • Если установлен SPTD (входит в состав Alcohol 52/100% и Daemon Tools) — переустановите его.
      • Убедитесь в наличии файлов ..\Windows\inf\usb.inf, ..\Windows\inf\usbport.inf и ..\Windows\inf\usbstor.inf
      • Попробуйте применить этот твик реестра:

    Windows Registry Editor Version 5.00

    [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
    «NoDrives»=dword:00000000
    «NoViewOnDrive»=dword:00000000

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer]
    «NoDrives»=dword:00000000
    «NoViewOnDrive»=dword:00000000

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\<4d36e965-e325-11ce-bfc1-08002be10318>]
    «UpperFilters»=-
    «LowerFilters»=-

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\<4d36e967-e325-11ce-bfc1-08002be10318>]
    «UpperFilters»=-
    «LowerFilters»=-

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\<4d36e980-e325-11ce-bfc1-08002be10318>]
    «UpperFilters»=-
    «LowerFilters»=-

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\<36fc9e60-c465-11cf-8056-444553540000>]
    «UpperFilters»=-
    «LowerFilters»=-

    Решение аппаратных проблем в Windows


      Здесь мы рассмотрим ситуацию, когда:

    • Само устройство РАБОТАЕТ. Это Вы проверили на другом компьютере.
    • При подключении же именно к Вашему компьютеру, оно либо не определяется вообще, либо определяется неправильно, либо даже правильно определяется, но не работает как нужно.
    • Вы уверены, что установлены все необходимые драйверы всех устройств подключенных к системе.
    • Вы уверены, что переустановка и обновление драйверов USB контроллеров и устройств USB сделаны корректно.
    • В «Управлении устройствами» (Device manager) — показывает, что все устройства работают нормально и конфликтов нет.


    Как правило такая ситуация может возникнуть если USB 2.0 Enhanced Host Controller использует одно прерывание вместе с каким-либо другим устройством (IRQ Sharing), например звуковым или видео. В этом случае нарушается правильная передача параметров (FDO, PDO) от драйверов USB (usbhub.sys, usbstor.sys, usbport.sys) к драйверам логических устройств, например от usbstor.sys в disk.sys в случае «USB 2.0 mass storage device».

    Физически отключите все USB устройства от компьютера и загрузите компьютер в БЕЗОПАСНОМ РЕЖИМЕ (Safe Mode) — нажмите F8 при старте компьютера — с правами локального Администратора.

  3. Удаление скрытых устройств
    • Кликните ПУСК —> Выполнить (либо сочетание клавиш Win+R). Напечатайте cmd и нажмите OK — должно появиться окно командной строки.
    • В командной строке, напечатайте следующее (без кавычек) и нажимайте Enter после каждой команды:

    «set DEVMGR_SHOW_DETAILS=1»
    «set DEVMGR_SHOW_NONPRESENT_DEVICES=1»
    «start devmgmt.msc»

    Должен появиться «Device Manager», или «Управление устройствами» в русской версии.

  4. Кликните View (Вид) —> Show hidden devices (Показать скрытые устройства).
  5. Если Вы увидели в развернутых классах Ваше устройство (включая посеревшие) кликните на нем правой кнопкой и в выпавшем меню кликните Uninstall (Удалить).


  6. Например для USB 2.0 HDD надо удалить все «USB 2.0 Storage Device USB Device» из класса «Disk Drives», все «USB mass StorageDevice» из класса «USB controllers» и серые «Generic Volume» из класса «Storage Volumes».

    Будьте осторожны, чтобы не удалить устройства, обслуживающие Ваши жесткие диски с которых грузится Windows.

    Удаление всех oem*.inf файлов

    В командной строке, напечатайте следующее (без кавычек) и нажимайте Enter после каждой команды:

    «cd \windows\inf»
    «ren infcache.1 *.old»
    «ren oem*.inf *.old»
    «del C:\windows\setupapi.log»

    ВНИМАНИЕ! Если у Вас установлено несколько копий Windows, необходимо проделать эту процедуру ДЛЯ ВСЕХ установок Windows.

    Удаление всех ключей в ветке реестра HKEY_LOCAL_MACHINE/Enum/USB которые начинаются с VID

    Удаление VID_. ключей из реестра приведет к распознаванию USB устройств заново при рестарте системы.

    ВНИМАНИЕ: Если у Вас USB мышь или клавиатура, не удаляйте их ветки реестра, иначе Windows при рестарте может глюкануть. Определить эти ветки можно кликнув на «+» VID_. ключа и кликнуть на ключ ступенькой ниже. Если справа в значении переменной DeviceDesc Вы увидите что-то типа «Human Interface Device» или HID — то это как раз мышь или клавиатура.


    • В командной строке, напечатайте regedit и нажмите OK — должен открыться редактор реестра.
    • Перейдите на HKEY_LOCAL_MACHINE\System\CurrentControlSet\Enum\USB.

    Сведения о USB устройствах, которые когда либо были подключены располагаются в ключах типа «Vid_0000&Pid_0000», необходимо их все удалить (кроме HID).

  7. Правой кнопкой мыши на каждом из этих ключей (типа «Vid_0000&Pid_0000») —> Permissions (Разрешения) -> для группы Everyone (Все) назначить Full Control (полный доступ) —> Применить.
  8. Удалите все (кроме HID) VID_. ключи.
  9. Закройте редактор реестра, завершите работу и полностью выключите компьютер (из розетки или выключить сетевой фильтр).

  10. Подключение устройства к компьютеру:
    • Пока компьютер ВЫКЛЮЧЕН присоедините Ваше устройство к USB порту НЕ ПОДКЛЮЧАЯ ПИТАНИЯ К ВАШЕМУ USB УСТРОЙСТВУ (если имеется отдельное питание).
    • ПОСЛЕ того, как Windows ПОЛНОСТЬЮ загрузиться и прекратит бешено шуршать винчестером (можно проследить по диодному индикатору HDD на лицевой панели системного блока), подсоединяем питание к Вашему устройству.
    • Должен начаться процесс детектирования нового устройства и полная переустановка драйверов для него.
    • Если при подключении ранее установленного устройства USB, Windows запросит установить драйвер, укажите следующие пути: WINDOWS\system32\ , WINDOWS\INF\ , WINDOWS\Driver Cache\i386\ , а для Windows Vista и Windows 7 еще и WINDOWS\WinSxS\



Полезные рекомендации

  1. Старайтесь всегда снимать статическое напряжение — для этого коснитесь флешкой чего-нибудь металлического, например батареи, перед подключением. А лучше всего купите USB-Hub, там всегда есть такая защита.

    Подключайте по возможности оборудование с интерфейсом Full Speed USB (в простонародье USB2.0) к Full Speed USB портам. Тоже самое и для Hi-Speed.

    Если не удалось решить проблему или просто не осталось свободных портов, купите панель портов в виде PCI-контроллера, USB-концентраторы (USB-HUB) или подключите USB-шлейф к разъёмам на материнской плате, если они не подключены.

    PCI-Контроллер — вставляется в слот PCI и несёт на себе 3 и более портов USB. На рисунке показан контроллер с четырьмя портам, три вынесены на панель, а один расположен на самой плате.

    USB-концентраторы (USB-HUB) — могут быть пассивными и активными (используют питание от USB-порта или оборудованы собственным блоком питания). С их помощью к одному порту USB можно подключать несколько устройств одновременно.

    Устройства с встроенными USB-портами — минус такого способа в том, что вся нагрузка приходится на один порт, к которому подключено устройство. Энергоёмкие приборы попросту могут не заработать.

Читайте также:  Shift insert mac os
Оцените статью