Conceptul de proces și de resurse

Procesul - o abstracție care descrie programul de funcționare

Procesul - set algoritm, datele I și O, resurse de sistem, sub controlul sistemului de operare la ora actuală

1) În conformitate cu criteriile genealogice: părinte și copil

2) La caracteristicile de timp: traseul condițiilor stabilite-proces care procesul trece secvențial pe parcursul ciclului său de viață. Dacă piesa nu se intersectează, atunci secvența de procese sau paralele

3) Prin performanta: procese echivalente de la primirea de date identice Rin O date este identic cu cazul general programe diferite. procese identice echivalente cu procesele care rulează pe același program. Egal, procese identice, trasee coincid. Toate celelalte procese sunt diferite.

4) În conformitate cu caracteristica pietrei externe: paralel, serial.

5) În conformitate cu accesorii CPU: externe și interne

6) ca aparținând sistemului de operare: sistem și utilizator

7) În conformitate cu conexiunea: procesele care fac schimb de informații, numit cooperant, în caz contrar - informații independente.

Diagrama stărilor de proces

Conceptul de proces și de resurse

Dl otovnost: o stare în care procesul este suficient pentru a efectua toate resursele necesare, în plus față de CPU

În a face o: o stare în care în acest moment este doar un singur proces, ceea ce este alocat timp CPU

Despre zhidanie (B Blocarea): o stare în care procesul nu este suficient pentru a efectua orice tip de resurse și este în așteptare pentru un eveniment.

Procesul intră în coada gata, ca codului de resurse de execuție nu sunt necesare. În timpul rulării, acesta poate necesita resurse, astfel încât să poată intra în modul de așteptare.

De la starea B la procesul D poate merge într-un sisteme de planificare preemptive. Nepreemptivă programare - sistem de prelucrare a lot.

Contextul și mânerul de proces.

Contextul procesului constă în contextul utilizatorului și contextul kernel-ului.

Contextul nucleu include un registru de context. instrucțiuni registru contra, procesor registrul de stare, stiva registru indicator, și cu scop general registre; precum și context la nivel de sistem asociat cu acest proces.

Aceste nuclee conțin astfel de inf-TION procesului, cum ar fi: utilizator id - UID, identificatorul de grup de utilizatori - GID, identificatorul de proces - PID, părinte proces ID - PPID.

Descriptorul conține informații despre localizarea imaginii starea de proces, proces în memorie și pe disc, importanța componentelor individuale ale prioritate, ID-ul utilizatorului care a creat procesele legate de informații de proces, evenimente, dintre care se așteaptă ca procesul și alte informații.

Criterii de Genealogie: părinte și copil.

· Echivalent - obținut din aceeași intrare același O. date, în general, în conformitate cu diverse programe.

· Identic - echivalent cu cel condus de același program.

· Egal - identice, a căror traseu coincid.

Toți ceilalți sunt diferite.

În timp Caracteristici: Cam paralel și în serie.

· Procesele de a face schimb de informații - care interacționează.

· În caz contrar - informații independente.

flux concept. Metode de punere în aplicare a fluxurilor. programarea fir.

Hrană (flux _ro.) - secvență abstractă instrucțiuni sau date, în general, atașate la descriptorul corespunzător (poate fi reprezentat de un nume de flux).

1. Capacitatea procesului de realizat în mai mult de un flux de instrucțiuni.

2. Kvazimnogozadachnost într-un singur proces.

Avantajele folosirii fire:

2. Viteza de comutare între firele de execuție este mult mai mare decât între procese, prin eliminarea necesității de a schimba contexte.

3. Viteza de a crea și ștergerea firelor de executie este mult mai mare.

Dezavantaje: Complexitatea tot mai mare de programare și a proceselor firului.

Modalități de punere în aplicare a fluxului

1) la nivelul kernel Fluxurilor

2) Fluxuri la nivelul utilizatorului

3) Furajele mixt (combinat)

fire la nivel de utilizator.

La baza există un tabel de procese, pe care le gestionează. Despre fluxul acestor procese, kernel-ul nu știe nimic. procesele de planificare sunt realizate pentru procesul de alocat timp. Procesele la nivel de utilizator au masa lor de curgere. Fluxurile în performanța lor proprii de control al transferului unul de altul.

- Un astfel de sistem poate fi pus în aplicare în sistem nu suport multi-threading;

- Fluxurile în cadrul fiecărui proces poate utiliza un algoritm de planificare

- timer întrerupe primirea de bază, și nu procese, astfel încât procesele să nu știu nimic despre momentul îndeplinirii fluxurilor sale. În cazul în care kernel-ul poate elimina cronometrul din punerea în aplicare a unui proces pentru a efectua și a alerga de altă parte, procesele care nu pot, prin urmare, în cazul în care un fir nu transferă controlul la alte fire, nu puteți schimba fluxul de forță

