Sistem de management al proceselor în Windows 7. Managementul proceselor. Conceptul de obiect în Windows

24.03.2021 Recenzii

Lucrarea practică nr.

Managementul proceselor în Windows.

Scopul lucrării: studierea posibilităților de monitorizare și gestionare a proceselor în sistemele de operare Windows, învățarea de a lucra cu Task Manager, familiarizarea cu gestionarea proceselor în Windows folosind utilitarul Process Explorer.

PARTEA TEORETICĂ.

Pentru a efectua corect o anumită sarcină în Windows este necesar ca unul sau altul să fie lansat. În această lucrare vă veți familiariza cu setul minim de programe care trebuie lansate pentru o funcționare corectă Windows . Pentru a vedea lista plinaîndeplinit sarcini în acest moment puteți utiliza Managerul de activități Windows sau oricare altul program similar(utilități Process Explorer (procexp.exe.)). În această lucrare, ne vom uita doar la Task Manager, care poate fi lansat prin apăsarea combinației CTRL + ALT + DELETE.

Managerul de activități afișează informații despre programele și procesele care rulează pe computer.

În fila Aplicații Este afișată starea programelor care rulează pe computer. Pe această filă aveți opțiunea de a încheia sau rula programul, precum și de a merge la fereastra programului. Pe fila Procese Afișează informații despre procesele care rulează pe computer. De exemplu, puteți afișa informații despre utilizarea procesorului și a memoriei, erori de pagină, numărătoare de mânere și alți parametri.

Pe fila Performanță Următoarele informații despre performanța computerului dvs. sunt afișate dinamic.

  1. Grafice ale încărcării procesorului și ale utilizării memoriei.
  2. Numărul total de mânere, procese care rulează pe computer.
  3. Cantitatea totală de memorie fizică, memorie kernel și alocări de memorie în kiloocteți.

Dacă sunteți conectat la o rețea, puteți vizualiza starea rețelei și parametrii de performanță.

Dacă mai mulți utilizatori sunt conectați la computerul dvs., le puteți vedea numele, sarcinile pe care le efectuează și le puteți trimite un mesaj.

Pentru a vedea toate programele încărcate în RAM, trebuie să mergeți din fila Aplicații la fila Procese.

Procesele enumerate aici sunt programele care sunt încărcate în prezent în RAM. Acestea pot fi speciale utilitati, Fără de care Windows nu va funcționa, programele responsabile pentru furnizarea oricăror servicii, de exemplu, reconcilierea orei sistemului cu un server de timp din rețea Internet , etc. Tabelul de mai jos conține informații despre numele unor procese și scopul acestui program.

Proces Inactivitatea sistemuluieste un fir separat care rulează pe fiecare procesor și are singura sarcină de a umple timpul procesorului atunci când sistemul nu procesează alte fire. În Managerul de activități, acest proces ocupă cea mai mare parte a timpului CPU.

Numele procesului

Descriere

Explorer.exe

Programul Explorer este responsabil pentru afișarea desktopului pe ecran, deschizând meniul principal (dacă deschideți o fereastră Explorer, apare un alt proces)

Spoolsv.exe

Programul este responsabil pentru coada de imprimare (punerea documentelor într-o coadă, ștergerea unei cozi, urmărirea numărului de coli tipărite)

servicii.exe

Permite computerului să recunoască modificările în echipamente instalateși să se adapteze la acestea, fie fără a necesita intervenția utilizatorului, fie reducând-o la minimum. Oprirea sau dezactivarea acestui serviciu poate duce la muncă instabilă sisteme.( Conectează și utilizează ). De asemenea, oferă suport pentru mesajele din jurnalul de evenimente generate de programele Windows și componentele sistemului și vizualizarea acestor mesaje.

svchost.exe

Vă permite să vă personalizați programul execuție automată sarcini pe acest computer.

svchost.exe

Gestionează obiectele din rețea și acces de la distanță la rețea"", afișând proprietăți retea localași conexiuni de acces la distanță.

svchost.exe

Controlează sincronizarea datei și orei între toți clienții și serverele din rețea. Dacă acest serviciu este oprit, sincronizarea datei și orei nu va fi disponibilă.

svchost.exe

Oferă suport acces general la fișiere, imprimante și conducte numite pentru a acestui calculator prin conexiune retea. Dacă serviciul este oprit, astfel de funcții nu pot fi efectuate.

svchost.exe

Permite utilizatori la distanță modificați setările de registry pe acest computer.

mdm.exe

Gestionează depanarea locală și la distanță pentru depanatori Studio vizual

lsass.exe

Stochează informații de securitate pentru cont utilizator local.

Winlogon.exe

Programul de conectare Windows NT

Modificarea aspectului ferestrei Task Manager și selectarea parametrilor de afișat sunt realizate folosind elementele de meniu. Toate informațiile despre lucrul cu Managerul de activități pot fi găsite în elementul de meniu „Ajutor”.

Gestionarea proceselor și firelor în sistemul de operare Windows folosind utilitarul Process Explorer de la SysInternals.

Utilitarul arată nu doar o listă de procese active, ci și fișiere de bibliotecă dinamice asociate procesului, prioritatea procesului, încărcarea procesorului separat pentru fiecare program etc.

În plus, folosind programul, puteți schimba prioritatea unui proces, puteți vizualiza informații despre un fișier DLL și puteți încheia cu forța un program înghețat fără speranță.

