Process (computing)

i computing er en proces en forekomst af et computerprogram, der udføres. Den indeholder programkoden og dens aktuelle aktivitet. Afhængigt af operativsystemet (OS) kan en proces bestå af flere udførelsestråde, der udfører instruktioner samtidigt.

et computerprogram er en passiv samling af instruktioner; en proces er den faktiske udførelse af disse instruktioner. Flere processer kan være forbundet med det samme program; for eksempel betyder åbning af flere forekomster af det samme program ofte, at mere end en proces udføres.

Multitasking er en metode til at tillade flere processer at dele processorer (CPU ‘ er) og andre systemressourcer. Hver CPU udfører en enkelt opgave ad gangen. Multitasking giver dog hver processor mulighed for at skifte mellem opgaver, der udføres uden at skulle vente på, at hver opgave er færdig. Afhængigt af implementeringen af operativsystemet kan afbrydere udføres, når opgaver udfører input/output-operationer, når en opgave angiver, at den kan skiftes, eller på udstyrsafbrydelser.

en almindelig form for multitasking er tidsdeling. Tidsdeling er en metode til at give hurtig respons til interaktive brugerapplikationer. I tidsdelingssystemer udføres kontekstomskiftere hurtigt. Dette får det til at virke som om flere processer udføres samtidigt på den samme processor. Udførelsen af flere processer tilsyneladende samtidigt kaldes samtidighed.

af sikkerheds-og pålidelighedsårsager forhindrer de fleste moderne operativsystemer direkte kommunikation mellem uafhængige processer, hvilket giver strengt medieret og kontrolleret kommunikationsfunktionalitet mellem processer.

  • 1 repræsentation
  • 2 processtyring i multi-tasking operativsystemer
    • 2.1 Processtilstande
  • 3 kommunikation mellem processer
  • 4 Historie
  • 5 Se også
  • 6 noter
  • 7 referencer
  • 8 eksterne links

repræsentation

generelt, en computersystemproces består af (eller siges at ‘eje’) følgende ressourcer:

  • et billede af den eksekverbare maskinkode, der er knyttet til et program.
  • hukommelse (typisk et område med virtuel hukommelse); som inkluderer den eksekverbare kode, processpecifikke data (input og output), en opkaldsstak (for at holde styr på aktive underrutiner og/eller andre begivenheder) og en bunke til at holde mellemliggende beregningsdata genereret i løbet af køretiden.
  • Operativsystembeskrivelser af ressourcer, der er allokeret til processen, såsom filbeskrivelser (unik terminologi) eller håndtag (vinduer) og datakilder og dræn.
  • sikkerhedsattributter, f.eks. procesejeren og processættet med tilladelser (tilladte operationer).
  • Processortilstand (kontekst), såsom indholdet af registre, fysisk hukommelsesadressering osv. Staten gemmes typisk i computerregistre, når processen udføres, og i hukommelsen ellers.

operativsystemet indeholder det meste af denne information om aktive processer i datastrukturer kaldet proceskontrolblokke

enhver delmængde af ressource, men typisk i det mindste processortilstanden, kan være forbundet med hver af processens tråde i operativsystemer, der understøtter tråde eller’ datter ‘processer.

