Hvad er forskellen mellem gaffel og eks

Indholdsfortegnelse:

Anonim

Det hovedforskel mellem gaffel og eksekutiv er det fork skaber en ny proces, samtidig med at den overordnede proces bevares, men exec opretter en ny proces uden at bevare den overordnede proces.

En computer fungerer i to tilstande: kernetilstand og brugertilstand. I kernel -tilstand kan et program få direkte adgang til hukommelse eller hardware -ressourcer. I brugerfunktion kan programmerne ikke direkte få adgang til hukommelse eller hardware ressourcer. Derfor er kernel -tilstand en privilegeret tilstand end bruger -mode. Når et program skal have adgang til hukommelse eller en ressource, sender det en anmodning til kernen via et systemopkald. Derefter skifter tilstanden fra brugertilstand til kernetilstand. Efter at have afsluttet opgaven, skifter tilstanden tilbage til brugerfunktionen. UNIX -systemer har forskellige systemopkald. To af dem er gaffel og eksekutiv.

exec, gaffel, kernetilstand, systemopkald, UNIX

Hvad er gaffel

En proces er et program i udførelse. Gaflen () er et systemopkald, der hjælper med at oprette processer. Når en proces foretager fork () opkald, oprettes en kopi af processen. Den eksisterende proces er forældreprocessen, mens den nye proces er barneprocessen. Denne børneproces ligner imidlertid forældreprocessen.

Ved oprettelse af barneprocessen kopieres forældrenes tilstand, f.eks. Variabler, åbne filer og adresserum, til barneprocessen. Med andre ord er forælder- og barneprocesserne i forskellige fysiske adresserum. Derfor afspejles ændringerne i forældreprocessen ikke i barneprocessen og omvendt.

Hvad er exec

Exec () systemopkaldet bruges også til at oprette processer. Når exec () kaldes, afsluttes den igangværende proces og erstattes med den nyoprettede proces. Med andre ord, efter at have foretaget et exec () -opkald, eksisterer kun den nye proces. Forældreprocessen afsluttes. Desuden erstatter dette systemopkald adresserummet, tekstsegmentet og datasegmentet i forældreprocessen med den underordnede proces.

Forskel mellem gaffel og eksekutiv

Definition

fork er en operation i et UNIX -operativsystem, der tillader en proces at oprette en kopi af sig selv. Men exec er en operation i et UNIX -operativsystem, der skaber en proces ved at erstatte den tidligere proces. Således forklarer dette den største forskel mellem gaffel og eksekutiv.

Forældreproces

Efter at have ringet til fork () er der forældreproces og barneproces. På den anden side, efter at have ringet til exec (), er der kun en børneproces, og der er ingen overordnet proces. Derfor er dette en anden forskel mellem gaffel og eksekutiv.

Resultat

Adresseplads

Desuden er en anden forskel mellem gaffel og eksekutiv i deres adresserum. I fork () er forælder- og barneprocesserne i forskellige adresserum, mens barneadresserummet i exec () erstatter det overordnede adresserum.

Konklusion

Kort fortalt er der forskellige systemopkald tilgængelige i UNIX -operativsystemet, og to af dem er fork og exec. Hovedforskellen mellem gaffel og eksekutiv er, at gaffel skaber en ny proces, mens forælderprocessen bevares, mens eksekutør opretter en ny proces uden at bevare forældreprocessen.

Referencer:

1. "Introduktion til systemopkald." Studytonight, tilgængelig her. 2. "Gaffel (systemopkald)." Wikipedia, Wikimedia Foundation, 16. mar. 2019, tilgængelig her.

Billede høflighed:

1. ”Version 7 Unix” Af Huihermit - Eget arbejde (CC0) via Commons Wikimedia

Hvad er forskellen mellem gaffel og eks