Utilitarul conține 2 ferestre. Partea de sus afișează o listă de procese active (inclusiv identificatorul procesului - PID, procentul de încărcare a procesorului - CPU, descriere - Descriere, numele contului proprietarului - Proprietar, prioritate proces - Prioritate, mânere, Titlu Windows). Informațiile afișate în fereastra inferioară depind de modul Process Explorer - dacă este în modul handle, puteți vedea mânerele (fișiere pentru Windows 9x/Me) pe care le-a deschis procesul selectat în fereastra de sus; dacă este modul DLL - puteți vedea DLL-urile pe care le-a încărcat acest proces.

Comutarea între moduri se realizează utilizând „taste rapide” sau utilizând elementele de meniu corespunzătoare:

Puteți sorta procesele după orice criteriu făcând clic pe coloana corespunzătoare; sau prezentați procesele sub forma unui arbore de proces selectând elementul de meniu Vizualizare - Afișare arbore proces.

Făcând clic dreapta pe procesul selectat, utilizând opțiunea apărută meniul contextual Puteți modifica prioritatea de bază a unui proces (Set Priority), puteți forța un proces să se încheie (Kill Process) și puteți vizualiza Opțiuni suplimentare proces (Proprietăți):

Folosind elementul de meniu Opțiuni - Servicii evidențiate, puteți selecta procese care servesc gazda. Pentru a evidenția procesele utilizator curent selectați elementul de meniu Opțiuni - Evidenția procese proprii.

După lansarea utilitarului, lansați mai multe aplicații (de exemplu, Far, Word, Paint, Notepad etc.), fiți atenți la modificările din fereastra proceselor. Vă rugăm să le comentați. Furnizați o copie a ecranului și descrieți procesul generat de aplicația care rulează.

Sarcini de finalizat:

1. În fila Procese din Task Manager, modificați numărul de coloane, înregistrați operațiunile efectuate pentru aceasta. Ce procese rulează Utilizatorul?

2. Câte procese sunt active în momentul execuției munca practica, cât este încărcat procesorul central, câtă memorie este alocată proceselor curente?

3. Vizualizare sistem de ajutor Gestionar de sarcini. Găsiți informații despre lansarea de noi programe, terminarea programelor curente folosind Manager și notați-le într-un caiet.

4. Finalizați următorii pași utilizând utilitarul Process Explorer. Sortați procesele după criterii specificate. Descrieți unul dintre procesele sistemului. Lansați aplicația specificată. Descrieți procesul emergent în funcție de caracteristicile date. Încheierea forțată a procesului specificat. Ilustrați acțiunile efectuate cu copii ale ecranelor.

Job Nr.

Criteriu

Aplicație

Caracteristici

Afișați arborele de procese ale sistemului

Manager îndepărtat

Determinați ce DLL-uri sunt utilizate

Sortați după PID

Caiet

Wordpad

Sortați după prioritate

Calculator

Vedeți suplimentar proprietățile procesului

Sortați după proprietar

A picta

Conductor

Vedeți suplimentar proprietățile procesului

Sorteaza dupa nume

Editorul Registrului

Determinați ce DLL-uri sunt utilizate

Sortați după prioritate

browser web

Modificați prioritatea unui proces utilizator

Sortați după sarcina procesorului

reţea

Definiți mânerele folosite

Afișează arborele proceselor utilizatorului

Defragmentator de disc

Determinați ce DLL-uri sunt utilizate

Copii ale ecranului cu sarcina finalizată și o descriere a acțiunilor efectuate ar trebui incluse în raport.

Întrebări de control:

  1. Ce este un proces?
  2. Descrie Informații generale despre Task Manager?
  3. Ce înseamnă setarea „inactivitate a sistemului”?
  4. Este posibil să se schimbe aspect Fila Procese în managerul de activități?
  5. Cum să închei procesul?
  6. Descrieți funcționalitatea utilizării utilitarului Process Explorer.
  7. Notează procesele și descrierile lor din tabel într-un caiet și memorează-le.

Administrarea procesului

Cea mai importantă parte sistem de operare Subsistemul de control al procesului care afectează direct funcționarea computerului este subsistemul de control al procesului.

Pentru fiecare proces nou creat, sistemul de operare generează structuri de informații de sistem care conțin date despre nevoile procesului de resurse ale sistemului informatic, precum și despre resursele efectiv alocate acestuia. Cu toate acestea, un proces poate fi definit și ca o solicitare de a consuma resurse de sistem.

La procesul ar putea fi finalizat, sistemul de operare trebuie atribuiți-i o zonă memorie cu acces aleator , care va găzdui codul și datele procesului și, de asemenea, îi va oferi o cantitate extrem de importantă de timp de procesor. Cu toate acestea, procesul poate avea nevoie de acces la resurse precum fișiere și dispozitive de intrare/ieșire.

Structurile informaționale ale unui proces includ adesea date auxiliare care caracterizează istoricul procesului din sistem, starea lui curentă (activă sau blocată) și gradul de privilegiu al procesului (valoarea de prioritate). Acest tip de date pot fi luate în considerare de sistemul de operare atunci când decide dacă să furnizeze resurse unui proces.

Într-un sistem de operare multiprogram, mai multe procese pot exista simultan. Unele procese sunt generate la inițiativa utilizatorilor și a aplicațiilor acestora; astfel de procese sunt de obicei numite personalizat. Alte procese numite sistemică, sunt inițializate de sistemul de operare însuși pentru a-și îndeplini funcțiile.