operativsystemet holder sine processer adskilt og tildeler de ressourcer, de har brug for, så de er mindre tilbøjelige til at forstyrre hinanden og forårsage systemfejl (f.eks. Operativsystemet kan også tilvejebringe mekanismer til kommunikation mellem processer for at gøre det muligt for processer at interagere på sikre og forudsigelige måder.

processtyring i multi-tasking operativsystemer

Hovedartikel: Processtyring (computing)

et multitasking*-operativsystem kan bare skifte mellem processer for at give udseendet af mange processer, der udføres samtidigt eller samtidigt, selvom det faktisk kun er en proces, der kan udføres ad gangen på en enkelt-core CPU (medmindre du bruger multi-threading eller anden lignende teknologi).

det er sædvanligt at knytte en enkelt proces til et hovedprogram og ‘datter’ (‘barn’) processer med eventuelle spin-off, parallelle processer, der opfører sig som asynkrone subrutiner. En proces siges at egne ressourcer, hvoraf et billede af dets program (i hukommelsen) er en sådan ressource. (Bemærk dog, at i multiprocesseringssystemer kan mange processer løbe ud af eller dele det samme reentrant— program på samme sted i hukommelsen-men hver proces siges at eje sit eget billede af programmet.)

processer kaldes ofte opgaver i indlejrede operativsystemer. Følelsen af’ proces ‘(eller opgave) er’ noget der tager tid ‘i modsætning til’ hukommelse’, som er’noget der tager plads’. (Historisk set blev udtrykkene ‘opgave’ og ‘proces’ brugt om hverandre, men udtrykket ‘opgave’ ser ud til at falde fra computerleksikonet.)

ovenstående beskrivelse gælder både processer, der styres af et operativsystem, og processer som defineret af process calculi.

hvis en proces anmoder om noget, som den skal vente på, blokeres den. Når processen er i blokeret tilstand, er den berettiget til at bytte til disk, men dette er gennemsigtigt i et virtuelt hukommelsessystem, hvor blokke med hukommelsesværdier muligvis virkelig er på disken og ikke i hovedhukommelsen til enhver tid. Bemærk, at selv ubrugte dele af aktive processer/opgaver (udførelse af programmer) er berettiget til at bytte til disk. Alle dele af et eksekverende program og dets data behøver ikke at være i fysisk hukommelse for at den tilknyttede proces skal være aktiv.

*opgaver og processer henviser i det væsentlige til den samme enhed. Og selvom de har noget forskellige terminologiske historier, er de kommet til at blive brugt som synonymer. I dag foretrækkes udtrykket proces generelt frem for opgave, undtagen når der henvises til’ multitasking’, da det alternative udtryk,’ multiprocessing’, er for let at forveksle med multiprocessor (som er en computer med to eller flere CPU ‘ er).

Procestilstande

Hovedartikel: Procestilstande

de forskellige procestilstande, der vises i et tilstandsdiagram, med pile, der angiver mulige overgange mellem stater.

en operativsystemkerne, der tillader multi-tasking behovsprocesser at have visse tilstande. Navne for disse stater er ikke standardiseret, men de har lignende funktionalitet.

  • for det første er processen “oprettet” – den indlæses fra en sekundær lagerenhed (harddisk eller CD-ROM…) i hovedhukommelsen. Derefter tildeler procesplanlæggeren staten “venter”.
  • mens processen “venter”, venter den på, at planlæggeren foretager en såkaldt kontekstkontakt og indlæser processen i processoren. Procestilstanden bliver derefter” kørende”, og processoren udfører procesinstruktionerne.
  • hvis en proces skal vente på en ressource (vent på, at brugerinput eller fil åbnes …), tildeles den” blokerede ” tilstand. Procestilstanden ændres tilbage til” venter”, når processen ikke længere behøver at vente.
  • når processen er færdig med udførelsen eller afsluttes af operativsystemet, er det ikke længere nødvendigt. Processen fjernes øjeblikkeligt eller flyttes til “termineret” tilstand. Når den fjernes, venter den bare på at blive fjernet fra hovedhukommelsen.

kommunikation mellem processer

Hovedartikel: kommunikation mellem processer

når processer kommunikerer med hinanden, kaldes det “kommunikation mellem processer” (IPC). Processer har ofte brug for at kommunikere, for eksempel i en shell-rørledning, output fra den første proces skal overføres til den anden og så videre til den anden proces. Det foretrækkes på en velstruktureret måde ikke at bruge afbrydelser.

det er endda muligt for de to processer at køre på forskellige maskiner. Operativsystemet(OS) kan variere fra en proces til den anden, derfor er der brug for nogle mediatorer (kaldet protokoller).

historie

Se også: historie af operativsystemer

i begyndelsen af 60 ‘ erne havde computerstyringsprogrammer udviklet sig fra overvågningsprogrammer, f.eks. Computere blev “hurtigere”, og computertiden var stadig hverken” billig ” eller fuldt ud brugt. Det gjorde multiprogrammering mulig og nødvendig.

multiprogrammering betyder, at flere programmer kører “på samme tid” (samtidigt). Først kørte de på en enkelt processor (jeg.e., uniprocessor) og delte knappe ressourcer. Multiprogrammering er også grundlæggende form for multiprocessing, et meget bredere udtryk.

programmer består af instruktionssekvens for processor. En enkelt processor kan kun køre en instruktion ad gangen. Derfor er det umuligt at køre flere programmer på samme tid. Et program kan have brug for nogle ressourcer (input …) som har en “stor” forsinkelse. Et program kan også starte en langsom drift (output til printer …). Alt dette fører til, at processoren er “inaktiv” (ubrugt). At bruge processor til enhver tid udførelsen af et sådant program blev standset. På det tidspunkt blev et andet (eller niende) program startet eller genstartet. Bruger opfattede, at programmer kører “på samme tid” (dermed udtrykket, samtidig).

kort derefter blev forestillingen om et ‘program’ udvidet til forestillingen om et ‘eksekverende program og dets kontekst’. Begrebet en proces blev født.

dette blev nødvendigt med opfindelsen af re-entrant kode.

tråde kom lidt senere. Men med fremkomsten af tidsdeling; computernetværk; multiple-CPU, delte hukommelsescomputere; etc., den gamle “multiprogrammering” gav plads til ægte multitasking, multiprocessing og senere multithreading.

Se også

  • procesalgebra
  • Procesberegning
  • børneproces
  • Afslut
  • gaffel
  • forældreløs proces
  • Forældreproces
  • Procesgruppe
  • Processtilstande
  • opgave
  • tråd
  • vent
  • proces
  • processtyring (computing)
  • letvægtsproces

noter

  • Gary D. Knott (1974) et forslag til visse processtyring og interkommunikation primitiver ACM SIGOPS operativsystemer gennemgang. Bind 8, Udgave 4 (Oktober 1974). PP. 7 – 44
  • What Is Process – Computer Process Information Database
v · d · eParallel computing
General
Levels
Bit · Instruction · Data · Task
Threads
Theory
Amdahl’s law · Gustafson’s law · Cost efficiency · Karp–Flatt metric · slowdown · speedup
Elements
Process · Thread · Fiber · PRAM · Instruction window
Coordination
Multiprocessing · Multithreading (computer architecture) · Memory coherency · Cache coherency · Cache invalidation · Barrier · Synchronization · Application checkpointing
Programming
Models (Implicit parallelism · Explicit parallelism · Concurrency) · Flynn’s taxonomy (SISD • SIMD • MISD • MIMD (SPMD)) · Thread (computer science) · Non-blocking algorithm
Hardware

Multiprocessor (Symmetric · Asymmetric) · Memory (NUMA · COMA · distributed · shared · distributed shared) · SMT

MPP · Superscalar · Vector processor · Supercomputer · Beowulf

APIs
Ateji PX · POSIX Threads · OpenMP · OpenHMPP · PVM · MPI · UPC · Intel Threading Building Blocks · Boost.Thread · Global Arrays · Charm++ · Cilk · Co-array Fortran · OpenCL · CUDA · Dryad · DryadLINQ
Problems

Embarrassingly parallel · Grand Challenge · Software lockout · Scalability · Race conditions · Deadlock · Livelock · Deterministic algorithm · Parallel slowdown

Category · Commons
v · d · eOperating system
General
History · Timeline · List · Comparison · Usage share · Development · Advocacy
Kernel
Architectures
General
Subtypes
Exokernel · Nanokernel · Hybrid
Components
Process management
Concepts
Process · Process control block · Interrupt · Thread · Context switch · Scheduling
Protected mode · Supervisor mode
Cooperative multitasking · Preemptive multitasking · Round-robin scheduling · Fixed priority pre-emptive scheduling · Multilevel feedback queue · Shortest job next
Memory management
Memory protection · Segmentation · Paging · Segmentation fault · General protection fault · Bus error
Examples
AmigaOS · BeOS · BSD · DOS · GNU · Linux · Mac OS · MorphOS · OS/2 · ReactOS · Solaris · Unix · Windows · more…
Miscellaneous concepts
Boot loader · Live CD · Live USB · PXE · API · Virtual file system · Virtual tape library · Computer network · CLI · TUI · GUI · VUI · HAL

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.