Beste antwoord
Programma , Proces en Threads zijn drie basisconcepten van de besturingssystemen waarmee elke computerwetenschappelijke ingenieur bekend moet zijn . Hier zal ik uitleggen waar elk van hen over gaat en hoe ze van elkaar verschillen.
Wat is een programma?
Programma is een uitvoerbaar bestand dat de set instructies bevat die zijn geschreven om een specifieke taak op uw computer uit te voeren. notepad.exe is bijvoorbeeld een uitvoerbaar bestand met de set instructies die ons helpen bij het bewerken en afdrukken van de tekstbestanden.
Programmas worden niet opgeslagen in het primaire geheugen van uw computer. Ze worden op een schijf of een secundair geheugen op uw computer opgeslagen. Ze worden in het primaire geheugen gelezen en uitgevoerd door de kernel. Een programma wordt soms passieve entiteit genoemd omdat het zich in een secundair geheugen bevindt.
Wat is een proces?
Proces is een uitvoerende instantie van een programma. Als u bijvoorbeeld dubbelklikt op een kladblok-pictogram op uw computer, wordt een proces gestart dat het kladblok-programma zal starten.
Een proces wordt soms actieve entiteit zoals deze zich in het primaire geheugen bevindt en het geheugen verlaat als het systeem opnieuw wordt opgestart. Verschillende processen kunnen betrekking hebben op hetzelfde programma. U kunt bijvoorbeeld meerdere exemplaren van een Kladblok-programma uitvoeren. Elke instantie wordt een proces genoemd.
Wat is een thread ?
Thread is de kleinste uitvoerbare eenheid van een proces. Als u bijvoorbeeld een kladblok-programma draait, maakt het besturingssysteem een proces aan en start het de uitvoering van de hoofdthread van dat proces.
Een proces kan meerdere threads hebben. Elke thread heeft zijn eigen taak en eigen pad van uitvoering in een proces. In een kladblokprogramma bijvoorbeeld, neemt de ene thread gebruikersinvoer op en drukt een andere thread een document af.
Alle threads van hetzelfde proces delen het geheugen van dat proces. Omdat threads van hetzelfde proces hetzelfde geheugen delen, is de communicatie tussen de threads snel.
Samenvattend …
Ik hoop dat je nu duidelijk bent met de verschillen tussen programma, proces en thread en ook de relatie daartussen hebt ontdekt … Zo niet, zoek het dan uit hieronder.
Programma is een superset van processen, terwijl, proces is een superreeks draad.
Geniet van leren !!!
Bronvermelding: www.google.com
Antwoord
- Programma : programma is niets anders dan de verzameling van alle instructies die nodig zijn om een specifieke taak uit te voeren. Voordat ze worden uitgevoerd, moeten ze worden geconverteerd in binaire codes die moeten worden begrepen door loader os OS. zoals EXE-bestand dat is opgeslagen in Portable Executable (PE) Formatteren op secundair geheugen Zoals een harde schijf. Een proces wordt meestal gedefinieerd als een instantie van een actief programma en bestaat uit twee componenten: 1) Een kernelobject dat het besturingssysteem gebruikt om het proces te beheren. Het kernelobject is ook waar het systeem statistische informatie over het proces bijhoudt. 2) Een adresruimte die alle code en gegevens van de uitvoerbare of DLL-module bevat. Het bevat ook dynamische geheugentoewijzingen zoals threadstacks en heap-toewijzingen. Processen zijn inert. Om iets te bereiken, moet een proces een thread hebben die draait in zijn context, deze thread is verantwoordelijk voor het uitvoeren van de code in de adresruimte van het proces. In feite kan een enkel proces meerdere threads bevatten, die allemaal code “gelijktijdig” uitvoeren in de adresruimte van het proces. Om dit te doen, heeft elke thread zijn eigen set CPU-registers en een eigen stack. Elk proces heeft ten minste een thread die code uitvoert in de adresruimte van het proces. Als er geen threads zijn die code uitvoeren in de adresruimte van het proces, zou er geen reden zijn om het proces voort te zetten, en zou het systeem automatisch het proces en zijn adresruimte vernietigen.
- Proces : elk proces biedt de bronnen die nodig zijn om een programma uit te voeren. Een proces heeft een virtuele adresruimte, uitvoerbare code, open handvatten voor systeemobjecten, een beveiligingscontext, een unieke proces-ID, omgevingsvariabelen, een prioriteitsklasse, minimale en maximale werksetgroottes en ten minste één uitvoeringsthread. Elk proces wordt gestart met een enkele thread, vaak de primaire thread genoemd, maar kan extra threads maken van elk van de threads .
- Thread : een thread is een entiteit binnen een proces dat kan worden gepland voor uitvoering. Alle threads van een proces delen de virtuele adresruimte en systeembronnen. Bovendien onderhoudt elke thread uitzonderingshandlers, een planningsprioriteit, lokale threadopslag, een unieke thread-ID en een set structuren die het systeem zal gebruiken om de threadcontext op te slaan totdat deze is gepland. De threadcontext omvat de reeks machineregisters van de thread, de kernelstapel, een thread-omgevingsblok en een gebruikersstapel in de adresruimte van het threadproces. Threads kunnen ook hun eigen beveiligingscontext hebben, die kan worden gebruikt om zich voor te doen als klanten.