O sarcină importantă sistem de operare este protecția resurselor, alocat acest proces, din alte procese. Una dintre resursele de proces cel mai atent protejate sunt zonele RAM în care sunt stocate codul de proces și datele. Totalitatea tuturor zonelor RAM alocate de sistemul de operare unui proces este de obicei numită spațiu de adrese. Se spune că fiecare proces operează în propriul spațiu de adrese, referindu-se la protecția spațiilor de adrese oferite de sistemul de operare.Sunt protejate și alte tipuri de resurse, precum fișiere, dispozitive externe etc.Sistemul de operare nu poate proteja doar resursele. alocate unui singur proces, dar și organizarea partajării acestora, de exemplu, permițând accesul la o anumită zonă de memorie pentru mai multe procese.

Pe durata de viață a procesului, execuția acestuia trebuie întreruptă și continuată de mai multe ori. Pentru a relua execuția unui proces, este esențial să restabiliți starea mediului de operare. Starea mediului de operare este identificată prin starea registrelor și a contorului de programe, moduri de funcționare a procesorului, indicatorul către deschide fișiere, informații despre operațiuni I/O neterminate, coduri de eroare ale apelurilor de sistem efectuate prin acest proces etc. Această informație se numește context de proces. Ei spun că atunci când un proces se schimbă, are loc o schimbare de context.

Sistemul de operare preia și funcțiile de sincronizare a proceselor, permițând unui proces să-și suspende execuția până la apariția unui eveniment în sistem, de exemplu, finalizarea unei operațiuni I/O efectuată de sistemul de operare la cererea acestuia.

În sistemul de operare nu există o corespondență unu-la-unu între procese și programe. Același fișier de program poate genera mai multe procese care rulează în paralel, iar un proces poate, în timpul execuției sale, să modifice fișierul program și să înceapă să execute un alt program. Pentru a implementa complex sisteme software Poate fi util să-și organizeze munca sub forma mai multor procese paralele care interacționează periodic între ele și fac schimb de date. Deoarece sistemul de operare protejează resursele procesului și nu permite unui proces să scrie sau să citească din memoria altui proces, pentru interacțiunea operațională a proceselor, sistemul de operare trebuie să ofere mijloace speciale care sunt numite instrumente de comunicare între procese.

Prin urmare, subsistemul de management al proceselor (Fig. 4.) programează execuția proceselor, adică distribuie timpul procesorului între mai multe procese existente simultan în sistem, creează și distruge procese, asigură proceselor resursele necesare de sistem, menține sincronizarea proceselor, și asigură, de asemenea, interacțiunea între procese

Gestionarea memoriei

Memoria este o resursă la fel de importantă pentru un proces ca și procesorul, deoarece un proces poate fi executat doar de un procesor dacă codurile și datele sale (nu neapărat toate) sunt în RAM. Gestionarea memoriei include distribuția memoriei fizice disponibile între toate procesele existente în prezent în sistem, încărcarea codurilor de proces și a datelor în zonele lor de memorie alocate, setarea părților sensibile la adrese ale codurilor de proces la adresele fizice ale zonei alocate, precum și protejarea zonelor de memorie. fiecare proces.

Există mare varietate de algoritmi alocare de memorie. Οʜᴎ poate diferi:

Numărul de zone de memorie alocate procesului (în unele cazuri, memoria este alocată procesului sub forma unei zone continue, iar în altele - sub forma mai multor zone necontigue),

Gradul de libertate al limitelor zonelor (trebuie să fie fixat rigid pe întreaga durată de viață a procesului sau să se miște dinamic atunci când procesului îi sunt alocate altele suplimentare suplimentare capacitate de memorie),

Pe unele sisteme, alocarea memoriei se face în pagini de dimensiuni fixe, în timp ce în altele este alocată în segmente de lungime variabilă.

Una dintre cele mai populare metode de gestionare a memoriei în sistemele de operare moderne este așa-numita memorie virtuala.

Protecția memoriei este capacitatea selectivă de a împiedica o sarcină în curs de a scrie sau citi memoria atribuită unui alt proces (sarcină). Măsurile de protecție a memoriei implementate în sistemul de operare trebuie să împiedice accesul proceselor neautorizate în zonele de memorie străină.

Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, Funcțiile OS pentru gestionarea memoriei sunt (Fig. 5) urmărirea memoriei libere și uzate; alocarea memoriei proceselor și eliberarea memoriei atunci când procesele se termină; protecția memoriei; înlocuirea proceselor de la RAM pe disc atunci când dimensiunea memoriei principale este insuficientă pentru a găzdui toate procesele din ea și returnarea lor în RAM atunci când spațiul este eliberat în ea, precum și setarea adreselor programului într-o anumită zonă a memoriei fizice.

Gestionați fișierele și dispozitivele externe

Sistemul de operare virtualizează un set separat de date stocate pe o unitate externă sub formă fişier- o secvență simplă nestructurată de octeți cu un nume simbolic. Pentru a facilita lucrul cu datele, fișierele sunt grupate în directoare. Folosind sistemul de operare, utilizatorul poate efectua acțiuni asupra fișierelor și directoarelor, cum ar fi căutarea după nume, ștergerea, afișarea conținutului pe un dispozitiv extern (de exemplu, pe un afișaj), modificarea și salvarea conținutului.

Pentru a reprezenta un număr mare de seturi de date împrăștiate aleatoriu pe cilindri și suprafețe de disc tipuri variate, sub forma unui cunoscut și convenabil structura ierarhica fișiere și directoare, sistemul de operare trebuie să rezolve multe probleme.

