Process (computing)

in computing is een proces een instantie van een computerprogramma dat wordt uitgevoerd. Het bevat de programmacode en de huidige activiteit. Afhankelijk van het besturingssysteem (OS), een proces kan worden opgebouwd uit meerdere threads van uitvoering die instructies gelijktijdig uit te voeren.

een computerprogramma is een passieve verzameling van instructies; een proces is de daadwerkelijke uitvoering van die instructies. Verschillende processen kunnen worden geassocieerd met hetzelfde programma; bijvoorbeeld, het openen van meerdere instanties van hetzelfde programma betekent vaak meer dan één proces wordt uitgevoerd.

Multitasking is een methode om meerdere processen toe te staan processors (CPU ‘ s) en andere systeembronnen te delen. Elke CPU voert een enkele taak tegelijk uit. Met multitasking kan elke processor echter schakelen tussen taken die worden uitgevoerd zonder te hoeven wachten tot elke taak is voltooid. Afhankelijk van de implementatie van het besturingssysteem kunnen switches worden uitgevoerd wanneer taken invoer/uitvoerbewerkingen uitvoeren, wanneer een taak aangeeft dat deze kan worden geschakeld, of op hardware-onderbrekingen.

een veel voorkomende vorm van multitasking is time-sharing. Time-sharing is een methode om een snelle reactie voor interactieve gebruikersapplicaties mogelijk te maken. In time-sharing systemen worden context switches snel uitgevoerd. Hierdoor lijkt het alsof meerdere processen tegelijkertijd op dezelfde processor worden uitgevoerd. De uitvoering van meerdere processen schijnbaar gelijktijdig wordt concurrency genoemd.

vanwege veiligheids-en betrouwbaarheidsredenen voorkomen de meeste moderne besturingssystemen directe communicatie tussen onafhankelijke processen, waardoor strikt gemedieerde en gecontroleerde interprocescommunicatiefunctionaliteit wordt geboden.

  • 1 representatie
  • 2 procesbeheer in multi-tasking besturingssystemen
    • 2.1 Proces staten
  • 3 Inter-proces communicatie
  • 4 Geschiedenis
  • 5 Zie ook
  • 6 Opmerkingen
  • 7 Referenties
  • 8 Externe links

Vertegenwoordiging

In het algemeen, een computer systeem proces bestaat uit (of wordt gezegd dat het ‘eigen’) de volgende bronnen:

  • Een afbeelding van de machine uitvoerbare code is gekoppeld aan een programma.
  • geheugen (meestal een deel van het virtuele geheugen); dit omvat de uitvoerbare code, process-specific data (input en output), een call stack (om actieve subroutines en/of andere gebeurtenissen bij te houden), en een heap om tussenliggende berekening gegevens gegenereerd tijdens runtime te houden.
  • operating system descriptors van bronnen die aan het proces zijn toegewezen, zoals bestandsdescriptors (Unix terminologie) of handles (Windows), en gegevensbronnen en sinks.
  • beveiligingskenmerken, zoals de eigenaar van het proces en de set machtigingen van het proces (toegestane bewerkingen).
  • processorstatus (context), zoals de inhoud van registers, fysieke geheugenadressering, enz. De status wordt meestal opgeslagen in computerregisters wanneer het proces wordt uitgevoerd, en anders in het geheugen.

het besturingssysteem bevat de meeste van deze informatie over actieve processen in datastructuren die procesbesturingsblokken worden genoemd

elke subset van bronnen, maar meestal ten minste de processorstatus, kan worden geassocieerd met elk van de proces-threads in besturingssystemen die threads of’ dochter ‘ – processen ondersteunen.

het besturingssysteem houdt zijn processen gescheiden en wijst de resources toe die ze nodig hebben, zodat ze minder waarschijnlijk met elkaar interfereren en systeemfouten veroorzaken (bijvoorbeeld impasse of thrashing). Het besturingssysteem kan ook voorzien in mechanismen voor communicatie tussen processen om processen in staat te stellen op veilige en voorspelbare manieren te interageren.

procesbeheer in multi-tasking besturingssystemen

hoofdartikel: Process management (computing)

een multitasking* besturingssysteem kan gewoon schakelen tussen processen om het uiterlijk te geven van veel processen die gelijktijdig of gelijktijdig worden uitgevoerd, hoewel in feite slechts één proces tegelijkertijd kan worden uitgevoerd op een single-core CPU (tenzij gebruik wordt gemaakt van multi-threading of andere soortgelijke technologie).

Het is gebruikelijk om een enkel proces te associëren met een hoofdprogramma, en ‘dochter’ (‘child’) processen met spin-off, parallelle processen, die zich gedragen als asynchrone subroutines. Een proces wordt gezegd dat eigen middelen, waarvan een beeld van het programma (in het geheugen) is een dergelijke bron. (Merk echter op dat in multiprocessing systemen, veel processen kunnen lopen van, of delen, dezelfde reentrant programma op dezelfde locatie in het geheugen— maar elk proces wordt gezegd dat zijn eigen beeld van het programma.)

processen worden vaak taken genoemd in ingebedde besturingssystemen. Het gevoel van ‘proces ‘(of taak) is’ iets dat tijd in beslag neemt’, in tegenstelling tot’ geheugen’, dat’iets is dat ruimte in beslag neemt’. (Historisch gezien werden de termen ’taak’ en ‘proces’ door elkaar gebruikt, maar de term ’taak’ lijkt te vallen uit het computer lexicon.)

bovenstaande beschrijving is van toepassing op zowel processen die worden beheerd door een besturingssysteem, als processen zoals gedefinieerd door procescalculi.