- atunci când apelul de blocare, adică trecerea la starea de așteptare, modul de așteptare devine întregul proces, în ciuda faptului că apelul de a face doar un singur fir.

Fluxurile la nivel de kernel

Împreună cu tabelul de procese din nucleu au un flux de masă. Kernel-ul nu intenționează să procese și fire de toate procesele, subliniind intervalele lor temporale, de comutare, astfel, între firele de execuție se întâmplă cronometru și funcționarea continuă a unui fir nu afectează activitatea altor fluxuri. Fiecare fir are propria sa stare de blocare a apelurilor la o stare de repaus se deplasează numai debitul și nu afectează funcționarea acestui și alte fire.

- nu poate fi pusă în aplicare în sistem nu suport multi-threading

- comutare frecventă între fluxuri de diferite procese conduce la contextul procesului de schimbare frecvente, crescând astfel costurile de gestionare a cererilor

1) curge la un nivel de utilizator: Kernel-ul de blocare a nivelului de transfer apel

Multiplexarea curge: fiecare proces corespunde la câteva fire de nucleu, fiecare fir de kernel mai multe fluxuri de utilizator. Quanta timpul alocat firului de nucleu, fluxurile de utilizator sunt controlate de ele însele, la blocarea apelurilor în blocarea intregului fir de nucleu cu mai multe fluxuri de utilizator, dar alte fire ale procesului continuă.

Unul dintre cele mai importante subsisteme ale unui sistem de operare multiprogramming, care afectează în mod direct funcționarea calculatorului, este un subsistem de control al procesului și a debitului, care este angajată în crearea și distrugerea lor, sprijină interacțiunea dintre ele, precum și distribuie timp CPU între mai multe co-existente în sistem, procese și fire.

Subsistemul de management de proces și fluxul este responsabil pentru asigurarea proceselor de resurse necesare. OS suportă o structură de informații speciale în memorie, care înregistrează ce resurse sunt alocate fiecărui proces. Se poate aloca resurse în procesul de utilizare unic sau partajarea cu alte procese. Unele dintre resursele sunt alocate proces atunci când este creat, iar unele - la cerere, în mod dinamic în timpul rulării. Resursele pot fi atribuite procesului pe toată durata vieții sale, sau numai pentru o anumită perioadă. În realizarea acestor funcții, subsistem de management al proceselor interacționează cu alte subsisteme ale sistemului de operare responsabil pentru managementul resurselor, cum ar fi subsistem de management al memoriei, subsistemul de intrare-ieșire, sistemul de fișiere.

Atunci când sistemul rulează simultan mai multe sarcini independente, atunci există probleme suplimentare. Deși fluxurile apar și rula asincron, acestea ar putea avea nevoie în interacțiunea, cum ar fi schimbul de date. Coordonarea Debite este, de asemenea, foarte important, pentru a evita efectul de „rase“ (atunci când mai multe fire încearcă să modifice același fișier), interblocare sau alte conflicte care apar atunci când partajarea resurselor. sincronizare fir este una dintre cele mai importante funcții ale subsistemului de control al proceselor și fluxurilor.

De fiecare dată când procesul este finalizat, sistemul de operare este de a lua măsuri pentru a „curăța urmele“ șederii sale în sistem. Subsistemul de management de proces se închide toate fișierele care procesul a lucrat, eliberați zona de memorie desemnată de către structura de coduri, date și informații de sistem de proces. Corecția se efectuează în fiecare posibil cozile OS și liste de resurse, în care au existat referiri la întrerupe procesele.

8. Procesele de planificare și programare. strategii de planificare.

Una dintre cele mai importante probleme care trebuie rezolvate de către sistemul de operare este o problemă cu definiția când și modul în care procesele ar trebui să aloce resurse CPU - o capacitate de planificare problemă procesor.

Planificarea - este organizarea proceselor într-o secvență în conformitate cu o strategie predeterminată.

Scheduler - este un program care este responsabil pentru stabilirea proceselor în loc de a-punerea în aplicare și gestionarea cozii.

3 nivele de planificare:

1. Planificarea pe termen lung - procesul de alegere la pornirea sistemului.

2. Planificarea pe termen scurt (programare) - determină comportamentul sistemului în viitorul apropiat până la câteva căpușe ale timer-ul.

3. Mediu - proces de selecție, care poate fi descărcat în memoria secundară cu revenirea ulterioară operativ.

Programarea preemptive - sistemul are posibilitatea de a reveni la procesul de executare a alertat imediat.

Programarea non-preemptiv - din executarea poate continua numai în așteptare.

Programarea se realizează cazuri intern sau intern:

1. efectuează un proces a terminat de lucru și a părăsit sistemul

2. Urmați procesul sa mutat la starea de așteptare

3. Primirea noului proces în coada de așteptare gata

4. Procesul de funcționare de timp final cuantic