Sistemul de fișiere OS realizează conversia simbolică a numelui fișierului, cu care lucrează utilizatorul sau programatorul aplicației, la adresele fizice ale datelor de pe disc, organizează accesul partajat la fișiere și le protejează de accesul neautorizat.

Atunci când își îndeplinește funcțiile, sistemul de fișiere interacționează îndeaproape cu subsistemul extern de gestionare a dispozitivelor, care, la cererea sistemului de fișiere, transferă date între discuri și RAM.

Subsistemul de control al dispozitivului extern, numit și subsistem de intrare/ieșire, acționează ca o interfață pentru toate dispozitivele conectate la computer. Gama acestor dispozitive este foarte extinsă. Gama de dispozitive de stocare fabricate pe rigide, flexibile și discuri optice, imprimante, scanere, monitoare, plotere, modemuri, adaptoare de rețea și dispozitive de intrare/ieșire mai specializate, cum ar fi convertoare analog-digitale, pot număra mii de modele. Aceste modele pot diferi semnificativ în setul și secvența de comenzi utilizate pentru a face schimb de informații cu procesorul și memoria computerului, viteza de operare, codificarea datelor transmise, capacitatea de a partaja și multe alte detalii.

Program care controlează model specific dispozitiv extern și ținând cont de toate caracteristicile sale, este de obicei numit driverul acestui dispozitiv (din engleză drive - a gestiona, a conduce). Crearea driverelor de dispozitiv este realizată atât de dezvoltatorii unui anumit sistem de operare, cât și de specialiști din companiile care produc dispozitive externe.

Menținerea unei interfețe unificate de programare a aplicațiilor la nivel înalt pentru dispozitive I/O eterogene este una dintre cele mai importante sarcini ale sistemului de operare.

De la apariția sistemului de operare UNIX o astfel de interfață unificată pe majoritatea sistemelor de operare se bazează pe conceptul de acces la fișiere. Acest concept este în esență că comunicarea cu orice dispozitiv extern arată ca un schimb cu un fișier care are un nume și este o secvență nestructurată de octeți. Fișierul poate fi fie un fișier real de pe disc, fie un terminal alfanumeric, un dispozitiv de imprimare sau adaptor de retea.
Postat pe ref.rf
Aici avem de-a face din nou cu capacitatea sistemului de operare de a înlocui hardware-ul real cu abstracții prietenoase pentru utilizator și programator.

Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, Funcțiile OS pentru gestionarea fișierelor și a dispozitivelor externe (Fig. 6) sunt virtualizarea setului de date individuale; conversia numelor de fișiere simbolice în adrese fizice de date de pe disc; transfer de date între dispozitive externe și RAM; controlul unui anumit tip de periferic dispozitive externe; implementarea conceptului de acces la fișiere pentru schimbul de date cu dispozitive externe.

Managementul proceselor - concept și tipuri. Clasificarea și caracteristicile categoriei „Managementul proceselor” 2017, 2018.

sistem de operare– foarte complex în arhitectură sistem software, în care se pot distinge următoarele componente principale:
  1. Administrarea procesului
  2. Managementul memoriei principale
  3. Gestionarea fișierelor
  4. Managementul sistemului I/O
  5. Control memorie externa
  6. Suport de rețea
  7. Sistem de protectie
  8. Sistem de suport interpret de comenzi.
  9. Înveliș grafic.

Să aruncăm o privire mai atentă la aceste componente.

Administrarea procesului. Un proces este un program utilizator în timpul execuției sale în sistem informatic. Sistemul de operare controlează funcționarea proceselor, distribuția lor între procesoare și nuclee de sistem, ordinea execuției și plasării lor în memorie, sincronizarea lor atunci când părți ale aceleiași sarcini sunt rezolvate în paralel prin procese diferite.

Managementul memoriei principale.Memoria principală (RAM) poate fi considerată ca o matrice mare. sistem de operare distribuie resurse de memorie între procese, alocă memorie la cerere, o eliberează atunci când este solicitat în mod explicit sau la sfârșitul procesului, stochează liste de ocupați și memorie liberaîn sistem.

Managementul memoriei externe. După cum sa menționat deja, memoria externă (secundară) este o extindere a memoriei RAM a procesorului cu tipuri de memorie mai lentă, dar mai încăpătoare și care stochează permanent informații (discuri, benzi etc.). La gestionarea memoriei externe, sistemul de operare rezolvă probleme similare cu cele de gestionare a memoriei principale - alocarea memoriei la cerere, eliberarea memoriei, stocarea listelor de memorie liberă și ocupată etc. Sistemul de operare acceptă și utilizarea memoriei asociative (memoria cache) pentru a optimiza accesul la memoria externă.

Suport de rețea.Așa cum s-a subliniat în mod repetat, orice sistem informatic modern se află permanent sau temporar în diverse localități și rețele globale. sistem de operare asigură utilizarea echipamentelor de rețea ( plăci de rețea, sau adaptoare), apelând driverele adecvate, care acceptă interacțiunea de la distanță cu sisteme de fișiere situate pe computerele din rețea, autentificarea de la distanță la alte computere din rețea și utilizarea resurselor lor de calcul, trimiterea și primirea de mesaje prin rețea, protecție împotriva atacurilor de rețea.

