Context_configuration definirea comutării contextului și sinonimele comutării contextului

Arabă Bulgară Chineză Croată Cehă Daneză Olandeză Engleză Estoniană Finlandeză Franceză Germană Greacă Hindi Indonezian Islandeză Italiană Japoneză Letonă Lituaniană malgașă Norvegiană Persană Poloneză Portugheză Română Rusă Sârbă Slovacă Slovenă Spaniolă Thai Turcă Vietnameză suedeză







Arabă Bulgară Chineză Croată Cehă Daneză Olandeză Engleză Estoniană Finlandeză Franceză Germană Greacă Hindi Indonezian Islandeză Italiană Japoneză Letonă Lituaniană malgașă Norvegiană Persană Poloneză Portugheză Română Rusă Sârbă Slovacă Slovenă Spaniolă Thai Turcă Vietnameză suedeză

definiție - Comutarea în funcție de context

Din Wikipedia, enciclopedia gratuită

Context de comutare (Context Schimbă limba engleză.) - în sistemele de operare multitasking și medii, procesul de încetare a prelucrării o singură sarcină (proces, fire, fire), menținând în același timp toate informațiile și condițiile necesare necesare pentru continuarea ulterioară cu locul întrerupt, și de a restabili și încărcați statutul de sarcină , la care trece procesorul.

Procedura de comutare a contextului include așa-numitele. planificarea sarcinilor - procesul de luare a deciziei ce sarcină trebuie transferată conducerii.

La comutarea contextului, următoarele informații sunt salvate și restaurate:

  • Contextul registru al registrelor cu scop general (inclusiv registrul de pavilion)
  • Contextul stării coprocesoare în virgulă mobilă
  • MMX / SSE - context (x86)
  • Segmente registre stare (x86)
  • Starea unor registre de control (de exemplu, registrul CR3 responsabil pentru afișarea în fiecare moment a memoriei procesului) (x86)

Următoarele structuri sunt asociate cu fiecare fir din kernelul OS:

  • Informații generale pid, tid, uid, gid, euid, egid, ...
  • Stare proces / flux
  • Drepturi de acces
  • Resursele utilizate de fir și încuietori
  • Contoarele de utilizare a resurselor (de exemplu, cronometrele timpului CPU utilizat)
  • Regiunile de memorie alocate procesului

Conversia de context și performanța

În plus, ceea ce este foarte important, atunci când comutați contextul, următoarele acțiuni hardware nesemnificative software afectează performanța:

În plus, ar trebui să luați în considerare următoarele fapte care afectează starea sistemului:







  • Conținutul cache-ului (mai ales pentru cache-ul de nivel 1) este cumulat și "optimizat" pentru executarea unui fir este complet inaplicabil la firul nou pe care are loc comutatorul.
  • Când schimbați contextul în proces, care a nu a fost folosit anterior pentru o perioadă lungă de timp (a se vedea. Swapping), multe dintre paginile pot fi absente fizic de RAM, ceea ce dă naștere pagini podgruzku reprimate din stocarea secundară.

Context și comutare OS

Din perspectiva nivelului de aplicație, puteți separa întrerupătoarele de context voluntare și non-voluntare: Procesul / firul în curs de execuție poate transfera controlul într-un alt fir sau chiar kernel-ul poate selecta controlul.

  1. Kernel-ul OS poate selecta controlul procesului / thread-ului care rulează atunci când termenul alocat pentru execuție expiră. Din perspectiva unui programator, acest lucru înseamnă că managementul ar putea să scape de fluxul de la „cel mai rău posibil“ punct în timp, atunci când structura de date poate fi într-o stare necorespunzătoare, datorită faptului că schimbarea lor nu a fost finalizată.
  2. Executați un apel de blocare a sistemului. Când aplicația efectuează I / O, kernelul poate decide că este posibil să se dea controlul unui alt fir / proces în timp ce se așteaptă ca discul sau I / O de rețea solicitate de acest thread să fie executat. În ceea ce privește performanța generală a sistemului, opțiunea "cea mai bună"!
  3. Sincronizarea primitivelor nucleului. Mutexuri, Semafore, etc. Aceasta este principala sursă de probleme de performanță. Insuficient de lucru gândit cu primitivele de sincronizare poate fi în „cel mai rău caz“ duce la zeci de mii și, uneori, cu un design foarte rău, și sute de mii de context, switch-uri pe secundă.
  4. Un apel de sistem în mod explicit în așteptarea unui eveniment (selectează, sondaj, epoll, pauză, așteptați, ...) sau un punct de timp (somn, nanosleep.). În ceea ce privește performanța - aceasta este o opțiune bună, kernelul sistemului de operare știe întotdeauna cine așteaptă și ce așteaptă.

Caracteristicile procedurii sdulinga

Diferența dintre sistemele de operare în timp real și time-sharing este evident mai ales în logica diferența shedulinga în schimbare de context: time-sharing sheduling încearcă să maximizeze performanța întregului sistem în ansamblul său, poate, în detrimentul performanței sistemelor individuale protsessov.Zadacha Scheduler Realtime - pentru a se asigura de înaltă prioritate individuală, critică procese, și indiferent cât de greu costurile generale pentru restul sistemului ca un întreg, acesta va costa.

Implementarea schimbării de context în sistemul modern de operare

După cum se poate observa din cele de mai sus, un comutator context este o operațiune foarte costisitoare, și un „navorechenee“ este un procesor, resursa mai intensă operațiunea stanovitsya.Iskhodya de aceasta, kernel-ul folosește o serie de strategii pentru a reduce în primul rând, numărul de switch-uri de context, și în al doilea rând pentru a face trecerea context mai puțin intensivă a resurselor.

Metode pentru reducerea numărului de comutatoare de context:

  • Există posibilitatea de a configura timpul procesorului alocat fluxului. Când construiți un kernel Linux, puteți specifica Desktop / Desktop / Latency Desktop. Pentru configurațiile de servere, acest cuantum este mai mare.

Metode pentru reducerea intensității resurselor de comutare a contextului:

Exemplele de mai sus se referă la kernel-ul Linux. Cu toate acestea, alte sisteme de operare utilizează de asemenea metode similare, deși în cazul sistemului de proprietate pentru a dovedi / respinge utilizarea acestui lucru este problematică.

Note privind terminologia







Articole similare

Trimiteți-le prietenilor: