- windows PID = 0 valid?
- 3 Answers 3
- Not the answer you’re looking for? Browse other questions tagged windows pid or ask your own question.
- Related
- Hot Network Questions
- Subscribe to RSS
- Что такое «System Idle Process» и почему он использует так много ресурсов процессора?
- Что такое System Idle Process
- Зачем Windows нужен процесс простоя системы?
- Почему он использует так много процессора?
- Но мой компьютер медленный!
- Finding the process ID
- Task Manager
- The tasklist command
- TList utility
- The .tlist debugger command
- PowerShell Get-Process command
- CSRSS and user-mode drivers
- Какой процесс имеет PID 0?
- Про USB и его проблемы
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.
Related
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 — держать процессор занятым чем-то — буквально чем-нибудь — пока он ожидает следующего вычисления или процесса, поданного в него. Причина, по которой все это работает, заключается в том, что незанятые потоки используют нулевой приоритет, который ниже, чем у обычных потоков, что позволяет им выталкиваться из очереди, когда в ОС есть допустимые процессы, которые должны быть запущены. Затем, как только процессор завершает эту работу, он готов снова обрабатывать процесс простоя системы. Если незанятые потоки всегда находятся в состоянии готовности, если они еще не запущены, центральный процессор работает и ожидает чего-либо, что ОС ему выдаст.
Почему он использует так много процессора?
Как уже упоминалось ранее, этот процесс использует много ресурсов ЦП, и это то, что вы заметите, если откроете диспетчер задач в поисках ресурсоемких процессов. Это нормально, потому что это специальная задача, запускаемая планировщиком ОС только тогда, когда ваш процессор простаивает, что, если вы не делаете что-то, требующее большой вычислительной мощности, будет выглядеть довольно высоким.
Чтобы понять число рядом с процессом в диспетчере задач, вы должны думать, что это означает противоположное тому, что вы обычно понимаете. Он представляет процент доступного процессора, а не объем его использования. Если программы используют 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 :
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:
Будьте осторожны, чтобы не удалить устройства, обслуживающие Ваши жесткие диски с которых грузится Windows. Удаление всех oem*.inf файлов В командной строке, напечатайте следующее (без кавычек) и нажимайте Enter после каждой команды: «cd \windows\inf» ВНИМАНИЕ! Если у Вас установлено несколько копий Windows, необходимо проделать эту процедуру ДЛЯ ВСЕХ установок Windows. Удаление всех ключей в ветке реестра HKEY_LOCAL_MACHINE/Enum/USB которые начинаются с VID Удаление VID_. ключей из реестра приведет к распознаванию USB устройств заново при рестарте системы. ВНИМАНИЕ: Если у Вас USB мышь или клавиатура, не удаляйте их ветки реестра, иначе Windows при рестарте может глюкануть. Определить эти ветки можно кликнув на «+» VID_. ключа и кликнуть на ключ ступенькой ниже. Если справа в значении переменной DeviceDesc Вы увидите что-то типа «Human Interface Device» или HID — то это как раз мышь или клавиатура. Сведения о USB устройствах, которые когда либо были подключены располагаются в ключах типа «Vid_0000&Pid_0000», необходимо их все удалить (кроме HID).
Полезные рекомендации
|