Sistem de protectie.Conform principii moderne calcul fiabil și securizat (a se vedea „Conceptul de sistem de operare (OS), scopurile funcționării acestuia. Clasificarea sistemelor informatice”), la operarea sistemului de operare trebuie asigurate fiabilitatea și securitatea, i.e. protecție împotriva atacurilor externe, confidențialitatea informații personale și corporative, diagnoza și corectarea erorilor și defecțiunilor etc. OS oferă protecție pentru componentele sistemului informatic, date și programe, suportă filtrarea pachetelor de rețea, detectarea și prevenirea atacurilor externe, stochează informații despre toate acțiunile asupra structurilor sistemului, utile pentru analizând atacurile și combaterea lor.

Sistem de suport Shell.Orice sistem de operare acceptă limbajul de comandă (sau set limbaje de comandă), constând din comenzi de utilizator executate de pe terminalul utilizatorului (din consola utilizatorului). Comenzile tipice sunt obținerea de informații despre mediu, setarea și modificarea directorului de lucru curent, transferul fișierelor, compilarea și executarea programelor, obținerea de informații despre starea sistemuluiși execuția proceselor sale etc. sistem Windows Pentru a executa comenzi, se folosește în mod tradițional fereastra consolei utilizator MS DOS (MS DOS Prompt), în sistem Linux– fereastra specială „Terminal” (Start / Instrumente de sistem / Terminal). Cel mai puternic procesoare de comenzi disponibil în sisteme de tip UNIX (UNIX, Solaris, Linux etc.). Limbile lor de comandă vă permit să scrieți scenariifișiere batch, care conține secvențe de comenzi ale sistemului de operare utilizate frecvent. Acest lucru este cel mai convenabil pe UNIX. Puteți numi astfel de limbaje de comandă UNIX ca sh (Bourne Shell), csh (C shell), ksh (Korn Shell), bash Fiecare programator UNIX are propriul său limbaj de comandă preferat și se obișnuiește să folosească în mod constant scripturi și secvențe lungi de comenzi non-triviale pe care le execută de la terminal. În ceea ce privește Windows, relativ recent un puternic interpret de comenzi PowerShell, care este recomandat pentru utilizare. În plus, există un sistem pentru Windows CygWin, permițându-vă să executați comenzi UNIX și fișiere batch în Mediul Windows. O secvență tipică de comandă în stil UNIX este: ps –a | grep saf, care iese la ieșire standard informatii despre procese active, și numai cele aparținând utilizatorului saf.Bara verticală (p1 | p2) indică operația transportor (teava), permițându-vă să utilizați ieșire standard proces p1 ca intrare standard procesul p2, care este ceea ce este folosit de operația grep ( filtrarea șirurilor conţinând o secvenţă dată). Puteți citi mai multe despre UNIX (Linux) în cartea [16].

Înveliș grafic– Subsistem OS care implementează grafica interfața cu utilizatorul utilizatorii și administratorii de sistem cu sistemul de operare. Desigur, utilizarea numai a limbajului de comandă și a apelurilor de sistem este incomod, deci este necesară o interfață grafică simplă și clară cu sistemul de operare. Există multe shell-uri grafice binecunoscute pentru sistemele de operare, iar capacitățile lor sunt foarte asemănătoare între ele - atât de mult încât uneori nu este complet clar ce sistem de operare este utilizat. Printre shell-urile grafice utilizate în sistemele de tip UNIX se numără CDE, KDE, GNOME. Windows și MacOS au propriile lor shell-uri grafice foarte convenabile.

Administrarea procesului

proces - este un program de utilizator atunci când este executat pe un sistem informatic. Procesul necesită un număr de resurse, inclusiv timpul CPU, memoria, fișierele, Dispozitive I/O, dispozitive de rețea si etc.

În schema clasică UNIX, când crearea unui proces i se creează un nou spațiu memorie virtuala, adică tabel de pagini de afișat adrese virtualeîn cele fizice, proprii pentru fiecare proces nou. Acest lucru consumă resurse semnificative. Având în vedere că în UNIX, fiecare comandă de utilizator (de exemplu, ls - scoate conținutul directorul curent) rulează ca proces separat, atunci devine clar cât de „scumplă” este operația de creare a unui proces în sensul clasic. Prin urmare, în anii 1980. a apărut un concept proces facilitat(proces ușor) – rulează în același spațiu de memorie virtual ca și procesul părinte. Când este creat un nou proces ușor, sistemul de operare creează numai grămadă– o matrice rezidentă în sistem în memorie concepută pentru a sprijini execuția procedurilor de proces și stocarea datelor lor locale și conectarea informațiilor între ele.

Sistemul de operare este responsabil pentru următoarele activități legate de managementul proceselor:

Crearea și ștergerea proceselor. La crearea unui proces este necesar să se creeze structurile de sistem adecvate în memorie (tabel de pagini, stivă etc.). Când un proces este șters, memoria pe care a ocupat-o este eliberată și, de asemenea, închide toate fișierele și eliberează toate celelalte resurse pe care procesul le folosea, cu excepția cazului în care procesul a făcut acest lucru în mod explicit.

Întreruperea și reluarea proceselor. Execuția procesului se întrerupe în timpul execuției I/O sincron, precum și un apel de sistem sau o comandă (cum ar fi suspenda). Să observăm imediat că folosirea acestor operațiuni în mod explicit suspendarea proceselor trebuie utilizat cu prudență, deoarece procesul suspendat poate fi în sine secţiunea critică– efectuează procesări pe o resursă partajată la care fiecărui proces i se acordă acces exclusiv, astfel încât atunci când este suspendat să apară situația impas) – un proces suspendat nu poate elibera resursa, iar un proces concurent nu o poate obține. Când un proces este suspendat, sistemul de operare își salvează starea de execuție, iar când este reluat, îl restabilește.

