Кіріспе
Операциялық жүйе ядролары жұмыс істеп тұрған процесті анықтау үшін пайдаланатын сан. Компьютерде процесс идентификаторы (немесе процесс ID, PID) – Unix, macOS және Windows сияқты операциялық жүйе ядроларының жұмыс істеп тұрған процесті бірегей түрде анықтау үшін қолданатын нөмірі. Бұл сан түрлі функцияларды шақыру кезінде параметр ретінде қолданылуы мүмкін, осы арқылы процестерді басқаруға болады, мысалы, процесстің маңыздылығын өзгертуге немесе оны толығымен тоқтатуға.
In computing, the process identifier (a. k. a. process ID or PID) is a number used by most operating system kernels—such as those of Unix, macOS and Windows—to uniquely identify an active process. This number may be used as a parameter in various function calls, allowing processes to be manipulated, such as adjusting the process's priority or killing it altogether.
Unix- тәрізді
Unix-ке ұқсас операциялық жүйелерде жаңа процестер fork жүйелік шақыру арқылы жасалады. PID аталық процеске қайтарылады, осылайша ол келесі функция шақыруларында бала процеске сілтеме жасай алады. Ата-ана процесі, мысалы, waitpid функциясымен бала процестің аяқталуын күте алады немесе kill арқылы процесті тоқтатуы мүмкін. Ерекше ID-лері бар екі тапсырма бар: swapper немесе sched процесі 0 ID-сіне ие және беттерді ауыстыруға (paging) жауапты, ол әдеттегі пайдаланушы режиміндегі процестен гөрі ядроның бөлігі болып табылады. 1 процесс ID-сі әдетте жүйені іске қосу және тоқтату үшін жауапты init процесіне тиесілі. Алғашқыда 1 процесс ID-сі ешқандай техникалық шаралармен init үшін арнайы сақталмаған: ол ядро шақырған алғашқы процесс болғандықтан осы ID-ге ие болды. Жаңа Unix жүйелерінде көбінесе "процестер" ретінде көрінетін қосымша ядро компоненттері болады, мұндай жағдайда PID 1 ескі жүйелермен үйлесімділікті сақтау үшін init процесіне белсенді түрде резервтеледі. Процесс ID-лері, біріншіден, әдетте жүйеден жүйеге өзгеретін 0-ден бастап максималды мәнге дейін тізбектей беріледі. Бұл лимитқа жеткеннен кейін, үлестіру 300-ден басталады және қайтадан артады. macOS және HP-UX жүйелерінде үлестіру 100-ден қайта басталады. Дегенмен, осы және келесі кезеңдерде процеске бұрын берілген кез келген PID жіберіліп тасталады. Кейбіреулер мұны қауіпсіздіктің әлсіз тұсы деп санайды, себебі ол жүйе туралы ақпаратты алуға немесе процестер арасында жасырын хабарламалар жіберуге мүмкіндік береді. Сондықтан, қауіпсіздікке ерекше мән беретін жүйелер PID-ді үлестірудің басқа әдісін таңдауы мүмкін. Кейбір жүйелерде, мысалы MPE/iX, ең төменгі қол жетімді PID қолданылады, кейде жадыдағы процесс ақпаратының ядролық беттерінің санын азайту мақсатында. Ағымдағы процесс ID-сі getpid жүйелік шақыру арқылы немесе shell-де $$ айнымалысы ретінде қолжетімді. Бастапқы процесс ID-сі getppid жүйелік шақыру арқылы алынады. Linux жүйесінде процесс ID-сінің максималды мәні /proc/sys/kernel/pid_max псевдофайлында көрсетілген.
There are two tasks with specially distinguished process IDs: swapper or sched has process ID 0 and is responsible for paging, and is actually part of the kernel rather than a normal user mode process. Process ID 1 is usually the init process primarily responsible for starting and shutting down the system. Originally, process ID 1 was not specifically reserved for init by any technical measures: it simply had this ID as a natural consequence of being the first process invoked by the kernel. More recent Unix systems typically have additional kernel components visible as 'processes', in which case PID 1 is actively reserved for the init process to maintain consistency with older systems. Process IDs, in the first place, are usually allocated on a sequential basis, beginning at 0 and rising to a maximum value which varies from system to system. Once this limit is reached, allocation restarts at 300 and again increases. In macOS and HP UX, allocation restarts at 100. However, for this and subsequent passes any PIDs still assigned to processes are skipped. Some consider this to be a potential security vulnerability in that it allows information about the system to be extracted, or messages to be covertly passed between processes. As such, implementations that are particularly concerned about security may choose a different method of PID assignment. On some systems, like MPE/iX, the lowest available PID is used, sometimes in an effort to minimize the number of process information kernel pages in memory. The current process ID is provided by a getpid system call, or as a variable $$ in shell. The process ID of a parent process is obtainable by a getppid system call. On Linux, the maximum process ID is given by the pseudo file /proc/sys/kernel/pid max.
Pidfile файлы
Кейбір процестер, мысалы, moc музыка ойнатқышы және MySQL демоны, өздерінің PID-ін басқа процестерге анықтау үшін, белгілі бір файлға жазады.
Microsoft Windows-тың жүйелік жүйесі
Windows операциялық жүйелер тобында, ағымдағы процестің ID-ін Windows API-дың GetCurrentProcessId функциясы арқылы, ал басқа процестердің ID-ін GetProcessId функциясы арқылы алуға болады. Ішкі жүйеде процесс ID клиент ID деп аталады және ол жиектер ID-імен бірдей атау кеңістігінен бөлінеді, сондықтан олар ешқашан қайталаспайды. Жүйе бос процесіне 0 процесс ID беріледі. Жүйелік процеске Windows 2000 жүйесінде 8, ал Windows XP және Windows Server 2003 жүйесінде 4 процесс ID беріледі. Windows NT операциялық жүйелер отбасында процестер мен жиектердің идентификаторларының барлығы 4-ке бөлінеді, бірақ бұл талаптардың бір бөлігі емес.