Nepreemptivă programare - numai în cazurile de muncă forțată.

Dispetcherizatsiya- sistem de operare alternativ de alocare planificator procesează felia de timp.

Programarea în sistemele de prelucrare a lot. Disciplina FCFS, SJN, SNR.

Următorii algoritmi:

FCFS (primul venit, primul servit)

Procesele se acordă acces la procesorul în ordinea în care acestea îl solicită. Cel mai adesea formează o singură coadă de așteptare procese. De îndată ce prima sarcină, începe imediat și se execută atâta timp cât este necesar. Sarcinile rămase sunt în coada de așteptare. Când procesul curent este blocat, executați următoarea linie, iar când dispozitivul de blocare este eliberat, procesul ajunge la sfârșitul cozii de așteptare.

Principalul avantaj al acestui algoritm este că este ușor de înțeles și la fel de ușor de programul. Este pur și simplu, în același sens în care distribuirea echitabilă a biletelor limitate la un concert sau de concurență între toți cei care doresc să stea în conformitate cu cele două în dimineața. În acest algoritm, toate procesele în stare gata controlată de o listă legată. Pentru a selecta un proces pentru a rula, trebuie doar să ia primul element din listă și ștergeți-l. Apariția unui nou proces care duce la camera lui de la sfârșitul listei - ceea ce ar putea fi mai ușor

Demnitate. Ușor de punere în aplicare

Dezavantaje. Algoritmul este puternic dependentă foarte pe fund de intrare, adică performanța sistemului depinde în mare măsură de ordinea de primire a proceselor din sistem. Atunci când prima rula un proces de lungă durată, procesul scurt va trebui să aștepte o lungă perioadă de timp în care sunt finalizate, astfel încât crește timpul de așteptare și timpul de procesare. Atunci când primul termen scurt, timpul de așteptare este redus în mod semnificativ

SJN (Cel mai scurt Iov următor)

De la coadă gata este selectată pentru a efectua procesul, ceea ce este necesar pentru îndeplinirea cel mai puțin timp.

Algoritmul este aproape de optim

Irealizabile, pentru că în momentul procesului de selecție din coada nu se știe cât de mult timp acest proces trebuie să le îndeplinească în viitor.

SRN (Cel mai scurt rămân următoare)

modificarea algoritmului SJN c deplasare a unui proces care rulează în cazul primirii într-un nou proces, care este necesar pentru îndeplinirea mai puțin timp decât este lăsat complet curent.

Datorită potențialului deplasarea de procese mai scurte nu va trebui să aștepte pentru o lungă perioadă de timp, indiferent de primire în sistem.

Irealizabile, pentru că în momentul procesului de selecție din coada nu se știe cât de mult timp acest proces trebuie să le îndeplinească în viitor.

10. Planificarea în sistemele interactive. Disciplina RR (plan circular), programarea disciplina prioritară.

RR - Round Robin. Acest algoritm de deplasare, în care toate procesele sunt la rândul lor, primesc felia de timp și care, du-te la sfârșitul cozii de așteptare. Dacă felie de timp este mare, RR degenerează în FCFS ca timpul procesului să fie finalizată într-o felie de timp. Este mai mică felie de timp, mai aproape de RR optim, dar crește timpul necesar pentru a comuta între procese.

Prioritate programare. Prioritatea este un număr care determină gradul de privilegiul procesului în raport cu celălalt. prioritate absolută, în cazul în care procesul de intrare prioritate mai mare poate disloca din procesul de execuție cu prioritate mai mică. Prioritatea este relativă, în cazul în care procesul de intrare se va ridica la partea de sus a cozii, dar va aștepta executarea curentului. Prioritățile se pot schimba în timpul ciclului de viață.

Planificarea în sistemele de timp real.

Algoritmi pentru programarea sistemelor în timp real poate fi static sau dinamic. Prima dintre acestea implică luarea de decizii cu privire la planificarea înainte ca sistemul începe, iar al doilea - adoptarea lor în timp real. Programarea statică funcționează numai cu posesia prealabilă a unor informații fiabile cu privire la activitatea desfășurată, precum și termenele care trebuie îndeplinite. algoritmi de planificare dinamice astfel de restricții nu.

Algoritmul 1: RMS - algoritm static pentru programarea în timp real. Acesta utilizează conceptul de abordări termen - momentul de timp la care ar trebui să fie procesat un eveniment. În cazul în care un eveniment este procesat înainte de abordările sale termenul limită, algoritmul nu reușește. proces de priorități este proporțională cu frecvența primirii evenimentelor lor.

Algoritmul 2: FED - algoritm dinamic. Selectate pentru a efectua procesul în care se apropie termenul limită de mai sus. Pe sistemele puternic încărcate, algoritmul static nu se poate face cu planificarea, în timp ce dinamica poate lasa chiar ocazional inactiv de sistem.

articole similare