Sincronizarea proceselor. Procesele funcționează în paralel și în același timp concurează pentru resursele partajate și, de asemenea, trebuie să aștepte ca anumite evenimente să apară în anumite momente ale calculelor. Pentru a preveni eventualele conflicte și inconsecvențe, de ex. starea de cursă- acces inconsecvent la datele partajate, în care un proces citește datele vechi și altul le actualizează în același moment - sistemul de operare oferă mijloace sincronizare(De exemplu, semafoareȘi monitoare, discutat în secțiunea următoare).

Interacțiunea procesului.Când funcționează în paralel, procesele au nevoie de interacțiune pentru a rezolva coordonat diferite părți ale aceleiași probleme. Procesele pot comunica prin transfer mesaje unul pe altul, precum și cu ajutorul așa-zisului variabile condiționaleȘi întâlnire(toate aceste tipuri de interacțiuni sunt discutate mai târziu). Sistemul de operare oferă toate aceste instrumente, sub formă de apeluri de sistem, pentru a organiza interacțiunea adecvată și convenabilă între procese.

Semafoare.În 1966, în lucrarea [17] prof. a sugerat Edsger Dijkstra Metoda noua sincronizarea proceselor, devenite clasice, sunt semafore.

Semafor binar– variabila S, care poate fi în două stări: „deschis” și „închis”; Două operații („paranteze semafor”) sunt definite peste S: P(S) – închidere, V(S) – deschis. Când se încearcă închiderea unui semafor deja închis, are loc o întrerupere și sistemul de operare adaugă procesul curent la coada semaforului închis. Operația V(S) activează primul proces aflat în coadă la S care finalizează cu succes operația P(S). Dacă semaforul S este deja deschis, operația V(S) nu are efect.

Astfel, presupunând că hardware-ul și sistemul de operare suportă un astfel de concept de semafor, atunci este instrument convenabil pentru sincronizare pe resurse. Hai sa sunăm secţiunea critică cod care poate fi executat de mai multe procese în paralel și accesează o resursă comună tuturor proceselor - o zonă de memorie globală, un fișier partajat etc. Să notăm codul secţiunea critică critic_section.Dacă presupunem că acest cod poate fi executat în paralel în mai multe procese direct, atunci poate apărea o situație deja cunoscută de noi starea cursei ( competiție pentru date partajate): un proces poate schimba o resursă, iar al doilea în acest moment citește starea acesteia (incorectă), sau două procese vor încerca simultan să schimbe același lucru

Managementul procesului de la Linie de comanda

Există o mulțime de moduri de a gestiona procesele în Windows, iar linia de comandă este departe de primul loc în acestea. Cu toate acestea, uneori există situații în care toate celelalte instrumente, cu excepția liniei de comandă, sunt indisponibile, de exemplu unele malware poate bloca lansarea Managerului de activități și a programelor similare. Și doar pentru dezvoltarea generală, este util să știi cum să controlezi un computer din linia de comandă.

Pentru a gestiona procesele pe linia de comandă, există două utilitare - lista de sarciniȘi taskkill. Primul arată o listă de procese pe local sau computer la distanță, al doilea vă permite să le completați. Sa incercam...

Dacă tastați doar comanda lista de sarcini pe linia de comandă, va lista procesele de pe computerul local.

În mod implicit, informațiile sunt afișate sub formă de tabel, dar cheia /fo vă permite să setați rezultatul ca listă sau în format CSV și cheia /v arata mai mult informatii detaliate despre procese, de exemplu comanda tasklist /v /fo list va ieși descriere detaliata toate procesele sub forma unei liste.

Lista va fi destul de mare, așa că să încercăm să clarificăm cererea. Pentru a face acest lucru folosim cheia /fi, care vă permite să utilizați filtre pentru a scoate date, cum ar fi comanda tasklist /fi ″nume utilizator eq utilizator″ /fi ″memusage le 40000″ afișează o listă de procese de utilizator utilizator, care nu consumă mai mult de 40 MB de memorie.

După ce am găsit procesele care trebuie terminate, folosim comanda taskkill. Puteți încheia procese după nume, identificator de proces (PID) sau setând condiții folosind filtre. De exemplu, să lansăm mai multe instanțe de notepad (notepad.exe) și să încercăm să-l închidem în moduri diferite.

Cheie /fîncheie procesul cu forța și /t termină toate procesele copil.

Ajutor complet pentru lista de sarcini și comenzile taskkill pot fi obținute prin introducerea lor cu cheia /?

Acum să folosim artileria grea PowerShell . Îl puteți rula fără a părăsi linia de comandă. Pentru a obține o listă de procese, utilizați cmdletul Get-Process.

Pentru a nu afișa întreaga listă de procese, putem folosi cmdletul Unde-Obiect, care specifică un filtru pentru informațiile afișate. De exemplu, să afișăm o listă de procese care încarcă procesorul și să le sortăm crescând încărcarea folosind comanda:

Get-Process | unde ($_.cpu -gt 0) | sortați CPU

Folosind PowerShell putem obține orice informații despre orice proces. Să luăm procesul ca exemplu cmd și afișați o listă cu proprietățile sale cu comanda:

Get-Process -Name cmd | Proprietate Get-Member -Membertype

Selectăm acele proprietăți care ne interesează (în exemplu, numele și ID-ul procesului, calea către fișier, modulele utilizate și ora de pornire) și le afișăm sub forma unei liste cu comanda:

Get-Process -Name cmd | Format-List nume, id, cale, module, starttime

Astfel putem vedea când și de către cine a început procesul, câte resurse consumă, unde se află fisier executabilși mult mai multe informații diferite.

Există un cmdlet în PowerShell pentru a încheia un proces Stop-Proces. Încheie procesul specificat prin numele sau ID-ul său. Cu toate acestea, o vom face diferit și vom transmite rezultatul execuției cmdlet-ului Obține-Proces de-a lungul transportorului:

Get-Process | unde ($_.name -match ″notepad″) | Stop-Proces

Obține-Proces nu pot afișa procese pe un computer la distanță, pentru aceasta vom folosi cmdletul Get-WmiObject, de exemplu, să ne uităm la procesele de pe un computer la distanță cu comanda:

Get-WmiObject win32_process -computername PC | ft nume, procesid, descriere

Pentru a vă familiariza mai bine cu PowerShell, puteți utiliza ajutorul încorporat; pentru a accesa ajutor, trebuie să tastați Obține ajutor″nume cmdlet″

Ei bine, pentru a finaliza revizuirea, să ne uităm la un alt instrument pentru gestionarea proceselor din linia de comandă. Acestea sunt utilitati PslistȘi Pskill incluse în pachetul PSTools de la Sysinternals.

Aceste utilitare nu necesită instalare specială; trebuie doar să le copiați pe disc. Pentru a începe, trebuie să mergeți în folderul cu utilitățile și să introduceți comanda necesară în linia de comandă.

Încheierea unui proces cu pskill este extrem de simplă, introduceți comanda și numele (sau ID-ul) procesului și gata.

Ajutor la utilitati PslistȘi Pskill poate fi vizualizat introducând comanda cu tasta /?

Și totuși, toate manipulările cu procese trebuie efectuate cu drepturi de administrator; pentru aceasta, linia de comandă trebuie lansată cu privilegii ridicate.

Scopul lucrării: cunoaștere practică cu metoda de gestionare a proceselor MS Windows XP folosind managerul de activități

1 SCURT INFORMAȚII TEORETICE

1.1 Procese și fire

Spre deosebire de MS DOS, procesele din Win32 sunt inerte, adică în Win32, un proces nu efectuează nimic.

Procesul deține:

4 GB spațiu de adresă (când este executat pe un CPU pe 32 de biți);

Dosare;

Module (de exemplu, încărcate în spațiul de adrese DLL);

Una sau mai multe fire.

Procesul are:

ID proces (PID);

Clasa de prioritate de baza;

Jeton de acces;

ID-ul procesului părinte;

Un set de descriptori utilizați (Handle) ai obiectelor de sistem;

Set de lucru de pagini RAM etc.

Procesul (Pr) poate da naștere unui alt proces - vezi Fig. 1.

Figura 1 – generarea procesului.

Procesul Pr1 a dat naștere procesului Pr2, care a generat procesele Pr3 și Pr4.

Distinge sistemicăȘi personalizat proceselor. Procesele de sistem sunt procese ale sistemului de operare care rulează în modul privilegiat al procesorului (modul kernel). Majoritatea proceselor de sistem sunt create atunci când sistemul de operare pornește.

Fiecare sistem Windows rulează următoarele: procesele sistemului:

Proces inactiv (include un fir pe procesor pentru a ține cont de timpul de inactivitate al procesorului);

Proces de sistem (conținând cele mai multe fire de execuție de sistem în modul kernel);

Manager de sesiune (Smss.exe);

Subsistemul Windows (Csrss.exe);

Procesul de conectare (Winlogon.exe);

Managerul de control al serviciului (Services.exe) și procesele de servicii pentru copii pe care le creează (de exemplu, procesul universal pentru servicii de găzduire, Svchost.exe);

Procesul serverului local de autentificare (Lsass.exe).

Două dintre procesele enumerate, Idle și System, nu sunt procese în sensul strict al cuvântului, deoarece nu execută niciun cod în modul utilizator.

Session Manager Smss.exe este primul proces în modul utilizator creat pe sistem. Este generat de firul de sistem al modului kernel și lansează procesele subsistemului Csrss.exe și Winlogon, care la rândul lor creează alte procese de sistem.

Procesul de conectare Windows - Winlogon.exe se ocupă de conectarea și deconectarea utilizatorului interactiv. Când apăsați combinația de taste Alt+Ctrl+Del, Winlogon primește o notificare despre solicitarea de conectare a utilizatorului.

Odată introduse, numele de utilizator și parola sunt trimise procesului de server local de autentificare LSASS pentru verificare. După autentificarea cu succes, LSASS apelează o funcție în Monitorul stării de securitate pentru a genera un obiect token de acces care conține profilul de securitate al utilizatorului. Winlogon îl folosește ulterior pentru a crea procesul inițial de shell. Informațiile despre procesul inițial sunt stocate în parametrul Userinit din cheia de registry HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon.

În mod implicit, procesul inițial este Userinit.exe, care efectuează o anumită inițializare a mediului utilizator, apoi caută parametrul Shell în registru și creează un proces pentru a lansa un anumit shell de sistem - Explorer.exe în mod implicit. După aceasta, procesul Userinit.exe se termină și nu este afișat în lista proceselor care rulează. Procesul Explorer.exe este procesul nepot al Winlogon. Procesul Explorer.exe este strămoșul tuturor proceselor aplicației (utilizator) care rulează.

