Cadarn! Dyma'r erthygl y gofynnwyd amdani:
Mae deall cymhlethdodau adnabod prosesau yn agwedd hanfodol ar fonitro telemetreg wrth ddylunio systemau. Mae dynodwr proses (PID) yn rhif unigryw a roddir i bob proses pan fydd yn cychwyn ar systemau tebyg i Unix fel y rhai sydd wedi'u hadeiladu yn iaith C.
Un o'r swyddogaethau a lynir i adalw'r PID yw'r swyddogaeth getpid. Mae'r gystrawen yn eithaf syml, gan nad oes angen unrhyw baramedrau arno, ac yn ei dro, yn syml mae'n dychwelyd gwerth cyfanrif, sy'n cynrychioli PID y broses gyfredol. Nawr, gadewch i ni blymio'n ddwfn i sut y gallwn gael y PID yn C yn rhaglennol.
#include <stdio.h> #include <unistd.h> int main() { printf("The process ID is %dn", getpid()); return 0; }
Ar ôl cynnwys llyfrgelloedd angenrheidiol, rydym wedi diffinio'r prif swyddogaeth. Y tu mewn i'r brif swyddogaeth, mae gennym orchymyn printf syml sy'n allbynnu “ID y broses” ac yna'r PID gwirioneddol, sy'n cael ei adfer trwy swyddogaeth getpid.
Pwysigrwydd Adnabod Proses
Mae adnabod prosesau yn hanfodol gan ei fod yn caniatáu cyfathrebu effeithlon a diogel rhwng gwahanol brosesau yn y system. Mae'n sicrhau bod adnoddau'n cael eu dyrannu a'u rheoli'n gywir ymhlith y prosesau amrywiol. Heb PIDs, byddai rheoli a gwahaniaethu prosesau system yn dasg hynod heriol os nad amhosibl.
Llyfrgelloedd a Ddefnyddir
Yn ein cod, rydym wedi defnyddio dwy lyfrgell hanfodol i gael y PID:
- stdio.h: Ffeil pennawd yw hon sydd fel arfer yn cynnwys datganiad o set o swyddogaethau sy'n ymwneud â thasgau mewnbwn/allbwn.
- unistd.h: Yn sefyll ar gyfer llyfrgell safonol Unix, yn cynnwys diffiniadau a datganiadau angenrheidiol ar gyfer cynnal galwadau system.
Er mwyn dyfnhau ein dealltwriaeth, cofiwch fod llyfrgelloedd yn darparu cod wedi'i lunio ymlaen llaw y gellir ei ailddefnyddio, gan arbed datblygwyr rhag ail-ysgrifennu codau cymhleth. Er enghraifft, mae stdio.h yn caniatáu ffordd syml i ni ryngweithio â dyfeisiau mewnbwn neu allbwn tra bod unistd.h yn ein cynorthwyo i wneud galwadau system heb i ni wybod cymhlethdodau mewnol y system.