als een proces iets aanvraagt waarvoor het moet wachten, wordt het Geblokkeerd. Wanneer het proces in de geblokkeerde toestand is, komt het in aanmerking voor swapping naar schijf, maar dit is transparant in een virtueel geheugensysteem, waar blokken van geheugenwaarden echt op schijf kunnen staan en op elk moment niet in het hoofdgeheugen. Merk op dat zelfs ongebruikte delen van actieve processen/taken (programma ‘ s uitvoeren) in aanmerking komen voor swapping naar schijf. Alle delen van een uitvoerend programma en de gegevens ervan hoeven niet in fysiek geheugen te zijn om het bijbehorende proces actief te laten zijn.

*taken en processen verwijzen in wezen naar dezelfde entiteit. En hoewel ze enigszins verschillende terminologische geschiedenissen hebben, zijn ze gaan worden gebruikt als Synoniemen. Tegenwoordig wordt de term proces over het algemeen de voorkeur gegeven boven taak, behalve wanneer het gaat om ‘multitasking’, omdat de alternatieve term, ‘multiprocessing’, te gemakkelijk te verwarren is met multiprocessor (een computer met twee of meer CPU ‘ s).

Process states

Main article: Process states

de verschillende process states, weergegeven in een toestandsdiagram, met pijlen die mogelijk aangeven overgangen tussen staten.

een kernel van het besturingssysteem waarmee processen met meerdere taken bepaalde toestanden kunnen hebben. Namen voor deze staten zijn niet gestandaardiseerd, maar ze hebben een vergelijkbare functionaliteit.

  • eerst wordt het proces “aangemaakt” – het wordt geladen vanaf een secundair opslagapparaat (harde schijf of CD-ROM…) in het hoofdgeheugen. Daarna wijst de process scheduler het de status “waiting” toe.
  • terwijl het proces “wacht”, wacht het tot de planner een zogenaamde context switch uitvoert en het proces in de processor laadt. De processtatus wordt dan “running”, en de processor voert de procesinstructies uit.
  • als een proces moet wachten op een bron (wacht tot gebruikersinvoer of bestand wordt geopend …), wordt de status “geblokkeerd” toegewezen. De processtatus wordt teruggezet naar” wachten ” wanneer het proces niet langer hoeft te wachten.
  • zodra het proces de uitvoering heeft voltooid, of wordt beëindigd door het besturingssysteem, is het niet langer nodig. Het proces wordt onmiddellijk verwijderd of wordt verplaatst naar de status “beëindigd”. Wanneer verwijderd, wacht het gewoon om te worden verwijderd uit het hoofdgeheugen.

interprocescommunicatie

hoofdartikel: interprocescommunicatie

wanneer processen met elkaar communiceren, wordt dit “Interprocescommunicatie” (IPC) genoemd. Processen moeten vaak communiceren, bijvoorbeeld in een shell pijplijn, de output van het eerste proces moet worden doorgegeven aan het tweede, en ga zo maar door naar het andere proces. Het heeft de voorkeur op een goed gestructureerde manier geen gebruik van interrupts.

het is zelfs mogelijk dat de twee processen op verschillende machines draaien. Het besturingssysteem(OS) kan verschillen van het ene proces tot het andere, Daarom zijn enkele mediator (s) (genaamd protocollen) nodig.

geschiedenis

zie ook: geschiedenis van besturingssystemen

in het begin van de jaren 60 was computerbesturingssoftware geëvolueerd van Monitorbesturingssoftware, bijvoorbeeld IBSYS, naar uitvoerende besturingssoftware. Computers kregen ” sneller “en computer tijd was nog steeds niet” goedkoop ” noch volledig gebruikt. Het maakte multiprogrammering mogelijk en noodzakelijk.

Multiprogrammering betekent dat meerdere programma ‘ s “tegelijkertijd” (gelijktijdig) draaien. In eerste instantie liepen ze op een enkele processor (i.e., uniprocessor) en gedeelde schaarse middelen. Multiprogrammering is ook een basisvorm van multiprocessing, een veel bredere term.

programma ‘ s bestaan uit instructies voor de processor. Een enkele processor kan slechts één instructie tegelijk uitvoeren. Daarom is het onmogelijk om meer programma ‘ s tegelijkertijd te draaien. Een programma heeft mogelijk een bron nodig (input …) die een “grote” vertraging heeft. Een programma kan ook een langzame operatie starten (uitvoer naar printer …). Dit alles leidt tot processor “inactief” (ongebruikt). Om te gebruiken processor te allen tijde de uitvoering van een dergelijk programma werd gestopt. Op dat moment werd een tweede (of nde) programma gestart of herstart. Gebruiker waargenomen dat programma ‘ s draaien “op hetzelfde moment” (vandaar de term, gelijktijdige).

kort daarna werd het begrip “programma” uitgebreid naar het begrip “programma en de context ervan”. Het concept van een proces was geboren.

Dit werd noodzakelijk met de uitvinding van de code voor herintreders.

Threads kwamen iets later. Echter, met de komst van time-sharing; computernetwerken; multiple-CPU, gedeeld geheugen computers; enz. de oude “multitasking” maakte plaats voor echte multitasking, multiprocessing en, later, multithreading.

Zie ook:

  • Proces-algebra
  • Proces-analyse
  • Kind-proces
  • Exit
  • Voorvork
  • Wees proces
  • Bovenliggende proces
  • Proces-fractie
  • Proces staten
  • Taak
  • Thread
  • Wacht
  • Zombie proces
  • Process management (computing)
  • Licht-gewicht proces

Opmerkingen

  • Gary D. Knott (1974) A proposal for certain process management and intercommunication primitives ACM SIGOPS Operating Systems Review. Deel 8, Nummer 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

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.