Pentru a înțelege relațiile dintre aceste procese, este util să vizualizați un arbore de proces, care arată relațiile dintre procesele părinte și cele secundare. Văzând cine creează un anumit proces, este mai ușor de înțeles de unde provine fiecare proces.

Procesele utilizatorului sunt asociate cu execuția unei aplicații software. Acestea sunt executate în modul utilizator al procesorului cu impunerea unor restricții. În mod obișnuit, procesele utilizatorului sunt create folosind Explorer.exe atunci când utilizatorul pornește aplicații sau într-un program.

Pentru ca un proces să realizeze ceva, trebuie să creeze un fir. În principiu, un proces poate conține mai multe fire de execuție și folosesc simultan cod în spațiul de adrese al procesului. Pentru a face acest lucru, fiecare thread trebuie să aibă propriul set de registre de procesor și fiecare proces trebuie să aibă cel puțin un fir. Pentru a menține toate aceste fire de execuție, sistemul de operare alocă o anumită cantitate de timp de procesor (interval de timp) fiecăruia dintre ele. Timpul este acordat firelor în cuante într-un cerc (vezi Fig. 2) în conformitate cu prioritățile lor:

Figura 2 - schema de alocare a segmentelor de timp pe fire (P)

Când se creează un proces, un fir primar este creat automat de către sistem; apoi firul primar poate crea fire suplimentare folosind funcția CreateThread.

Threadurile pot fi create și de driverele pentru modul kernel.

În WinNT, 2000, XP Windows Server - un procesor separat poate fi alocat unui fir de execuție (pot fi până la 32 de procesoare), apoi firele de execuție sunt de fapt executate în paralel.

1.2 Instrumente de management al proceselor

Sistemul de operare Windows are încorporat un program Task Manager, cu ajutorul căruia puteți obține informații despre procesele de sistem și aplicații care rulează în sistem, numărul de fire pe care le folosesc și resursele pe care le consumă, gestionați execuția proceselor și modificați prioritățile proceselor. . Pentru a lansa managerul de activități, puteți folosi combinația Alt+Ctrl+Del sau faceți clic dreapta pe bara de activități. Fereastra managerului de activități este prezentată în Fig. 3.

Figura 3 - Fereastra Manager de activități (fila Procese)

În fereastra Procese puteți vedea o listă cu toate procesele care rulează în sistem și parametrii acestora - în Fig. 3 aceștia sunt identificatori de proces, încărcarea CPU de către fiecare proces și numărul de fire. Rețineți că numărul de fire egal cu 0 nu înseamnă că nu există într-adevăr niciunul (acesta este procesul).

Folosind meniul View, puteți elimina parametrii indicați în Fig. 3 din listă sau puteți adăuga alții noi.

Fila Performanță (vezi Fig. 4) face posibilă afișarea graficelor cu încărcarea totală a CPU, utilizarea fișierelor de paginare și, de asemenea, obținerea de informații despre consumul total de resurse PC.

Managerul de sarcini este un instrument foarte simplu; capabilitățile sale nu sunt suficiente pentru a rezolva chiar și probleme simple de analiză și management al sistemului. EXEMPLU - construiți un arbore de procese care rulează în sistem pe baza informațiilor obținute folosind managerul de activități.

Sysinternals a dezvoltat programul Process Explorer, care are capacități semnificativ mai mari decât managerul de activități Microsoft, precum și o serie de alte programe pentru gestionarea și analiza PC-ului securitatea informatiei. Cu toate acestea, toate aceste programe sunt gratuite. doar pentru uz personal iar în etapa actuală, fără licenţă, nu pot fi utilizate în procesul de învăţământ al catedrei.

Figura 4 - Fereastra Task Manager (fila Performanță)

2. MODALITATE DE EXECUTARE

1. Lansați managerul de activități, uitați-vă la lista de parametri ai procesului (vizualizare meniu, fila Procese).

2. Familiarizați-vă cu capacitățile managerului de activități pentru gestionarea proceselor (crearea unui proces și încheierea unui proces). Modificați prioritatea procesului selectat utilizând meniul contextual.

3. Familiarizați-vă cu capacitățile dispecerului de a controla afișarea informațiilor pe ecran (ordonând lista în ordine crescătoare și descrescătoare a valorilor parametrului selectat).

4. Construiți un grafic al modificărilor încărcării procesorului la mutarea mouse-ului, redimensionarea ferestrei managerului și lansarea aplicațiilor Open Office.

5. Construiți un grafic al modificărilor în dimensiunea memoriei alocată în fișierul de paginare la lansarea aplicațiilor (Open Office, Visual Studio).

6. Obțineți o listă a proceselor în desfășurare în conformitate cu sarcinile individuale pentru echipe

Tabelul 1 Sarcini individuale

Tabelul 2 - Parametrii procesului

3. RAPORT DE LUCRARE

Întocmit în scris folosind Open Office, unul per echipă.

1. Pagina titlu cu numărul și titlul lucrării, numărul grupei, numărul brigăzii, numele elevilor și profesorului

2. Lista parametrilor de proces utilizați la efectuarea lucrării

3. Rezultate obținute din îndeplinirea unei sarcini individuale.

ÎNTREBĂRI DE CONTROL

1. Definiți procesul, firul, sistemul și procesul de aplicare

2. Ce informații sunt necesare pentru a construi o listă de procese care rulează în sistem sub forma unui arbore. Este posibil să obțineți astfel de informații în MS Windows folosind managerul de activități?