|  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
System
  • Grundläggande datorkunskaper
  • Linux
  • Mac OS
  • Ubuntu
  • Unix
  • Windows
  • Windows Vista
  • Windows XP
  • Windows 7
  • Windows 10
  • Windows 11
  • Windows 2012
  • Windows 2016
  • Windows 2019
  • Windows 2022
  • Apple
  • Android
  • iOS
  • CentOS
  • * Dator Kunskap >> System >> Unix >> Content

    Hur skapas och raderas processer i UNIX -operativsystem?

    Processer i UNIX-liknande operativsystem (inklusive Linux, MacOS, BSD, etc.) skapas och raderas genom en kombination av systemsamtal och interna kärnmekanismer.

    Process Creation:

    Det primära sättet att en ny process skapas är genom systemsamtalet "gaffel (). `gaffel ()` skapar en nästan identisk kopia av samtalsprocessen ( * förälder * -processen). Både föräldern och den nyligen skapade * barnet * -processen fortsätter att utföra från samtalet ``). Den viktigaste skillnaden är returvärdet för `gaffel ()`:

    * I moderprocessen: `gaffel ()` Returnerar process -ID (PID) för barnprocessen. Denna PID är en unik identifierare för barnet.

    * I barnprocessen: `gaffel ()` returnerar 0.

    Efter `gaffel ()` följer förälder- och barnprocesserna vanligtvis olika exekveringsvägar. Barnprocessen använder ofta "exec ()" -familjen av systemsamtal (`execl`,` execv`, `execvp`, etc.) för att ersätta sin nuvarande bild med ett nytt program. `exec ()` skriver över barnets minnesutrymme med det nya programmets kod och data. Om barnet inte använder `exec ()` fortsätter det att utföra samma kod som föräldern och skapar en riktig klon.

    Andra sättprocesser skapas inkluderar:

    * `vFork ()` (Mindre vanligt och potentiellt problematiskt): Liknar `gaffel ()`, men med subtila skillnader i minnesdelning. Generellt undviks på grund av potentiella dödlås.

    * `klon ()` (mer avancerad): Erbjuder finare kontroll över resurserna som delas mellan förälder och barnprocesser. Används i bibliotek och avancerade trådmodeller.

    * Systeminitiering: Init -processen (PID 1) är förfäder till alla andra processer i systemet. Det ansvarar för att starta andra processer under start.

    * `pthread_create ()`: Denna funktion används för att skapa trådar inom en process. Medan trådar delar samma minnesutrymme som deras moderprocess, anses de fortfarande separata exekveringsenheter som hanteras av kärnan.

    Process borttagning (avslutning):

    En process avslutas (raderas) under flera omständigheter:

    * Normal avslutning: Processen slutför sin exekvering och kallar systemsamtalet `exit (). Detta signalerar operativsystemet som det har slutfört. Utgångsstatus kan användas för att förmedla framgång eller misslyckande.

    * onormal avslutning: Processen kraschar på grund av ett segmenteringsfel, olaglig instruktion eller annat fel. Kärnan avslutar processen.

    * Signalavslutning: En annan process (eller själva kärnan) kan skicka en signal (t.ex. `sigterm ',' Sigkill ') till en process och tvinga dess uppsägning. "SigTerm" tillåter processen att rensa upp innan den går ut, medan "Sigkill" omedelbart avslutar processen utan sanering.

    * Förälder Processavbrott: Om en förälderprocess avslutas kan dess barnprocesser också avslutas, beroende på operativsystemets inställningar (ofta ärvda från förälderns processgrupp). Processen "init" antar vanligtvis föräldralösa barn.

    Kärnans roll:

    Kärnan spelar en avgörande roll för att hantera processer under hela sin livscykel. Det hanterar process skapande, schemaläggning, minnesallokering, resurshantering, signalhantering och avslutande av processer. Kärnan upprätthåller datastrukturer (som processtabellen) för att spåra information om varje körprocess.

    Sammanfattningsvis orkestreras skapandet och raderingen av processer i UNIX noggrant av kärnan och involverar en uppsättning systemsamtal som gör det möjligt för programmerare att kontrollera processens livscykel. Familjen `gaffel ()` och `exec ()` (för skapande) och `exit () 'och signaler (för borttagning) är kärnkomponenterna.

    Tidigare:

    nästa:
    relaterade artiklar
    ·Om en ny post finns i UNIX etc -värdarna Equiv File, v…
    ·Vad är syftet med kommandoväg i dos?
    ·Hur återställa ett lösenord på Unix
    ·Hur man lista alla grupper som kan skriva till en Unix …
    ·Vilka är styrkorna i Unix Opertaing System?
    ·Vad består ledning och kontroll av?
    ·Vilken typ av information hålls av Unix-liknande syste…
    ·Vad betyder inställd prompttext i unix-systemet?
    ·UNIX-kärnan Tutorial
    ·Hur man läser en UNIX FTP Log
    Utvalda artiklarna
    ·Hur att installera XP på en Dell Inspiron
    ·Hur man stänger Client Services for NetWare
    ·Hur man mappa en extern USB-enhet på en MacBook Air
    ·Avinstallera en monitor från Vista
    ·Hur återställa raderade Internet historia på Vista
    ·Hur man installerar Net 3.0 Framework
    ·Hur hitta en XP Product Key i registret
    ·Hur man testar en AMD Turion -processor om det är dål…
    ·Hur överföra XP Från en Dell till en annan dator
    ·Hur man använder Återställningskonsolen på XP SP2
    Copyright © Dator Kunskap https://www.dator.xyz