Prosessgruppe - Process group
I en POSIX -conformant operativsystem , en prosess gruppe betegner en samling av en eller flere prosesser . Blant annet brukes en prosessgruppe for å kontrollere fordelingen av et signal ; når et signal ledes til en prosessgruppe, blir signalet levert til hver prosess som er medlem av gruppen.
På samme måte betegner en økt en samling av en eller flere prosessgrupper. En prosess kan ikke opprette en prosessgruppe som tilhører en annen økt. Videre er det ikke tillatt for en prosess å bli med i en prosessgruppe som er medlem av en annen økt - det vil si at en prosess ikke har lov til å migrere fra en økt til en annen.
Når en prosess erstatter bildet med et nytt bilde (ved å kalle en av funksjonene ), blir det nye bildet utsatt for samme prosessgruppe (og dermed sesjons) medlemskap som det gamle bildet.
exec
applikasjoner
Fordelingen av signaler til prosessgrupper danner grunnlaget for jobbkontroll som brukes av skallprogrammer . Den TTY enhet driveren omfatter en forestilling om en forgrunn prosess gruppe , til hvilken den sender signaler som genereres av tastaturet avbrudd , særlig SIGINT ( "interrupt", Control+ C), SIGTSTP ( "terminal stop", Control+ Z), og SIGQUIT ( "sluttet", Control+ \). Den sender også SIGTTIN- og SIGTTOU -signalene til prosesser som prøver å lese fra eller skrive til terminalen og som ikke er i prosessgruppen i forgrunnen. Skallet, på sin side, deler kommando -rørledningene som det oppretter i prosessgrupper, og styrer hvilken prosessgruppe som er prosessgruppen i forgrunnen til dens kontrollterminal , og bestemmer dermed hvilke prosesser (og dermed hvilke kommandopipelines) som kan utføre I/O til og til enhver tid fra terminalen.
Når skallet er en ny underordnet prosess for en kommandopipeline, gjør både forelderskallprosessen og barneprosessen barneprosessen umiddelbart til leder for prosessgruppen for kommandopipelinjen. På denne måten er det sikret at barnet er leder for prosessgruppen før enten forelderen eller barnet er avhengig av at dette er tilfelle.
fork
Når et tekstlig brukergrensesnitt brukes på et Unix-lignende system, brukes økter for å implementere påloggingsøkter . En enkelt prosess, sesjonslederen , samhandler med den kontrollerende terminalen for å sikre at alle programmer avsluttes når en bruker "legger på" terminalforbindelsen. (Når en sesjonsleder er fraværende, forventes prosessene i terminalens prosessgruppe i forgrunnen å håndtere hangups.)
Når et grafisk brukergrensesnitt brukes, går øktkonseptet i stor grad tapt, og kjernens forestilling om økter ignoreres i stor grad. Grafiske brukergrensesnitt, for eksempel hvor X -skjermansvarlig er ansatt, bruker en annen mekanisme for å implementere påloggingsøkter.
Detaljer
Den systemkall brukes til å opprette en ny sesjon som inneholder en enkelt (ny) prosessgruppe, med den aktuelle fremgangsmåten som både sesjonslederen og prosessen gruppeleder av denne ene prosess gruppe. Prosessgrupper identifiseres med et positivt heltall, prosessgruppe -ID , som er prosessidentifikatoren for prosessen som er (eller var) prosessgruppelederen. Prosessgrupper trenger ikke nødvendigvis å ha ledere, selv om de alltid begynner med en. Økter identifiseres med prosessgruppe -IDen til sesjonslederen. POSIX forbyr endring av prosessgruppe -ID for en sesjonsleder.
setsid
Systemanropet brukes til å angi prosessgruppe -ID for en prosess, og derved enten koble prosessen til en eksisterende prosessgruppe, eller opprette en ny prosessgruppe i sesjonen av prosessen med at prosessen blir prosessgruppeleder for den nyopprettede gruppe. POSIX forbyr gjenbruk av en prosess-ID der en prosessgruppe med den identifikatoren fortsatt eksisterer (dvs. der lederen for en prosessgruppe har avsluttet, men andre prosesser i gruppen fortsatt eksisterer). Det garanterer derved at prosesser ikke ved et uhell kan bli prosessgruppeledere.
setpgid
Den systemkallkill er istand til å dirigere signaler enten til individuelle prosesser eller til prosess grupper.
Se også
Referanser
- Enkelt UNIX -spesifikasjon , utgave 6
-
^ IEEE og The Open Group (2018). "3. Definisjoner" . Open Group Base Spesifikasjoner Utgave 7 . § 296 . Hentet 2020-08-30 .
En samling prosesser som tillater signalering av relaterte prosesser.
- ^ a b - Systemgrensesnittreferanse, UNIX -spesifikasjonen , utgave 7 fra The Open Group
-
^ IEEE og The Open Group (2018). "3. Definisjoner" . Open Group Base Spesifikasjoner Utgave 7 . § 343 . Hentet 2020-08-30 .
En samling prosessgrupper [...].
Hver prosessgruppe er medlem av en økt.
- ^ - Systemgrensesnittreferanse, Single UNIX -spesifikasjonen , utgave 7 fra The Open Group
- ^ - Systemgrensesnittreferanse, Single UNIX -spesifikasjonen , utgave 7 fra The Open Group
Videre lesning
- McKusick, Marshall Kirk; Neville-Neil, George V. (2004-08-02). "FreeBSD -prosessstyring: Prosessgrupper og økter" . Design og implementering av FreeBSD -operativsystemet . Addison Wesley. ISBN 0-201-70245-2.
- UNIX -signaler og prosessgrupper